45 virtual int order()
override {
return 2; }
49 DualReal & ad_u_dotdot)
const override;
50 virtual void solve()
override;
57 template <
typename T,
typename T2>
73 template <
typename T,
typename T2>
void computeADTimeDerivatives(DualReal &ad_u_dot, const dof_id_type &dof, DualReal &ad_u_dotdot) const override
method for computing local automatic differentiation time derivatives
virtual void computeTimeDerivatives() override
Computes the time derivative and the Jacobian of the time derivative.
LStableDirk2(const InputParameters ¶meters)
DualNumber< Real, DNDerivativeType, true > DualReal
static InputParameters validParams()
virtual void solve() override
Solves the time step and sets the number of nonlinear and linear iterations.
virtual int order() override
virtual void postResidual(NumericVector< Number > &residual) override
Callback to the TimeIntegrator called immediately after the residuals are computed in NonlinearSystem...
void computeTimeDerivativeHelper(T &u_dot, const T2 &u_old) const
Helper function that actually does the math for computing the time derivative.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Base class for time integrators.
unsigned int _stage
Indicates the current stage (1 or 2).
const InputParameters & parameters() const
Get the parameters of the object.
NumericVector< Number > & _residual_stage2
Buffer to store non-time residual from second stage solve.
Second order diagonally implicit Runge Kutta method (Dirk) with two stages.
NumericVector< Number > & _residual_stage1
Buffer to store non-time residual from first stage solve.