10 #ifdef MOOSE_MFEM_ENABLED 20 params.
addClassDescription(
"Hypre auxiliary-space divergence solver and preconditioner for the " 21 "iterative solution of MFEM equation systems.");
22 params.
addParam<UserObjectName>(
"fespace",
"H(div) FESpace to use in HypreADS setup.");
23 params.
addParam<
int>(
"print_level", 2,
"Set the solver verbosity.");
38 solver->SetPrintLevel(getParam<int>(
"print_level"));
50 mfem::Geometry::Type::CUBE)
51 mooseError(
"LOR HypreADS Solver only supports hex meshes.");
53 auto lor_solver =
new mfem::LORSolver<mfem::HypreADS>(a, tdofs);
54 lor_solver->GetSolver().SetPrintLevel(getParam<int>(
"print_level"));
Wrapper for mfem::HypreADS solver.
const InputParameters & parameters() const
Get the parameters of the object.
virtual void checkSpectralEquivalence(mfem::ParBilinearForm &blf) const
Checks for the correct configuration of quadrature bases for LOR spectral equivalence.
static InputParameters validParams()
void constructSolver(const InputParameters ¶meters) override
Override in derived classes to construct and set the solver options.
static InputParameters validParams()
MFEMHypreADS(const InputParameters &)
Constructs and stores an mfem::ParFiniteElementSpace object.
bool _lor
Variable defining whether to use LOR solver.
Base class for wrapping mfem::Solver-derived classes.
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...
void updateSolver(mfem::ParBilinearForm &a, mfem::Array< int > &tdofs) override
Updates the solver with the bilinear form in case LOR solve is required.
std::shared_ptr< mfem::ParFiniteElementSpace > getFESpace() const
Returns a shared pointer to the constructed fespace.
registerMooseObject("MooseApp", MFEMHypreADS)
const MFEMFESpace & _mfem_fespace
std::unique_ptr< mfem::Solver > _solver
Solver to be used for the problem.