AStableDirk4

Fourth-order diagonally implicit Runge Kutta method (Dirk) with three stages plus an update.

This method can be expressed as a Runge-Kutta method with the following Butcher Tableau:

where

The stability function for this method is:

The method is not L-stable; it is only A-stable:

Notes

  • Method is originally due to Crouzeix (1975)

  • Since is slightly larger than , the first stage involves evaluation of the non-time residuals for , while the third stage involves evaluation of the non-time residual for , which may present an issue for the first timestep (if e.g. material properties or forcing functions are not defined for . We could handle this by using an alternate (more expensive) method in the first timestep, or by using a lower-order method for the first timestep and then switching to this method for subsequent timesteps.

Input Parameters

  • safe_startTrueIf true, use LStableDirk4 to bootstrap this method.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:If true, use LStableDirk4 to bootstrap this method.

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Set the enabled status of the MooseObject.

Advanced Parameters

References

  1. M. Crouzeix. Sur l'approximation des equations differentielles operationelles lineaires par des methodes de Runge Kutta. PhD thesis, Universite Paris VI, Paris, 1975.[BibTeX]