62 virtual int order()
override {
return 2; }
66 const dof_id_type & dof,
67 ADReal & ad_u_dotdot)
const override;
68 virtual void solve()
override;
69 virtual void postResidual(NumericVector<Number> & residual)
override;
76 template <
typename T,
typename T2,
typename T3>
90 virtual Real
a()
const = 0;
91 virtual Real
b1()
const = 0;
92 virtual Real
b2()
const = 0;
95template <
typename T,
typename T2,
typename T3>
DualNumber< Real, DNDerivativeType, true > ADReal
Base class for three different explicit second-order Runge-Kutta time integration methods:
const NumericVector< Number > & _solution_older
The older solution.
virtual Real a() const =0
The method coefficients.
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 Real b1() const =0
virtual void preSolve() override
virtual void postResidual(NumericVector< Number > &residual) override
Callback to the NonLinearTimeIntegratorInterface called immediately after the residuals are computed ...
NumericVector< Number > * _residual_old
Buffer to store non-time residual from the first stage.
void computeTimeDerivativeHelper(T &u_dot, const T2 &u_old, const T3 &u_older) const
Helper function that actually does the math for computing the time derivative.
void computeADTimeDerivatives(ADReal &ad_u_dot, const dof_id_type &dof, ADReal &ad_u_dotdot) const override
method for computing local automatic differentiation time derivatives
virtual Real b2() const =0
virtual void computeTimeDerivatives() override
Computes the time derivative and the Jacobian of the time derivative.
virtual bool overridesSolve() const override
const InputParameters & parameters() const
Get the parameters of the object.
Base class for time integrators.
Real & _dt
The current time step size.