idaholab / moose

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

Additional refinements to pseudo - timestepping #28661

Open GiudGiud opened 2 months ago

GiudGiud commented 2 months ago

Motivation

From discussions with Peter: during the pseudo transient, we could try at any point during the pseudo transient to jump to steady state We would just need to be able to detect that we are close enough to converge. I m not sure how easy that is for Newton's method or other types of nonlinear solvers. Something like observing the rate of change in solutions could suffice. Maybe observing the rate of decrease in the steady state residual too

From the report: the pseudo time stepper does not use the regular failed time step behavior. This could be detrimental when the objective is robustness and a single failed time step (even though it s rare with a single newton iteration) can take down the solve (dt is never reduced after a failed step)

It would be good to use the steady state residual to assess steady state convergence. it s easy to access after all

Design

Add some heuristic to PseudoTimestep

Keep track of the problem actual time steps in the PseudoTimestep logic instead of using _iterations_step_sequence which is pre-determined

Impact

Robust and fast pseudo transients

GiudGiud commented 2 months ago

I think we should also make this PP a time stepper, for the sake of ordering objects better