bugfix: allowNonConverged warning instead of aborting#4075
Conversation
…reventing any timestep-cut
…onverged is enabled without preventing timestep-cuts, but at the last level of sub-steps
Co-authored-by: Dickson Kachuma <81433670+dkachuma@users.noreply.github.com>
|
This flag seems like a bad idea. Can someone explain what measure will determine that results are valid after violating the desired tolerance for the governing equations? How critical is the violation? It seems that there can be repeated violations? Can every timestep in a simulation violate and complete? What if the residual is very high? Is there a criteria for termination then? |
|
What was the previous behavior if this option was enabled? How does this change interact with other checks within the physics solvers themselves, e.g. GEOS/src/coreComponents/physicsSolvers/PhysicsSolverBase.cpp Lines 937 to 950 in f779513 |
|
If we keep this, I would suggest two changes:
I can see selected situations where for debugging purposes a user may want to keep the simulation running to see what happens and gather more info, but it has to be very clear that they are taking ownership of any poor quality results. |
|
The concept behind this flag is actually quite old. This PR extends its behaviour so that it also applies to time stepping, effectively disabling the That said, my assumption was that the broader discussion around result validity and the handling or interpretation of tolerance violations had already taken place when the flag was originally introduced at #278. |
|
Thanks for the feedback. On naming/output changes: About renaming the output file, when?
I propose to:
(we could add the failing solver name too) We may also want to add a column in the solver CSV. On consolidation: I don't see other places where this flag might interact. To me, it seem currently limited to the solver-level logic in After that PR, do we do the same for |
|
Okay, this seems like a reasonable compromise to me, as the final table provides clear and useful info. The name itself should be a red flag for anyone competent (who puts I am less familiar with that part of the code (so don't trust me on this) but I think |
|
I just did a search for |
|
Indeed, Do we want to exclude or at least comment these usages of |
When max sub-steps are exceeded and
allowNonConvergedis enabled, the solver now warns (rank 0) and continues instead of aborting (this PR assumesallowNonConvergedwas intended to let the simulation continue even when not converging).