90 virtual int order() = 0;
107 ADReal & ad_u_dot_dot)
const = 0;
235 std::unordered_set<unsigned int> &
_vars;
virtual void solve()
Solves the time step and sets the number of nonlinear and linear iterations.
virtual Real duDotDuCoeff() const
A class for creating restricted objects.
bool & _var_restriction
Whether the user has requested that the time integrator be applied to a subset of variables...
void setNumIterationsLastSolve()
Record the linear and nonlinear iterations from a just finished solve.
virtual void postStep()
Callback to the TimeIntegrator called at the very end of time step.
std::unordered_set< unsigned int > & _vars
The variables that this time integrator integrates.
bool _is_lumped
Boolean flag that is set to true if lumped mass matrix is used.
FEProblemBase & _fe_problem
Reference to the problem.
Interface class for routines and member variables for time integrators relying on Newton's method...
virtual bool overridesSolve() const =0
SystemBase & _sys
Reference to the system this time integrator operates on.
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
Base class for a system (of equations)
DualNumber< Real, DNDerivativeType, true > ADReal
virtual unsigned int getNumNonlinearIterations() const
Gets the total number of nonlinear iterations over all stages of the time step.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Real & _dt
The current time step size.
Real & _dt_old
The previous time step size.
virtual bool isExplicit() const
Returns whether the explicit solvers are used.
virtual void init()
Called only before the very first timestep (t_step = 0) Never called again (not even during recover/r...
Nonlinear system to be solved.
Every object that can be built by the factory should be derived from this class.
virtual void computeADTimeDerivatives(ADReal &ad_u_dot, const dof_id_type &dof, ADReal &ad_u_dot_dot) const =0
method for computing local automatic differentiation time derivatives
const Real & dt() const
Returns the time step size.
virtual unsigned int getNumLinearIterations() const
Gets the total number of linear iterations over all stages of the time step.
unsigned int _n_linear_iterations
Total number of linear iterations over all stages of the time step.
std::vector< dof_id_type > & _local_indices
The local degree of freedom indices this time integrator is being applied to.
std::unique_ptr< NumericVector< Number > > & _solution_old_sub
std::vector< Real > & _du_dot_du
Derivative of time derivative with respect to current solution: for the different variables...
virtual void initialSetup()
Called to setup datastructures.
Interface class for routines and member variables for time integrators relying on linear system assem...
virtual bool advancesProblemState() const
const NumericVector< Number > *const & _solution
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Base class for time integrators.
unsigned int getNumLinearIterationsLastSolve() const
Gets the number of linear iterations in the most recent solve.
virtual const bool & isLumped() const
Returns whether mass matrix is lumped.
virtual void postSolve()
Callback to the TimeIntegrator called immediately after TimeIntegrator::solve() (so the name does mak...
const InputParameters & parameters() const
Get the parameters of the object.
const NumericVector< Number > & _solution_old
bool integratesVar(const unsigned int var_num) const
unsigned int _n_nonlinear_iterations
Total number of nonlinear iterations over all stages of the time step.
unsigned int getNumNonlinearIterationsLastSolve() const
Gets the number of nonlinear iterations in the most recent solve.
TimeIntegrator(const InputParameters ¶meters)
int & _t_step
The current time step number.
std::unique_ptr< NumericVector< Number > > _from_subvector
A vector that is used for creating 'from' subvectors in the copyVector() method.
static InputParameters validParams()
std::unique_ptr< NumericVector< Number > > & _solution_sub
virtual void computeTimeDerivatives()=0
Computes the time derivative and the Jacobian of the time derivative.
void computeDuDotDu()
Compute _du_dot_du.
void copyVector(const NumericVector< Number > &from, NumericVector< Number > &to)
Copy from one vector into another.
virtual unsigned int numStatesRequired() const
Return the number of states this requires in a linear system setting.