32 virtual int order()
override {
return 1; }
35 virtual void solve()
override;
52 virtual void init()
override;
115 template <
typename T,
typename T2,
typename T3,
typename T4>
122 template <
typename T,
typename T2,
typename T3,
typename T4>
127 const T4 & u_older)
const 135 u_dot *= 1.0 / (2.0 *
_dt);
146 u_dotdot *= 1.0 / (
_dt *
_dt);
virtual TagID massMatrixTagID() const override
const TagName & _mass_matrix_name
Mass matrix name.
std::unordered_set< unsigned int > & _vars_second
FEProblemBase & _fe_problem
const InputParameters & parameters() const
const NumericVector< Number > & _solution_older
The older solution.
const bool & _constant_mass
Whether we are reusing the mass matrix.
virtual void postSolve() override
TimeOrder findVariableTimeOrder(unsigned int var_num) const
Retrieve the order of the highest time derivative of a variable.
virtual void postResidual(NumericVector< Number > &residual) override
Implements a form of the central difference time integrator that calculates acceleration directly fro...
The following methods are specializations for using the Parallel::packed_range_* routines for a vecto...
NumericVector< Real > * _mass_matrix_lumped
Lumped mass matrix.
virtual void advanceState()
virtual bool overridesSolve() const override
std::unordered_set< unsigned int > & _vars_first
virtual bool advancesProblemState() const override
void computeTimeDerivativeHelper(T &u_dot, T2 &u_dotdot, const T3 &u_old, const T4 &u_older) const
Helper function that actually does the math for computing the time derivative.
std::vector< dof_id_type > & _local_second_order_indices
static InputParameters validParams()
const bool & _recompute_mass_matrix_on_mesh_change
Must be set to true to use adaptivity with a constant mass matrix.
virtual void computeTimeDerivatives() override
virtual int order() override
void computeADTimeDerivatives(ADReal &, const dof_id_type &, ADReal &) const override
virtual void init() override
virtual void meshChanged() override
virtual bool performExplicitSolve(SparseMatrix< Number > &mass_matrix) override
void mooseError(Args &&... args) const
void updateDOFIndices()
compile the dof indices for first and second order in time variables
virtual void solve() override
ExplicitMixedOrder(const InputParameters ¶meters)
virtual void evaluateRHSResidual()
Evaluate the RHS residual.
bool _mesh_changed
Whether the mesh changed just before the current solve.
std::vector< dof_id_type > & _local_first_order_indices