10#ifdef MOOSE_MFEM_ENABLED
40 virtual void Solve() {
mooseError(
"'solve' method not used in this solver type."); }
53 friend class ::MFEMProblemSolve;
const InputParameters & parameters() const
Get the parameters of the object.
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Base class for linear MFEM solvers and preconditioners.
virtual void UpdateEquationSystemContext() override
Update the solver following any changes to the EquationSystem it is responsible for solving.
std::shared_ptr< EquationSystem > _equation_system
Pointer to EquationSystem used for problem-specific solver setup.
LinearSolverBase * GetPreconditioner()
Returns this solver's preconditioner.
virtual void Solve()
For eigensolvers, this method calls the underlying Solve method.
std::shared_ptr< LinearSolverBase > _preconditioner
Preconditioner to be used for the problem.
static InputParameters validParams()
void SetPreconditioner(T &solver)
Retrieves the preconditioner userobject if present, sets the member pointer to said object if still u...
Base class for wrapping mfem::Solver-derived classes.
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).