LStableDirk2

Second order diagonally implicit Runge Kutta method (Dirk) with two stages.

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

αα11αα1αα\begin{array}{c|cc} \alpha & \alpha\\ 1 & 1 - \alpha & \alpha \\ \hline & 1 - \alpha & \alpha \end{array}

where α=12/20.29289\alpha = 1 - \sqrt{2}/2 \approx 0.29289

The stability function for this method is:

R(z)=4z(2+2)+z+1z2(2+2)24z(2+2)+4R(z) = 4 \dfrac{-z(-\sqrt{2} + 2) + z + 1}{z^2(-\sqrt{2} + 2)^2 - 4z(-\sqrt{2} + 2) + 4}

The method is L-stable:

limz>R(z)=0\lim_{z->\infty} R(z) = 0

Notes

This method is derived in detail in Alexander (1977). This method is more expensive than Crank-Nicolson, but has the advantage of being L-stable (the same type of stability as the implicit Euler method) so may be more suitable for "stiff" problems.

Input Parameters

  • variablesA subset of the variables that this time integrator should be applied to

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

    Unit:(no unit assumed)

    Controllable:No

    Description:A subset of the variables that this time integrator should be applied to

Optional Parameters

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

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

    Unit:(no unit assumed)

    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

    Unit:(no unit assumed)

    Controllable:No

    Description:Set the enabled status of the MooseObject.

Advanced Parameters

References

  1. R. Alexander. Diagonally implicit runge-kutta methods for stiff odes. SIAM J. Numer. Anal., 14(6):1006–1021, 1977.[BibTeX]