Go to the documentation of this file.
15 #include "libmesh/linear_solver.h"
16 #include "libmesh/preconditioner.h"
17 #include "libmesh/numeric_vector.h"
37 virtual void init()
override;
112 _is_initialized =
true;
115 virtual void apply(
const NumericVector<Real> &
x, NumericVector<Real> & y)
override
InputParameters validParams< ExplicitTimeIntegrator >()
static InputParameters validParams()
TagID _Ke_time_tag
For computing the mass matrix.
virtual void init() override
Called only before the very first timestep (t_step = 0) Never called again (not even during recover/r...
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
MooseEnum _solve_type
Solve type for how mass matrix is handled.
Base class for time integrators.
const InputParameters & parameters() const
Get the parameters of the object.
NumericVector< Real > & _mass_matrix_diag
Diagonal of the lumped mass matrix (and its inversion)
static PetscErrorCode Vec x
bool performExplicitSolve(SparseMatrix< Number > &mass_matrix)
Solves a linear system using the chosen solve type.
Base class for explicit time integrators that are implemented without using a nonlinear solver.
static InputParameters validParams()
NumericVector< Real > & _solution_update
Solution vector for the linear solve.
virtual void preSolve() override
Helper class to apply lumped mass matrix preconditioner.
std::unique_ptr< LinearSolver< Number > > _linear_solver
For solving with the consistent matrix.
NumericVector< Real > & _explicit_residual
Residual used for the RHS.
virtual void apply(const NumericVector< Real > &x, NumericVector< Real > &y) override
Interface for notifications that the mesh has changed.
LumpedPreconditioner(const NumericVector< Real > &diag_inverse)
const NumericVector< Real > & _diag_inverse
The inverse of the diagonal of the lumped matrix.
std::unique_ptr< LumpedPreconditioner > _preconditioner
For solving with lumped preconditioning.
virtual void init() override
bool solveLinearSystem(SparseMatrix< Number > &mass_matrix)
Solves a linear system.
Real _current_time
Save off current time to reset it back and forth.
ExplicitTimeIntegrator(const InputParameters ¶meters)
virtual void meshChanged() override
Called on this object when the mesh changes.
NumericVector< Real > * _ones
Vector of 1's to help with creating the lumped mass matrix.
virtual void initialSetup() override
Called to setup datastructures.
bool checkLinearConvergence()
Check for the linear solver convergence.