Public Member Functions | |
splitter (FEM_Mesh *mesh_, const int *elem2chunk_, int nChunks_) | |
~splitter () | |
void | buildCommLists (void) |
void | addGhosts (const FEM_Partition &partition) |
void | separateSparse (bool forGhost) |
void | aboutToCreate (void) |
FEM_Mesh * | createMesh (int c) |
void | consistencyCheck (void) |
splitter (FEM_Mesh *mesh_, const int *elem2chunk_, int nChunks_) | |
~splitter () | |
void | buildCommLists (void) |
void | addGhosts (const FEM_Partition &partition) |
void | separateSparse (bool forGhost) |
void | aboutToCreate (void) |
FEM_Mesh * | createMesh (int c) |
void | consistencyCheck (void) |
Private Member Functions | |
void | renumberNodesLocal (int row, BasicTable2d< int > &table, int chunk, FEM_Symmetries_t sym) |
Renumber the global node numbers in this row of this table to be local to this chunk, with these symmetries. | |
void | copySparse (const FEM_Sparse &src, int s, int chunk, FEM_Symmetries_t sym) |
Copy the global sparse record src[s] into this chunk with these symmetries:. | |
void | copySparseChunks (const FEM_Sparse &src, int s, bool forGhost) |
Copy the global sparse record src[s] into all the chunks it belongs in. | |
void | addStencil (const FEM_Ghost_Stencil &s, const FEM_Partition &partition) |
Add a ghost stencil: an explicit list of needed ghosts. | |
void | addLayer (const FEM_Ghost_Layer &g, const FEM_Partition &partition) |
Add an entire layer of ghost elements. | |
bool | hasGhostNodes (const int *conn, int nodesPer) |
Return true if any of these global nodes are ghost nodes. | |
bool | addTuple (int *dest, FEM_Symmetries_t *destSym, const int *elem2tuple, int nodesPerTuple, const int *conn) const |
Return an elemList entry if this tuple should be a ghost:. | |
void | addSymmetryGhost (const elemList &a) |
Add this ghost, which arrises because of a mirror symmetry condition. | |
void | addGlobalGhost (int srcType, int srcNum, int destType, int destNum, bool addNodes) |
Add the real element (srcType,srcNum) as a ghost for use by (destType,destNum). | |
void | addGhostPair (const elemList &src, const elemList &dest, bool addNodes) |
Check if src should be added as a ghost on dest's chunk. | |
int | addGhostElement (int t, int gNo, int srcChunk, int destChunk, FEM_Symmetries_t sym) |
Add this global element as a ghost between src and dest, or return -1. | |
int | addGhostNode (int gnNo, int srcChunk, int destChunk, FEM_Symmetries_t sym) |
Add this global node as a ghost between src and dest, or return -1. | |
int | addGhostInner (const FEM_Entity &gEnt, int gNo, chunkList &gDest, int srcChunk, FEM_Entity &srcEnt, int destChunk, FEM_Entity &destEnt, FEM_Symmetries_t sym, int isNode, int t) |
Utility used by addGhostNode and addGhostElement. | |
void | addElemElems (const FEM_Partition &partition) |
isaac's element to element adjacency creation | |
void | buildElemElemData (const FEM_ElemAdj_Layer &g, const FEM_Partition &partition) |
void | bad (const char *why) |
void | equal (int is, int should, const char *what) |
void | range (int value, int lo, int hi, const char *what) |
void | nonnegative (int value, const char *what) |
void | renumberNodesLocal (int row, BasicTable2d< int > &table, int chunk, FEM_Symmetries_t sym) |
Renumber the global node numbers in this row of this table to be local to this chunk, with these symmetries. | |
void | copySparse (const FEM_Sparse &src, int s, int chunk, FEM_Symmetries_t sym) |
Copy the global sparse record src[s] into this chunk with these symmetries:. | |
void | copySparseChunks (const FEM_Sparse &src, int s, bool forGhost) |
Copy the global sparse record src[s] into all the chunks it belongs in. | |
void | addStencil (const FEM_Ghost_Stencil &s, const FEM_Partition &partition) |
Add a ghost stencil: an explicit list of needed ghosts. | |
void | addLayer (const FEM_Ghost_Layer &g, const FEM_Partition &partition) |
Add an entire layer of ghost elements. | |
bool | hasGhostNodes (const int *conn, int nodesPer) |
Return true if any of these global nodes are ghost nodes. | |
bool | addTuple (int *dest, FEM_Symmetries_t *destSym, const int *elem2tuple, int nodesPerTuple, const int *conn) const |
Return an elemList entry if this tuple should be a ghost:. | |
void | addSymmetryGhost (const elemList &a) |
Add this ghost, which arrises because of a mirror symmetry condition. | |
void | addGlobalGhost (int srcType, int srcNum, int destType, int destNum, bool addNodes) |
Add the real element (srcType,srcNum) as a ghost for use by (destType,destNum). | |
void | addGhostPair (const elemList &src, const elemList &dest, bool addNodes) |
Check if src should be added as a ghost on dest's chunk. | |
int | addGhostElement (int t, int gNo, int srcChunk, int destChunk, FEM_Symmetries_t sym) |
Add this global element as a ghost between src and dest, or return -1. | |
int | addGhostNode (int gnNo, int srcChunk, int destChunk, FEM_Symmetries_t sym) |
Add this global node as a ghost between src and dest, or return -1. | |
int | addGhostInner (const FEM_Entity &gEnt, int gNo, chunkList &gDest, int srcChunk, FEM_Entity &srcEnt, int destChunk, FEM_Entity &destEnt, FEM_Symmetries_t sym, int isNode, int t) |
Utility used by addGhostNode and addGhostElement. | |
void | addElemElems (const FEM_Partition &partition) |
isaac's element to element adjacency creation | |
void | buildElemElemData (const FEM_ElemAdj_Layer &g, const FEM_Partition &partition) |
void | bad (const char *why) |
void | equal (int is, int should, const char *what) |
void | range (int value, int lo, int hi, const char *what) |
void | nonnegative (int value, const char *what) |
Private Attributes | |
FEM_Mesh * | mesh |
const int * | elem2chunk |
int | nChunks |
FEM_Mesh ** | chunks |
chunkList * | gNode |
CkVec< chunkList * > | gElem |
dynChunk * | dyn |
FEM_Sparse ** | sparseDest |
unsigned char * | ghostNode |
const int * | canon |
const FEM_Symmetries_t * | sym |
int | curGhostLayerNo |
int | totGhostElem |
int | totGhostNode |
FEM_Mesh * | mesh |
const int * | elem2chunk |
FEM_Mesh ** | chunks |
chunkList * | gNode |
CkVec< chunkList * > | gElem |
dynChunk * | dyn |
FEM_Sparse ** | sparseDest |
unsigned char * | ghostNode |
const int * | canon |
const FEM_Symmetries_t * | sym |
It build communication lists, ghosts, etc. and copies mesh data.
Definition at line 138 of file map.C.
splitter::~splitter | ( | ) |
void splitter::renumberNodesLocal | ( | int | row, | |
BasicTable2d< int > & | table, | |||
int | chunk, | |||
FEM_Symmetries_t | sym | |||
) | [inline, private] |
Renumber the global node numbers in this row of this table to be local to this chunk, with these symmetries.
Definition at line 155 of file map.C.
References BasicTable2d< T >::getRow(), and BasicTable2d< T >::width().
Referenced by createMesh().
void splitter::copySparse | ( | const FEM_Sparse & | src, | |
int | s, | |||
int | chunk, | |||
FEM_Symmetries_t | sym | |||
) | [inline, private] |
Return true if any of these global nodes are ghost nodes.
Definition at line 198 of file map.C.
Referenced by addLayer().
void splitter::addElemElems | ( | const FEM_Partition & | partition | ) | [private] |
void splitter::buildElemElemData | ( | const FEM_ElemAdj_Layer & | g, | |
const FEM_Partition & | partition | |||
) | [private] |
Definition at line 240 of file map.C.
References bad().
Referenced by consistencyCheck().
Definition at line 247 of file map.C.
References bad().
Referenced by consistencyCheck().
void splitter::nonnegative | ( | int | value, | |
const char * | what | |||
) | [inline, private] |
void splitter::renumberNodesLocal | ( | int | row, | |
BasicTable2d< int > & | table, | |||
int | chunk, | |||
FEM_Symmetries_t | sym | |||
) | [inline, private] |
Renumber the global node numbers in this row of this table to be local to this chunk, with these symmetries.
Definition at line 162 of file map.C.
References BasicTable2d< T >::getRow(), and BasicTable2d< T >::width().
void splitter::copySparse | ( | const FEM_Sparse & | src, | |
int | s, | |||
int | chunk, | |||
FEM_Symmetries_t | sym | |||
) | [inline, private] |
Copy the global sparse record src[s] into all the chunks it belongs in.
void splitter::addStencil | ( | const FEM_Ghost_Stencil & | s, | |
const FEM_Partition & | partition | |||
) | [private] |
Add a ghost stencil: an explicit list of needed ghosts.
void splitter::addLayer | ( | const FEM_Ghost_Layer & | g, | |
const FEM_Partition & | partition | |||
) | [private] |
Add an entire layer of ghost elements.
bool splitter::addTuple | ( | int * | dest, | |
FEM_Symmetries_t * | destSym, | |||
const int * | elem2tuple, | |||
int | nodesPerTuple, | |||
const int * | conn | |||
) | const [private] |
Return an elemList entry if this tuple should be a ghost:.
void splitter::addSymmetryGhost | ( | const elemList & | a | ) | [private] |
Add this ghost, which arrises because of a mirror symmetry condition.
void splitter::addGlobalGhost | ( | int | srcType, | |
int | srcNum, | |||
int | destType, | |||
int | destNum, | |||
bool | addNodes | |||
) | [private] |
Add the real element (srcType,srcNum) as a ghost for use by (destType,destNum).
void splitter::addGhostPair | ( | const elemList & | src, | |
const elemList & | dest, | |||
bool | addNodes | |||
) | [private] |
Check if src should be added as a ghost on dest's chunk.
Calls addGhostElement and addGhostNode.
int splitter::addGhostElement | ( | int | t, | |
int | gNo, | |||
int | srcChunk, | |||
int | destChunk, | |||
FEM_Symmetries_t | sym | |||
) | [private] |
Add this global element as a ghost between src and dest, or return -1.
int splitter::addGhostNode | ( | int | gnNo, | |
int | srcChunk, | |||
int | destChunk, | |||
FEM_Symmetries_t | sym | |||
) | [private] |
Add this global node as a ghost between src and dest, or return -1.
int splitter::addGhostInner | ( | const FEM_Entity & | gEnt, | |
int | gNo, | |||
chunkList & | gDest, | |||
int | srcChunk, | |||
FEM_Entity & | srcEnt, | |||
int | destChunk, | |||
FEM_Entity & | destEnt, | |||
FEM_Symmetries_t | sym, | |||
int | isNode, | |||
int | t | |||
) | [private] |
Utility used by addGhostNode and addGhostElement.
void splitter::addElemElems | ( | const FEM_Partition & | partition | ) | [private] |
void splitter::buildElemElemData | ( | const FEM_ElemAdj_Layer & | g, | |
const FEM_Partition & | partition | |||
) | [private] |
void splitter::nonnegative | ( | int | value, | |
const char * | what | |||
) | [inline, private] |
void splitter::buildCommLists | ( | void | ) |
void splitter::addGhosts | ( | const FEM_Partition & | partition | ) |
void splitter::separateSparse | ( | bool | forGhost | ) |
void splitter::aboutToCreate | ( | void | ) |
void splitter::consistencyCheck | ( | void | ) |
FEM_Mesh* splitter::mesh [private] |
Definition at line 140 of file map.C.
Referenced by aboutToCreate(), addGhostElement(), addGhostNode(), addGhostPair(), addGhosts(), addLayer(), addStencil(), buildCommLists(), consistencyCheck(), copySparseChunks(), createMesh(), separateSparse(), splitter(), and ~splitter().
const int* splitter::elem2chunk [private] |
Definition at line 141 of file map.C.
Referenced by buildCommLists(), copySparseChunks(), and FEM_Mesh_split().
int splitter::nChunks [private] |
Definition at line 142 of file map.C.
Referenced by consistencyCheck(), separateSparse(), splitter(), and ~splitter().
FEM_Mesh** splitter::chunks [private] |
Definition at line 144 of file map.C.
Referenced by addGhostElement(), addGhostInner(), addGhostNode(), addGhostPair(), buildCommLists(), createMesh(), separateSparse(), splitter(), and ~splitter().
chunkList* splitter::gNode [private] |
Definition at line 147 of file map.C.
Referenced by addGhostNode(), addGhostPair(), addGhosts(), buildCommLists(), consistencyCheck(), copySparseChunks(), createMesh(), splitter(), and ~splitter().
CkVec<chunkList *> splitter::gElem [private] |
Definition at line 148 of file map.C.
Referenced by aboutToCreate(), addGhostElement(), addGlobalGhost(), addLayer(), buildCommLists(), consistencyCheck(), copySparseChunks(), splitter(), and ~splitter().
dynChunk* splitter::dyn [private] |
Definition at line 149 of file map.C.
Referenced by addGhostPair(), buildCommLists(), consistencyCheck(), createMesh(), splitter(), and ~splitter().
FEM_Sparse** splitter::sparseDest [private] |
unsigned char* splitter::ghostNode [private] |
Definition at line 185 of file map.C.
Referenced by addGhostPair(), addGhosts(), addTuple(), and splitter().
const int* splitter::canon [private] |
Definition at line 186 of file map.C.
Referenced by addGhostPair(), addGhosts(), addTuple(), and splitter().
const FEM_Symmetries_t* splitter::sym [private] |
Definition at line 187 of file map.C.
Referenced by addGhosts(), addTuple(), consistencyCheck(), and copySparseChunks().
int splitter::curGhostLayerNo [private] |
Definition at line 188 of file map.C.
Referenced by addGhostInner(), addGhosts(), and addGlobalGhost().
int splitter::totGhostElem [private] |
int splitter::totGhostNode [private] |
FEM_Mesh* splitter::mesh [private] |
const int* splitter::elem2chunk [private] |
FEM_Mesh** splitter::chunks [private] |
chunkList* splitter::gNode [private] |
CkVec<chunkList *> splitter::gElem [private] |
dynChunk* splitter::dyn [private] |
FEM_Sparse** splitter::sparseDest [private] |
unsigned char* splitter::ghostNode [private] |
const int* splitter::canon [private] |
const FEM_Symmetries_t* splitter::sym [private] |