GemaMesh
The GeMA Mesh Plugin
Public Member Functions | Protected Attributes | Friends | List of all members
GmpGhostCellBase< CellBase, Base, Proxy, CellMeshData, T, N, VN > Class Template Reference

Template class used to add ghost node support to template class CellBase. More...

#include <gmpCellBase.h>

Inheritance diagram for GmpGhostCellBase< CellBase, Base, Proxy, CellMeshData, T, N, VN >:
Inheritance graph
[legend]
Collaboration diagram for GmpGhostCellBase< CellBase, Base, Proxy, CellMeshData, T, N, VN >:
Collaboration graph
[legend]

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
 

Detailed Description

template<template< class, class, class, GmCellType, int, int > class CellBase, class Base, class Proxy, class CellMeshData, GmCellType T, int N, int VN>
class GmpGhostCellBase< CellBase, Base, Proxy, CellMeshData, T, N, VN >

Template class used to add ghost node support to template class CellBase.

Member Data Documentation

◆ _ghostList

template<template< class, class, class, GmCellType, int, int > class CellBase, class Base, class Proxy, class CellMeshData, GmCellType T, int N, int VN>
GmPODVector<int, uint32_t, GmPODVectorFastGrow<uint32_t> > GmpGhostCellBase< CellBase, Base, Proxy, CellMeshData, T, N, VN >::_ghostList
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 :(


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