31 mooseError(
"ImplicitEuler: Time derivative of solution (`u_dot`) is not stored. Please set " 32 "uDotRequested() to true in FEProblemBase befor requesting `u_dot`.");
77 *residual_sub += *re_time_sub;
78 *residual_sub += *re_non_time_sub;
87 const std::vector<Real> & factors)
const 90 "Either too many or too few states are given!");
bool & _var_restriction
Whether the user has requested that the time integrator be applied to a subset of variables...
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.
registerMooseObject("MooseApp", ImplicitEuler)
DualNumber< Real, DNDerivativeType, true > ADReal
Real & _dt
The current time step size.
NumericVector< Number > * _Re_time
residual vector for time contributions
void computeTimeDerivativeHelper(T &u_dot, const T2 &u_old) const
Helper function that actually does the math for computing the time derivative.
virtual void create_subvector(NumericVector< Number > &, const std::vector< numeric_index_type > &, bool=true) const
static InputParameters validParams()
virtual NumericVector< Number > * solutionUDot()
std::vector< dof_id_type > & _local_indices
The local degree of freedom indices this time integrator is being applied to.
virtual std::unique_ptr< NumericVector< Number > > get_subvector(const std::vector< numeric_index_type > &)
std::unique_ptr< NumericVector< Number > > & _solution_old_sub
const NumericVector< Number > *const & _solution
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Base class for time integrators.
ImplicitEuler(const InputParameters ¶meters)
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 mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
virtual Real timeDerivativeMatrixContribution(const Real factor) const override
The time derivative's contribution to the right hand side of a linear system.
const NumericVector< Number > & _solution_old
virtual Real timeDerivativeRHSContribution(const dof_id_type dof_id, const std::vector< Real > &factors) const override
The time derivative's contribution to the right hand side of a linear system.
virtual void postResidual(NumericVector< Number > &residual) override
Callback to the NonLinearTimeIntegratorInterface called immediately after the residuals are computed ...
NumericVector< Number > * _Re_non_time
residual vector for non-time contributions
static InputParameters validParams()
Implicit Euler's method.
std::unique_ptr< NumericVector< Number > > & _solution_sub
void computeDuDotDu()
Compute _du_dot_du.
virtual unsigned int numStatesRequired() const
Return the number of states this requires in a linear system setting.
virtual void restore_subvector(std::unique_ptr< NumericVector< Number >>, const std::vector< numeric_index_type > &)