33 mooseError(
"CrankNicolson: Time derivative of solution (`u_dot`) is not stored. Please set " 34 "uDotRequested() to true in FEProblemBase befor requesting `u_dot`.");
56 mooseError(
"CrankNicolson: Time derivative of solution (`u_dot`) is not stored. Please set " 57 "uDotRequested() to true in FEProblemBase befor requesting `u_dot`.");
82 std::vector<unsigned char> inputs_closed = {
90 if (!inputs_closed[0])
92 if (!inputs_closed[1])
94 if (!inputs_closed[2])
NonlinearSystemBase & _nl
virtual NumericVector< Number > * solutionUDot()=0
virtual void postResidual(NumericVector< Number > &residual) override
Callback to the TimeIntegrator called immediately after the residuals are computed in NonlinearSystem...
void clearCurrentResidualVectorTags()
Clear the current residual vector tag data structure.
void computeTimeDerivativeHelper(T &u_dot, const T2 &u_old) const
Helper function that actually does the math for computing the time derivative.
FEProblemBase & _fe_problem
virtual void init() override
Called only before the very first timestep (t_step = 0) Never called again (not even during recover/r...
TagID nonTimeVectorTag() const override
DualNumber< Real, DNDerivativeType, true > DualReal
NumericVector< Number > & _Re_non_time
residual vector for non-time contributions
const Parallel::Communicator & comm() const
virtual void postStep() override
Callback to the TimeIntegrator called at the very end of time step.
void min(const T &r, T &o, Request &req) const
NumericVector< Number > & _residual_old
registerMooseObject("MooseApp", CrankNicolson)
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
CrankNicolson(const InputParameters ¶meters)
virtual bool closed() const
Real & _du_dot_du
Derivative of time derivative with respect to current solution: .
virtual NumericVector< Number > & RHS()=0
const NumericVector< Number > *const & _solution
solution vectors
Base class for time integrators.
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
NumericVector< Number > & _Re_time
residual vector for time contributions
void setCurrentResidualVectorTags(const std::set< TagID > &vector_tags)
Set the current residual vector tag data structure based on the passed in tag IDs.
const NumericVector< Number > & _solution_old
void computeResidualTag(NumericVector< Number > &residual, TagID tag_id)
Computes residual for a given tag.
static InputParameters validParams()
virtual void computeTimeDerivatives() override
Computes the time derivative and the Jacobian of the time derivative.
static InputParameters validParams()
Crank-Nicolson time integrator.