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"));
49 mooseError(
"Low-Order-Refined solver requires the FESpace closed_basis to be GaussLobatto " 50 "and the open-basis to be IntegratedGLL for ND and RT elements.");
53 mfem::Geometry::Type::CUBE)
54 mooseError(
"LOR HypreADS Solver only supports hex meshes.");
56 auto lor_solver =
new mfem::LORSolver<mfem::HypreADS>(a, tdofs);
57 lor_solver->GetSolver().SetPrintLevel(getParam<int>(
"print_level"));
Wrapper for mfem::HypreADS solver.
const InputParameters & parameters() const
Get the parameters of the object.
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.
virtual bool checkSpectralEquivalence(mfem::ParBilinearForm &blf) const
Checks for the correct configuration of quadrature bases for LOR spectral equivalence.
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.