10 #ifdef MOOSE_MFEM_ENABLED 41 void Mult(
const mfem::Vector & rhs, mfem::Vector & x) {
GetSolver().Mult(rhs, x); }
59 mooseAssert(
_solver,
"Attempting to retrieve solver before it's been constructed");
Thin base for MFEM objects backed directly by MooseObject instead of UserObject.
mfem::Solver & GetSolver()
Returns the wrapped MFEM solver.
const InputParameters & parameters() const
Get the parameters of the object.
void SetSolver(mfem::Solver *solver)
Set the wrapped MFEM solver.
std::unique_ptr< mfem::Solver > _solver
Solver to be used for the problem.
void Mult(const mfem::Vector &rhs, mfem::Vector &x)
Solve the operator for the provided right-hand side and solution vector.
SolverBase(const InputParameters ¶meters)
static InputParameters validParams()
virtual void SetOperatorImpl(mfem::Operator &op)
Updates the solver at the operator level.
virtual void UpdateEquationSystemContext()
Update the solver following any changes to the weak form it is responsible for solving.
void SetOperator(mfem::Operator &op)
Updates the solver and any associated weak form context at the operator level.
Base class for wrapping mfem::Solver-derived classes.
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).
virtual void ConstructSolver()=0
Override in derived classes to construct and set the solver options.