12 #ifndef MFEM_TEMPLATE_MESH
13 #define MFEM_TEMPLATE_MESH
15 #include "../config/tconfig.hpp"
16 #include "../linalg/tlayout.hpp"
23 template <
typename FESpace,
25 VectorLayout<Ordering::byNODES,FESpace::FE_type::dim> >
30 typedef typename FESpace::FE_type
FE_type;
47 :
m_mesh(mesh),
fes(*mesh.GetNodalFESpace()),
Nodes(*mesh.GetNodes()),
50 MFEM_STATIC_ASSERT(
space_dim != 0,
"dynamic space dim is not allowed");
59 for (
int i = 0; i < mesh.
GetNE(); i++)
68 if (!mesh.
GetNodes()) {
return false; }
69 return FESpace::template VectorMatches<nodeLayout>(
81 #endif // MFEM_TEMPLATE_MESH
Class for grid function - Vector with associated FE space.
int GetNE() const
Returns number of elements.
Geometry::Type GetElementBaseGeometry(int i) const
static const int space_dim
const FiniteElementSpace & fes
nodeLayout nodeLayout_type
const GridFunction & Nodes
static bool Matches(const Mesh &mesh)
int SpaceDimension() const
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
const FiniteElementSpace * GetNodalFESpace() const
static bool MatchesGeometry(const Mesh &mesh)
void GetNodes(Vector &node_coord) const
static bool MatchesNodes(const Mesh &mesh)