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.");
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()));
Thin base for MFEM objects backed directly by MooseObject instead of UserObject.
virtual int getVDim() const =0
Get the number of degrees of freedom per basis function needed in this finite element space...
const int _ordering
Type of ordering of the vector dofs when _vdim > 1.
MFEMFESpace(const InputParameters ¶meters)
std::shared_ptr< mfem::FiniteElementCollection > getFEC() const
Returns a shared pointer to the constructed fec.
void buildFEC() const
Constructs the fec from the fec name.
static InputParameters validParams()
void buildFESpace() const
Constructs the fespace.
virtual std::string getFECName() const =0
Get the name of the desired FECollection.
std::shared_ptr< mfem::FiniteElementCollection > _fec
Stores the constructed fecollection.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
mfem::ParMesh & _pmesh
Mesh FESpace is defined with respect to.
static InputParameters validParams()
Declare the common parameters required by MFEM MooseObject-backed classes.
std::shared_ptr< mfem::ParFiniteElementSpace > _fespace
Stores the constructed fespace.
const Elem & get(const ElemType type_in)