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`.");
71 auto ad_sln = ad_u_dot;
virtual NumericVector< Number > * solutionUDot()=0
virtual void computeTimeDerivatives() override
Computes the time derivative and the Jacobian of the time derivative.
DualNumber< Real, DNDerivativeType, true > DualReal
NumericVector< Number > & _Re_non_time
residual vector for non-time contributions
const NumericVector< Number > & _solution_older
The older solution.
std::vector< Real > & _weight
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.
registerMooseObject("MooseApp", BDF2)
BDF2(const InputParameters ¶meters)
static InputParameters validParams()
Real & _du_dot_du
Derivative of time derivative with respect to current solution: .
const NumericVector< Number > *const & _solution
solution vectors
virtual void postResidual(NumericVector< Number > &residual) override
Callback to the TimeIntegrator called immediately after the residuals are computed in NonlinearSystem...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Base class for time integrators.
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
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
NumericVector< Number > & _Re_time
residual vector for time contributions
const NumericVector< Number > & _solution_old
static InputParameters validParams()