Skip to content

Immature pp.SolverStatitics #1476

Description

@jwboth

The pp.SolverStatistics shows currently several shortcomings - this issue aims at collecting some with potential solutions:

  • In the wish of a lighter pp.SolverStatistics object, no time information is available. To nevertheless log the success over time steps, the save method appends the statistics to the previously printed statistics. However, when rerunning the simulation, the file is not removed. (A similar comment holds for vtk files). One solution could be to not read from file, but remembering the solution strategy in a dictionary with a persistent key, e.g., connected to attempted time steps and thus number of calls to NewtonSolver.solve().
  • No information on "success" or "failure" is stored to file. It would be simple to include ConvergenceStatus from Equation- and variable-based convergence checks #1448 into the logging. By extension of ConvergenceStatus to include other statuses, e.g, MAX_NUMBER_ITERATIONS_REACHED, CYCLED, NAN etc. one could provide even more information for later analysis. This would require an additional attribute convergence_status.
  • When time steps need to be repeated, also failed attempts of running the time step are stored. It is then difficult to assign the different logs to the different attempts. By using persistently the time_manager.time_index in addition with the above ConvergenceStatus and even if wished storing time_manager.time an time_manager.dt one could quite simply store all information and still be able to post-analyze e.g. only successful time steps, identify number of attempted or wasted time step computations, total number of nonlinear iterations etc. This would require additional attributes time_index, time, dt.
  • Related to the last point: If a simulation ends prematuraly because of a minimal dt reached during time step cutting, the final time is not reached. To ease the identification of such a case just from reading the solver statistics file, it may be an idea to add the attribute final_time_reached.
  • Currently SolverStatistics.save() is invoked during exporting simulation results. It may be an option to decouple these. While storing all efforts connected to the numerical solution, it may be not always advisable to export all attempted (and potentially failed) field values, cf. SolutionStrategy.after_nonlinear_failure saves time step data causing weird visualization #1421

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions