10 #ifdef MOOSE_MFEM_ENABLED 16 #include "libmesh/ignore_warnings.h" 18 #include "libmesh/restore_warnings.h" 37 virtual void SetOperator(
const mfem::Operator & op) = 0;
43 virtual void Mult(
const mfem::Vector & rhs, mfem::Vector & x) = 0;
static InputParameters validParams()
void ConstructSolver() override=0
Override in derived classes to construct and set the solver options.
virtual void Mult(const mfem::Vector &rhs, mfem::Vector &x)=0
Solve the nonlinear system for the provided right-hand side and solution vector.
const InputParameters & parameters() const
Get the parameters of the object.
virtual ~NonlinearSolverBase()=default
virtual void SetOperator(const mfem::Operator &op)=0
Configure the nonlinear solver with the residual/Jacobian operator.
virtual bool RequiresGradient() const =0
Return whether this nonlinear solver requires Jacobian/gradient information from the operator...
virtual void SetLinearSolver(mfem::Solver &solver)=0
Configure the linear solver used inside the nonlinear solve.
Base class for wrapping mfem::Solver-derived classes.
virtual bool RequiresExternalLinearSolver() const =0
Return whether this nonlinear solver requires an externally configured MFEM linear solver...
NonlinearSolverBase(const InputParameters ¶meters)
MooseObject base for nonlinear MFEM solve strategies configured in the input file.
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).