You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The pp.SolverStatistics shows currently several shortcomings - this issue aims at collecting some with potential solutions:
savemethod 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 toNewtonSolver.solve().ConvergenceStatusfrom Equation- and variable-based convergence checks #1448 into the logging. By extension ofConvergenceStatusto include other statuses, e.g,MAX_NUMBER_ITERATIONS_REACHED,CYCLED,NANetc. one could provide even more information for later analysis. This would require an additional attributeconvergence_status.time_manager.time_indexin addition with the aboveConvergenceStatusand even if wished storingtime_manager.timeantime_manager.dtone 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 attributestime_index,time,dt.dtreached 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 attributefinal_time_reached.SolutionStrategy.after_nonlinear_failuresaves time step data causing weird visualization #1421