20 "Second order backward differentiation formula time integration scheme.");
26 _weight(declareRestartableData<
std::vector<
Real>>(
"weight")),
27 _solution_older(_sys.solutionState(2))
48 mooseError(
"BDF2: Time derivative of solution (`u_dot`) is not stored. Please set " 49 "uDotRequested() to true in FEProblemBase befor requesting `u_dot`.");
66 auto ad_sln = ad_u_dot;
virtual void computeTimeDerivatives() override
Computes the time derivative and the Jacobian of the time derivative.
SystemBase & _sys
Reference to the system this time integrator operates on.
DualNumber< Real, DNDerivativeType, true > ADReal
Real & _dt
The current time step size.
Real & _dt_old
The previous time step size.
NumericVector< Number > * _Re_time
residual vector for time contributions
const NumericVector< Number > & _solution_older
The older solution.
std::vector< Real > & _weight
virtual NumericVector< Number > * solutionUDot()
virtual void preStep() override
void computeTimeDerivativeHelper(T &u_dot, const T2 &u, const T3 &u_old, const T4 &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
registerMooseObject("MooseApp", BDF2)
BDF2(const InputParameters ¶meters)
static InputParameters validParams()
const NumericVector< Number > *const & _solution
virtual void postResidual(NumericVector< Number > &residual) override
Callback to the NonLinearTimeIntegratorInterface called immediately after the residuals are computed ...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Base class for time integrators.
virtual Real duDotDuCoeff() const override
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
const NumericVector< Number > & _solution_old
NumericVector< Number > * _Re_non_time
residual vector for non-time contributions
int & _t_step
The current time step number.
static InputParameters validParams()
void computeDuDotDu()
Compute _du_dot_du.