10#ifdef MOOSE_MFEM_ENABLED
45 std::vector<std::filesystem::path>
65 void displace(mfem::GridFunction
const & displacement);
104inline const mfem::ParMesh &
subdomain_id_type SubdomainID
Abstract MooseMesh base for all MFEM-backed mesh types (MFEMFileMesh, MFEMMeshGeneratorMesh).
SubdomainID nSubdomains() const override
std::optional< std::string > _mesh_displacement_variable
Holds name of variable used for mesh displacement, if set.
mfem::ParMesh & getMFEMParMesh()
Accessors for the _mfem_par_mesh object.
std::optional< std::reference_wrapper< std::string const > > getMeshDisplacementVariable() const
Returns an optional reference to displacement variable name.
unsigned int dimension() const override
Returns MeshBase::mesh_dimension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh me...
std::vector< std::filesystem::path > writeRecoveryFiles(const std::filesystem::path &file_base) override
Write the mesh files needed for recovery/checkpointing.
dof_id_type nActiveElem() const override
static InputParameters validParams()
void uniformRefinement(mfem::Mesh &mesh, const unsigned int nref) const
Performs a uniform refinement on the chosen mesh nref times.
bool isDistributedMesh() const override
Returns the final Mesh distribution type.
std::shared_ptr< mfem::ParMesh > getMFEMParMeshPtr()
Copy a shared_ptr to the mfem::ParMesh object.
void displace(mfem::GridFunction const &displacement)
Displace the nodes of the mesh by the given displacement.
unsigned int spatialDimension() const override
Returns MeshBase::spatial_dimension.
virtual mfem::Mesh buildSerialMFEMMesh()=0
Build and return the serial mfem::Mesh for this object.
void buildDummyMooseMesh()
Builds a dimension-compatible libMesh placeholder after initializing the MFEM mesh.
dof_id_type nActiveLocalElem() const override
void init() override
Initialize the MFEM ParMesh and placeholder MOOSE mesh.
std::shared_ptr< mfem::ParMesh > _mfem_par_mesh
Smart pointer to mfem::ParMesh object.
void buildMesh() override final
Must be overridden by child classes.
bool shouldDisplace() const
Returns true if mesh displacement is required.
const InputParameters & parameters() const
Get the parameters of the object.
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...