idaholab / moose

Multiphysics Object Oriented Simulation Environment
https://www.mooseframework.org
GNU Lesser General Public License v2.1
1.76k stars 1.05k forks source link

Enable multi-level Picard iterations to restart from the latest solution #14056

Closed vincentlaboure closed 4 years ago

vincentlaboure commented 5 years ago

Reason

In #13310, the behavior of multi-level Picard iterations was fixed. However, for pseudo-transient calculations, it can be very efficient to be able to restart from the latest solution when taking starting another Picard iterations.

Consider the same as setup:

When level1 passes information back to master, and master takes another full solve, it then passes something back to level1 which currently would restart from t = 0. For large pseudo-transient problems, it is not only wasteful but is also hard to tell when the Picard iteration has converged (because even when fully converged, restarting from the initial condition means that the residual is still very large)

Design

It would be ideal to have a flag, similar to FullSolveMultiApp/*/no_backup_and_restore = true to make the desired behavior possible.

Impact

It will enable efficient pseudo-transients for a fairly standard multiphysics setup (eigenvalue calculation + pseudo time-dependent physics)

fdkong commented 5 years ago

@vincentlaboure Do you have a simple inputfile to demonstrate this?

vincentlaboure commented 5 years ago

@fdkong Just sent you a PM directing you to a test in Sabertooth