62 virtual int order()
override {
return 2; }
67 ADReal & ad_u_dotdot)
const override;
68 virtual void solve()
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;
95 template <
typename T,
typename T2,
typename T3>
virtual bool overridesSolve() const override
NumericVector< Number > * _residual_old
Buffer to store non-time residual from the first stage.
Base class for three different explicit second-order Runge-Kutta time integration methods: ...
DualNumber< Real, DNDerivativeType, true > ADReal
Real & _dt
The current time step size.
static InputParameters validParams()
virtual void solve() override
Solves the time step and sets the number of nonlinear and linear iterations.
virtual Real a() const =0
The method coefficients.
virtual int order() override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Base class for time integrators.
virtual Real b1() const =0
virtual void preSolve() override
ExplicitRK2(const InputParameters ¶meters)
virtual void postResidual(NumericVector< Number > &residual) override
Callback to the NonLinearTimeIntegratorInterface called immediately after the residuals are computed ...
virtual void computeTimeDerivatives() override
Computes the time derivative and the Jacobian of the time derivative.
const InputParameters & parameters() const
Get the parameters of the object.
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
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.
virtual Real b2() const =0
const NumericVector< Number > & _solution_older
The older solution.