24 #ifndef _GEMA_PLUGIN_GEMA_CELL_MESH_H_ 25 #define _GEMA_PLUGIN_GEMA_CELL_MESH_H_ 39 template <
template <
class>
class Vector>
41 GmpGemaMeshCoordAccessor<GmpGemaMeshData<Vector>, Vector>,
42 GmpGemaMeshGhostCoordAccessor<GmpMeshData<Vector>, Vector>,
43 GmpGemaMeshData<Vector>, GmpGemaCellMeshData<Vector>,
57 virtual const char* pluginType()
const {
if constexpr(std::is_same<Vector<int>,
GmSingleVector<int>>::value)
return "cell";
else return "celld"; }
72 return ghostSupport ? GmpCellFactory<GmpGemaGhostCell, GmCell, GmLuaCell, GmpGemaCellMeshData<Vector>> :
73 GmpCellFactory<GmpGemaCell, GmCell, GmLuaCell, GmpGemaCellMeshData<Vector>>;
88 template <
template <
class>
class Vector>
90 GmpGemaMeshCoordAccessor<GmpGemaMeshData<Vector>, Vector>,
91 GmpGemaMeshGhostCoordAccessor<GmpMeshData<Vector>, Vector>,
92 GmpGemaMeshData<Vector>, GmpGemaCellMeshData<Vector>,
106 virtual const char* pluginType()
const {
if constexpr(std::is_same<Vector<int>,
GmSingleVector<int>>::value)
return "elem";
else return "elemd"; }
126 assert(ghostSupport);
127 return GmpHElementFactory<GmpGemaGhostCell, GmpGemaCellMeshData<Vector>>;
131 return ghostSupport ? GmpCellFactory<GmpGemaGhostCell, GmElement, GmLuaElement, GmpGemaCellMeshData<Vector>> :
132 GmpCellFactory<GmpGemaCell, GmElement, GmLuaElement, GmpGemaCellMeshData<Vector>>;
137 virtual int controlMapStateItemType()
Data _nd
The complete node data.
Definition: gmpMeshBase.h:262
Auxiliary class implementing an accessor for mesh ghost coordinate values.
Definition: gmpGemaMeshCoordAccessor.h:90
Declaration of the GmpCellMeshBase class.
GmpGemaCellMeshBase< GmSingleVector > GmpGemaCellMesh
Typedef for a mesh that supports cell data using a GmSingleVector for storing node / cell data.
Definition: gmpGemaCellMesh.h:81
GmCell *(* GmpMeshLoaderCellAllocator)(GmCellMesh *mesh, int meshId, GmCellType type, int hindex, int id, int offset)
Typedef for a function that can allocate a single cell of the given type and initialize it with the g...
Definition: gmpMeshLoaderAllocator.h:36
static int hierarchicalQOrder(int index)
Returns the Q order for hierarchical elements associated with the given index (returned by hierarchic...
Definition: gmpCellMeshData.h:90
Element mesh dump type.
Definition: gmpMeshBase.h:46
virtual GmpMeshLoaderCellAllocator cellAllocator(bool ghostSupport, bool hSupport) const
Returns the function responsible for allocating and initializing a new element.
Definition: gmpGemaCellMesh.h:122
GmpGemaElementMeshBase(GmSimulationData *simulation, QString id, QString description, const GmLogCategory &logger)
Constructor. Will be called by the plugin loading code.
Definition: gmpGemaCellMesh.h:97
GmpGemaElementMeshBase< GmDualVector > GmpGemaElementMeshD
Typedef for a mesh that supports element data using a GmDualVector for storing node / cell data.
Definition: gmpGemaCellMesh.h:147
Declaration of the GmpGemaCellMeshData structure.
Element mesh with hierarchical elements dump type.
Definition: gmpMeshBase.h:47
Auxiliar structure used to share data between GmpGemaCellMesh and GmpMeshLoader.
Definition: gmpGemaCellMeshData.h:36
GmpGemaCellMeshBase(GmSimulationData *simulation, QString id, QString description, const GmLogCategory &logger)
Constructor. Will be called by the plugin loading code.
Definition: gmpGemaCellMesh.h:48
static int hierarchicalPOrder(int index)
Returns the P order for hierarchical elements associated with the given index (returned by hierarchic...
Definition: gmpCellMeshData.h:85
Auxiliar structure used to share data between GmpXxxMeshBase and GmpMeshLoader.
Definition: gmpMeshData.h:43
Basic class for implementing a mesh with support for cells.
Definition: gmpCellMeshBase.h:66
CellData _cd
The complete cell data.
Definition: gmpCellMeshBase.h:338
A mesh that supports cell data, parameterized by the vector type (either GmSingleVector or GmDualVect...
Definition: gmpGemaCellMesh.h:40
Cell mesh dump type.
Definition: gmpMeshBase.h:45
virtual GmpMeshLoaderCellAllocator cellAllocator(bool ghostSupport, bool hSupport) const
Returns the function responsible for allocating and initializing a new cell.
Definition: gmpGemaCellMesh.h:67
An auxiliary class that can be used as a base class for GmpMeshBase so that a GmCellMesh instance can...
Definition: gmpCellMeshBase.h:41
Auxiliary class implementing an accessor for mesh coordinate values.
Definition: gmpGemaMeshCoordAccessor.h:76
static void pushObject(lua_State *L, Base *obj)
A mesh that supports Element data, parameterized by the vector type (either GmSingleVector or GmDualV...
Definition: gmpGemaCellMesh.h:89
Declaration of the GmpGemaCell class.
Auxiliar structure used to share data between GmpGemaMesh and GmpMeshLoader.
Definition: gmpGemaMeshData.h:31
GmpGemaElementMeshBase< GmSingleVector > GmpGemaElementMesh
Typedef for a mesh that supports element data using a GmSingleVector for storing node / cell data.
Definition: gmpGemaCellMesh.h:144
GmpGemaCellMeshBase< GmDualVector > GmpGemaCellMeshD
Typedef for a mesh that supports cell data using a GmDualVector for storing node / cell data.
Definition: gmpGemaCellMesh.h:84