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