![]() |
GemaMesh
The GeMA Mesh Plugin
|
Template class used to add ghost node support to template class CellBase. More...
#include <gmpCellBase.h>


Public Member Functions | |
| GmpGhostCellBase (GmCellMesh *mesh, int meshId, int id, int offset) | |
| Constructs a cell given its id and associated mesh id. | |
| virtual int | numGhostNodes () const |
| virtual int | addGhostNode (int globalIndex) |
| virtual void | removeGhostNode (int localIndex) |
| virtual int | nodeIndex (int localIndex) const |
| virtual void | nodes (int *nodeList, bool ghost) const |
| virtual void | replaceGhostNodes (int *ghostNodes, int numNodes) |
Protected Attributes | |
| GmPODVector< int, uint32_t, GmPODVectorFastGrow< uint32_t > > | _ghostList |
| List storing cell ghost nodes. Uses a GmPODVector with size control based on a 32 bits value giving a 16 byte structure. (QVarLengthArray also does that but has the fixed part overhead and no overflow check). More... | |
Friends | |
| template<template< class > class Vector> | |
| struct | GmpGemaCellMeshData |
Template class used to add ghost node support to template class CellBase.
|
protected |
List storing cell ghost nodes. Uses a GmPODVector with size control based on a 32 bits value giving a 16 byte structure. (QVarLengthArray also does that but has the fixed part overhead and no overflow check).
IMPORTANT1: Using a 16 bytes control with PODVector does not reduce the structure size to 12 bytes due to the required alignment. IMPORTANT2: We use the fast growing algorithm since the number of ghost nodes per cell tend to be really small. IMPORTANT3: If changing the definition below in ANY way, you will also NEED to change the code in GmpGemaCellMeshData::cellMemory(). The two are HIGHLY coupled. GmpOmCellMeshData::cellMemory() / baseCellMemory() also needs to be changed. This is really UGLY since we are talking about a different plugin, but hard to change without adding bunches of virtual functions :(
1.8.15