GemaMesh
The GeMA Mesh Plugin
Public Member Functions | Public Attributes | Private Member Functions | List of all members
GmpGemaCellMeshData< Vector > Struct Template Reference

Auxiliar structure used to share data between GmpGemaCellMesh and GmpMeshLoader. More...

#include <gmpGemaCellMeshData.h>

Inheritance diagram for GmpGemaCellMeshData< Vector >:
Inheritance graph
[legend]
Collaboration diagram for GmpGemaCellMeshData< Vector >:
Collaboration graph
[legend]

Public Member Functions

 GmpGemaCellMeshData (GmCellMesh *mesh)
 Constructor.
 
virtual ~GmpGemaCellMeshData ()
 Virtual destructor.
 
virtual Vector< int > * cellNodesVector ()
 
virtual void updateCellNodeOffset (GmCell *c, int offset)
 
virtual void releaseMemory (bool clearBoundaryData=true)
 Releases all the memory DIRECTLY owned by the object.
 
int * cellNodesPtr (int offset)
 Returns a pointer to vector region where the node indices for the given cell are stored.
 
virtual size_t cellMemory () const
 Returns the approximate memory used for storing mesh cells.
 
virtual bool addStateGeometryData (GmSimulationData *simData, GmMesh *mesh, GmpMeshLoaderCellAllocator alloc, GmStateDump *state, int groupId)
 Add to the state dump item the vectors storing cell node information.
 
- Public Member Functions inherited from GmpCellMeshData< Vector >
 GmpCellMeshData (GmCellMesh *mesh)
 Constructor.
 
virtual ~GmpCellMeshData ()
 Virtual destructor.
 
int * cellPropertiesPtr (int cellId)
 Returns a pointer to vector region where the property indices for the given cell are stored. Assumes that there are property sets associated with the mesh!
 
virtual int addCells (GmCellMesh *mesh, int *addedCellsByType, GmpMeshLoaderCellAllocator alloc, QList< GmValueInfo * > infoList=QList< GmValueInfo * >())
 
virtual int addCellGroup (QString groupName)
 Add a new cell group.
 
virtual bool addCellsToGroup (int groupId, const QVector< int > &cellIds)
 Add cells to the given cell group. Assumes no intersection with existing group content.
 
virtual bool addCellsToGroup (int groupId, const QVector< QPair< int, int >> &cellIds)
 Add cells to the given cell group from cell ranges. Assumes no intersection with existing group content.
 
virtual void clear (GmCellMesh *mesh)
 Removes all mesh cells + removes all values from cell based value sets, preserving object state so that future cell addition can be made. More...
 
void increaseNumCells (int nCells)
 
size_t cellGroupsMemory () const
 Returns the approximate memory used for storing cell groups.
 
size_t cellBoundariesMemory () const
 Returns the approximate memory used for storing cell boundaries.
 
void setGhostEnabled (bool state)
 
bool resizeValueSets (const QList< GmValueSet * > &valueSets, int numAddedCells)
 Resizes the given value sets, adding to them the specified number of cells.
 
bool resizeGaussValueSets (GmElementMesh *emesh, int *addedCellsByType)
 Resizes the mesh Gauss attributes + Gauss indices, adding to them the specified number of cells per type.
 
bool buildTopologyStructure (GmCellMesh *mesh)
 Builds the necessary topological structure to allow for topological queries to be performed.
 
virtual bool fillDumpControlMapData (GmMesh *mesh, QVariantMap *map, const GmLogCategory &logger)
 Stores the cell mesh data control info on the stored map.
 
virtual bool dumpControlMapDataLoaded (GmMesh *mesh, QVariantMap *map, const GmLogCategory &logger)
 Loads the map data into the object + adjusts vector sizes for later readings if necessary.
 
bool fillAuxCellBuffers (int *cellSavedData, int *baseCellType, GmMesh *mesh, const GmLogCategory &logger)
 Fills the set of auxiliar buffers needed when dumping the mesh to save cell types+active info and/or ghost nodes. Checks if the buffers are needed and, if affirmative, fills them. The cellSaved data is filled with 0 if no buffer is needed, 1 for type+active needed, 2 for ghost info needed and 3 for type+active+ghost needed. The baseCellType is filled with the single mesh cell type if the types+active vector is not needed or with -1 otherwise.
 
bool auxCellBuffersLoaded (GmSimulationData *simData, GmMesh *mesh, GmpMeshLoaderCellAllocator alloc, const GmLogCategory &logger)
 Method called just after the aux cell buffers has been loaded. Responsible for rebuilding the cell vector.
 
virtual void releaseDumpMemory ()
 Releases the memory used by dump buffers.
 
- Public Member Functions inherited from GmpCellMeshDataBase
 GmpCellMeshDataBase (GmCellMesh *mesh)
 Constructor.
 
virtual ~GmpCellMeshDataBase ()
 Virtual destructor.
 
bool hierarchicalElements () const
 Returns true if the mesh uses hierarchical elements, false otherwise.
 

Public Attributes

Vector< int > _cellNodeIndices
 The list of cell nodes storing, in order, the set of all cell nodes. Its size is equal to the sum of the products of the number of cells of each type present in the mesh times the number of nodes of each type. The offset stored per cell gives the starting index in this list for the nodes of that cell.
 
- Public Attributes inherited from GmpCellMeshData< Vector >
int _numCells
 The total number of cells.
 
int _numActiveCells
 The total number of active cells in the mesh.
 
Vector< GmCell * > _cells
 The cell vector (size equal to _numCells)
 
int _cellsByType [GM_NUM_CELL_TYPES]
 A vector storing the number of cells per cell type.
 
int _activeCellsByType [GM_NUM_CELL_TYPES]
 A vector storing the number of active cells per cell type.
 
bool _singleCellType
 If set to true, the mesh has only one cell type and other types can NOT be added to it.
 
int _maxNumNodes
 The maximum number of nodes among mesh cell types in use by the mesh.
 
bool _ghostEnabled
 Can the cells store ghost nodes? (_maxNumGhostNodes can be zero if the mesh supports ghost nodes but includes none)
 
int _maxNumGhostNodes
 The maximum number of ghost nodes among mesh cells.
 
int _maxTotalNumNodes
 The maximum number of nodes (common + ghost) among mesh cells.
 
QStringList _cellGroupIds
 A list with available cell group names.
 
QList< int > _numCellsInGroup
 A list with the number of cells in each cell group. Its size should be equal to _cellGroupIds.size()
 
QList< int * > _cellGroupCells
 A list with a vector of cell Ids for each cell group. Its size should be equal to _cellGroupIds.size()
 
QMap< QString, GmCellBoundary * > _boundaryGroups
 A map with the definition of each boundary group associated with the mesh. Map entries are instances of the GmpGemaCellBoundary class.
 
QList< GmPropertySet * > _propertySets
 The list of property sets "indexed" by every cell. The order of property sets in this list is the same as the one used in calls to GmCell::propertyIndex()
 
Vector< int > _cellPropertyIndices
 A vector with size equal to _numCells * _propertySets.size() continuously storing the cell's property indices.
 
bool _buildEdgeMap
 The topology structure, if already built.
 
UibhmTopologyBase_topology
 
GmCellMeshTopology_topoQuery
 
unsigned char * _cellDumpTypeActiveData
 A vector storing temporary cell types + active data when needed for dumping code. If different from NULL, its size is equal to _numCells. The active info is stored at the most significant bit of each byte (set to 1 if the cell is active).
 
int _cellDumpTypeActiveDataSize
 The size of the vector _cellDumpTypeActiveData. Needed since _numCells is not zero when the vector is NULL.
 
int * _cellDumpGhostData
 A vector storing temporary information about ghost nodes when needed for dumping code. If different from NULL, it stores _numCells entries with the number of ghost nodes of each cell, followed by the set of ghost nodes of each one.
 
int _cellDumpGhostDataSize
 The size of the vector _cellDumpGhostData.
 
QVariantMap * _cellDumpLoadedMap
 The map with loaded control data. Filled (different from NULL) only during the load process.
 
GmStateDump_state
 
- Public Attributes inherited from GmpCellMeshDataBase
int _meshId
 Stores the mesh index in _meshTable for the current mesh.
 
int _hierarchicalIndex
 The hierarchical order index in _hTable if this mesh has hierarchical elements or -1 if elements are not hierarchical.
 

Private Member Functions

void releaseOwnMemory ()
 Releases memory owned directly by this class, without releasing memory owned by the base class.
 

Additional Inherited Members

- Static Public Member Functions inherited from GmpCellMeshDataBase
static int hierarchicalOrderIndex (int P, int Q)
 Returns the table index that matches the given hierarchical element P & Q orders or -1 if (P, Q) forms a new order and the internal table already includes GmpCellMeshDataMaxHTypes entries. More...
 
static int hierarchicalPOrder (int index)
 Returns the P order for hierarchical elements associated with the given index (returned by hierarchicalOrderIndex()), or 0 if elements are not hierarchical.
 
static int hierarchicalQOrder (int index)
 Returns the Q order for hierarchical elements associated with the given index (returned by hierarchicalOrderIndex()), or 0 if elements are not hierarchical.
 
static int newMeshId (GmCellMesh *mesh, GmpCellMeshDataBase *data)
 Returns the next available mesh id, storing mesh in the mesh table at the returned index. If no room exists for a new mesh, returns -1.
 
static GmCellMeshmesh (int meshId)
 Returns the mesh pointer associated with the given mesh id.
 
static GmpCellMeshDataBasemeshData (int meshId)
 Returns the mesh data pointer associated with the given mesh id.
 
- Static Public Attributes inherited from GmpCellMeshDataBase
static const int maxHTypes = GmpCellMeshDataMaxHTypes
 
- Static Protected Attributes inherited from GmpCellMeshDataBase
static QPair< int, int > _hTable [GmpCellMeshDataMaxHTypes]
 Table storing the set of used orders for hierarchical elements.
 
static int _hTableNumUsedSlots = 0
 The number of used entries in _hTable. More...
 
static GmCellMesh_meshTable [GMP_GEMAMESH_MAX_NUM_MESHES]
 Table storing the set of created cell meshes. More...
 
static GmpCellMeshDataBase_meshDataTable [GMP_GEMAMESH_MAX_NUM_MESHES]
 Table storing the set of created cell mesh data objects.
 

Detailed Description

template<template< class > class Vector>
struct GmpGemaCellMeshData< Vector >

Auxiliar structure used to share data between GmpGemaCellMesh and GmpMeshLoader.


The documentation for this struct was generated from the following file: