https://mooseframework.inl.gov
MFEMSubMesh.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #ifdef MFEM_ENABLED
11 
12 #pragma once
13 #include "MFEMGeneralUserObject.h"
14 #include "libmesh/ignore_warnings.h"
15 #include <mfem.hpp>
16 #include "libmesh/restore_warnings.h"
17 
23 {
24 public:
26 
28 
30  inline std::shared_ptr<mfem::ParSubMesh> getSubMesh()
31  {
32  if (!_submesh)
33  buildSubMesh();
34  return _submesh;
35  }
36 
37 protected:
39  std::shared_ptr<mfem::ParSubMesh> _submesh{nullptr};
41  virtual void buildSubMesh() = 0;
42 };
43 
44 #endif
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
static InputParameters validParams()
Definition: MFEMSubMesh.C:16
virtual void buildSubMesh()=0
Constructs the submesh.
Base class for construction of a mfem::ParSubMesh object.
Definition: MFEMSubMesh.h:22
MFEMSubMesh(const InputParameters &parameters)
Definition: MFEMSubMesh.C:23
std::shared_ptr< mfem::ParSubMesh > getSubMesh()
Returns a shared pointer to the constructed fespace.
Definition: MFEMSubMesh.h:30
const InputParameters & parameters() const
Get the parameters of the object.
std::shared_ptr< mfem::ParSubMesh > _submesh
Stores the constructed submesh.
Definition: MFEMSubMesh.h:39