10#ifdef MOOSE_MFEM_ENABLED
22 params.
addParam<
MooseEnum>(
"ordering", ordering,
"Ordering style to use for vector DoFs.");
23 params.
addParam<
int>(
"vdim", 1,
"The number of degrees of freedom per basis function.");
24 params.
addParam<std::string>(
"submesh",
25 "Submesh to define the FESpace on. Leave blank to use base mesh.");
31 _ordering(parameters.get<
MooseEnum>(
"ordering")),
33 parameters.isParamValid(
"submesh")
34 ? getMFEMProblem().getProblemData().submeshes.GetRef(getParam<
std::string>(
"submesh"))
35 : const_cast<
mfem::ParMesh &>(getMFEMProblem().
mesh().getMFEMParMesh()))
42 _fec = std::shared_ptr<mfem::FiniteElementCollection>(
43 mfem::FiniteElementCollection::New(
getFECName().c_str()));
std::shared_ptr< mfem::FiniteElementCollection > _fec
Stores the constructed fecollection.
std::shared_ptr< mfem::ParFiniteElementSpace > _fespace
Stores the constructed fespace.
virtual int getVDim() const =0
Get the number of degrees of freedom per basis function needed in this finite element space.
void buildFEC() const
Constructs the fec from the fec name.
mfem::ParMesh & _pmesh
Mesh FESpace is defined with respect to.
MFEMFESpace(const InputParameters ¶meters)
static InputParameters validParams()
void buildFESpace() const
Constructs the fespace.
const int _ordering
Type of ordering of the vector dofs when _vdim > 1.
std::shared_ptr< mfem::FiniteElementCollection > getFEC() const
Returns a shared pointer to the constructed fec.
virtual std::string getFECName() const =0
Get the name of the desired FECollection.
Thin base for MFEM objects backed directly by MooseObject instead of UserObject.
static InputParameters validParams()
Declare the common parameters required by MFEM MooseObject-backed classes.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...