PPL Logo

libs/ck-libs/ParFUM/adapt_adj.C File Reference

Go to the source code of this file.

Functions

void addSharedNodeData (int node, const IDXL_Rec *sharedChunkList, adjNode *adaptAdjTable)
void addElementNodeSetData (const int elem, const int *conn, const int nodesPerElem, const int numFaces, const int numEdges, const int faceSize, const int faceMap[MAX_ADJELEMS][MAX_FACE_SIZE], const int edgeMap[MAX_EDGES][2], adjNode *faceTable, adjNode *edgeTable)
adjElemsearchAdjElemInList (adjElem *adjStart, int *searchForNodeSet, int nodeSetSize, int searchForElemID, int *found)
void CreateAdaptAdjacencies (int meshid, int elemType)
 Create Adaptivity Adjacencies for elemType; dimension inferred.
void fillLocalAdaptAdjacencies (const int numNodes, FEM_Node *node, adjNode *faceTable, adjNode *edgeTable, const int faceMapSize, const int edgeMapSize, adaptAdj *adaptFaceAdjacencies, CkVec< adaptAdj > **adaptEdgeAdjacencies, const int myRank, const int elemType)
void makeAdjacencyRequests (const int numNodes, FEM_Node *node, adjNode *adaptAdjTable, MSA1DREQLIST::Accum &requestTable, const int nodeSetSize, const int myRank, const int elemType)
void replyAdjacencyRequests (CkVec< adjRequest > *receivedRequestVec, MSA1DREPLYLIST::Accum &replyTable, FEM_Node *node, adjNode *adaptAdjTable, adaptAdj *adaptFaceAdjacencies, CkVec< adaptAdj > **adaptEdgeAdjacencies, const int nodeSetSize, const int numAdjElems, const int myRank, const int elemType, bool isEdgeRequest)
void findNodeSet (int meshid, int elemType, int *faceSize, int *faceMapSize, int *edgeMapSize, int nodeSetMap[MAX_ADJELEMS][MAX_NODESET_SIZE], int edgeMap[MAX_EDGES][2])
void getAndDumpAdaptAdjacencies (const int meshid, const int numElems, const int elemType, const int myRank)
adaptAdjlookupAdaptAdjacencies (const FEM_Mesh *const mesh, const int elemType, int *numAdjacencies)
adaptAdjlookupAdaptAdjacencies (const int meshid, const int elemType, int *numAdjacencies)
CkVec< adaptAdj > ** lookupEdgeAdaptAdjacencies (const FEM_Mesh *const mesh, const int elemType, int *numAdjacencies)
CkVec< adaptAdj > ** lookupEdgeAdaptAdjacencies (const int meshID, const int elemType, int *numAdjacencies)
adaptAdjgetAdaptAdj (const int meshID, const int localID, const int elemType, const int faceID)
 Look up elemID in elemType array, access edgeFaceID-th adaptAdj.
adaptAdjgetAdaptAdj (const FEM_Mesh *const meshPtr, const int localID, const int elemType, const int faceID)
CkVec< adaptAdj > * getEdgeAdaptAdj (const int meshID, const int localID, const int elemType, const int edgeID)
CkVec< adaptAdj > * getEdgeAdaptAdj (const FEM_Mesh *const meshPtr, const int localID, const int elemType, const int edgeID)
adaptAdjgetAdaptAdj (const int meshID, const int localID, const int elemType, const int *const vertexList)
 Look up elemID in elemType array, calculate edgeFaceID from vertexList (with GetEdgeFace below), and access edgeFaceID-th adaptAdj with GetAdaptAdj above.
CkVec< adaptAdj > * getEdgeAdaptAdj (const int meshID, const int localID, const int elemType, const int *const vertexList)
adaptAdjgetFaceAdaptAdj (const int meshID, const int localID, const int elemType, const int *const vertexList)
adaptAdjgetFaceAdaptAdj (const int meshID, const int localID, const int elemType, const int faceID)
adaptAdjgetFaceAdaptAdj (const FEM_Mesh *const meshPtr, const int localID, const int elemType, const int faceID)
void clearEdgeAdjacency (const FEM_Mesh *const meshPtr, const int localID, const int elemType, const int edgeID)
 Remove all neighbors on the specified edge.
void clearEdgeAdjacency (const int meshID, const int localID, const int elemType, const int edgeID)
void addEdgeAdjacency (const FEM_Mesh *const meshPtr, const int localID, const int elemType, const int edgeID, const adaptAdj adj)
 Add a new adjacency on the specified edge.
void addEdgeAdjacency (const int meshID, const int localID, const int elemType, const int edgeID, const adaptAdj adj)
int getElemFace (const int meshID, const int type, const int *vertexList)
 Look up elemID in elemType array and determine the edge or face ID specified by the set of vertices in vertexList.
int getElemEdge (const int meshID, const int type, const int *vertexList)
void setAdaptAdj (const int meshID, const adaptAdj elem, const int faceID, const adaptAdj nbr)
 Look up elemID in elemType array and set the adjacency on edgeFaceID to nbr.
void setAdaptAdj (const FEM_Mesh *meshPtr, const adaptAdj elem, const int faceID, const adaptAdj nbr)
void addToAdaptAdj (const int meshid, const adaptAdj elem, const int edgeID, const adaptAdj nbr)
 3D: Look up elemID in elemType array and add nbr to the adjacency on edgeID.
void addToAdaptAdj (const FEM_Mesh *meshPtr, const adaptAdj elem, const int edgeID, const adaptAdj nbr)
void removeFromAdaptAdj (const int meshid, const adaptAdj elem, const int edgeID, const adaptAdj nbr)
 3D: Look up elemID in elemType array and remove nbr from the adjacency on edgeID.
void copyAdaptAdj (const int meshid, const adaptAdj *const srcElem, const adaptAdj *const destElem)
 Copy adjacency information for one element to another.
void copyAdaptAdj (const FEM_Mesh *const meshPtr, const adaptAdj *const srcElem, const adaptAdj *const destElem)
void copyEdgeAdaptAdj (const int meshid, const adaptAdj *const srcElem, const adaptAdj *const destElem)
void copyEdgeAdaptAdj (const FEM_Mesh *const meshPtr, const adaptAdj *const srcElem, const adaptAdj *const destElem)
void replaceAdaptAdj (const FEM_Mesh *const meshPtr, const adaptAdj elem, const adaptAdj originalNbr, const adaptAdj newNbr)
 Lookup elemID in elemType array and search for the face which has originalNbr as a neighbor, then replace originalNbr with newNbr.
void replaceAdaptAdj (const int meshID, const adaptAdj elem, const adaptAdj originalNbr, const adaptAdj newNbr)
 Substitute an old neighbor with a new neighbor, assumes 2D or 3D-face neighbor.
void replaceAdaptAdjOnEdge (const FEM_Mesh *const meshPtr, const adaptAdj elem, const adaptAdj originalNbr, const adaptAdj newNbr, const int edgeID)
void replaceAdaptAdjOnEdge (const int meshID, const adaptAdj elem, const adaptAdj originalNbr, const adaptAdj newNbr, const int edgeID)
 3D edge neighbors: Substitution operation needs to know edgeID to reduce search space.
void guessElementShape (const int dim, const int nodesPerElem, int *faceSize, int *faceMapSize, int *edgeMapSize, int faceMap[MAX_ADJELEMS][MAX_FACE_SIZE], int edgeMap[MAX_EDGES][2])
 Given the dimensions and nodes per element guess whether the element is a triangle, quad, tet or hex.

Variables

const int faceMap2d_tri [3][2] = {{0,1},{1,2},{2,0}}
const int faceMap2d_quad [4][2] = {{0,1},{1,2},{2,3},{3,0}}
const int faceMap3d_tet [4][3] = {{0,1,2},{0,3,1},{0,2,3},{1,3,2}}
const int faceMap3d_hex [6][4] = {{0,1,2,3},{1,5,6,2},{2,6,7,3},{3,7,4,0},{0,4,5,1},{5,4,6,7}}
const int edgeMap3d_tet [6][2] = {{0,1},{0,2},{0,3},{1,2},{1,3},{2,3}}
const int edgeMap3d_hex [12][2] = {{0,1},{0,3},{0,4},{1,2},{1,5},{2,3},{2,6},{3,7},{4,5},{4,7},{5,6},{6,7}}
const int faceMap2d_cohquad [2][2] = {{0,1},{2,3}}
const int faceMap3d_cohprism [2][3] = {{0,1,2},{3,4,5}}


Function Documentation

void addSharedNodeData ( int  node,
const IDXL_Rec *  sharedChunkList,
adjNode adaptAdjTable 
) [inline]

void addElementNodeSetData ( const int  elem,
const int conn,
const int  nodesPerElem,
const int  numFaces,
const int  numEdges,
const int  faceSize,
const int  faceMap[MAX_ADJELEMS][MAX_FACE_SIZE],
const int  edgeMap[MAX_EDGES][2],
adjNode faceTable,
adjNode edgeTable 
) [inline]

adjElem* searchAdjElemInList ( adjElem adjStart,
int searchForNodeSet,
int  nodeSetSize,
int  searchForElemID,
int found 
) [inline]

void CreateAdaptAdjacencies ( int  meshid,
int  elemType 
)

void fillLocalAdaptAdjacencies ( const int  numNodes,
FEM_Node node,
adjNode faceTable,
adjNode edgeTable,
const int  faceMapSize,
const int  edgeMapSize,
adaptAdj adaptFaceAdjacencies,
CkVec< adaptAdj > **  adaptEdgeAdjacencies,
const int  myRank,
const int  elemType 
)

void makeAdjacencyRequests ( const int  numNodes,
FEM_Node node,
adjNode adaptAdjTable,
MSA1DREQLIST::Accum requestTable,
const int  nodeSetSize,
const int  myRank,
const int  elemType 
)

void replyAdjacencyRequests ( CkVec< adjRequest > *  receivedRequestVec,
MSA1DREPLYLIST::Accum replyTable,
FEM_Node node,
adjNode adaptAdjTable,
adaptAdj adaptFaceAdjacencies,
CkVec< adaptAdj > **  adaptEdgeAdjacencies,
const int  nodeSetSize,
const int  numAdjElems,
const int  myRank,
const int  elemType,
bool  isEdgeRequest 
)

void findNodeSet ( int  meshid,
int  elemType,
int faceSize,
int faceMapSize,
int edgeMapSize,
int  nodeSetMap[MAX_ADJELEMS][MAX_NODESET_SIZE],
int  edgeMap[MAX_EDGES][2] 
) [inline]

void getAndDumpAdaptAdjacencies ( const int  meshid,
const int  numElems,
const int  elemType,
const int  myRank 
)

adaptAdj* lookupAdaptAdjacencies ( const FEM_Mesh *const   mesh,
const int  elemType,
int numAdjacencies 
)

adaptAdj* lookupAdaptAdjacencies ( const int  meshid,
const int  elemType,
int numAdjacencies 
)

Definition at line 911 of file adapt_adj.C.

References FEM_chunk::get(), FEM_chunk::lookup(), lookupAdaptAdjacencies(), and mesh.

CkVec<adaptAdj>** lookupEdgeAdaptAdjacencies ( const FEM_Mesh *const   mesh,
const int  elemType,
int numAdjacencies 
)

CkVec<adaptAdj>** lookupEdgeAdaptAdjacencies ( const int  meshID,
const int  elemType,
int numAdjacencies 
)

Definition at line 936 of file adapt_adj.C.

References FEM_chunk::get(), lookupEdgeAdaptAdjacencies(), and mesh.

adaptAdj* getAdaptAdj ( const int  meshID,
const int  localID,
const int  elemType,
const int  faceID 
)

Look up elemID in elemType array, access edgeFaceID-th adaptAdj.

Definition at line 947 of file adapt_adj.C.

References lookupAdaptAdjacencies().

Referenced by BulkAdapt::edge_bisect_2D(), getAdaptAdj(), getAndDumpAdaptAdjacencies(), getFaceAdaptAdj(), BulkAdapt::one_side_split_2D(), and BulkAdapt::remote_edge_bisect_2D().

adaptAdj* getAdaptAdj ( const FEM_Mesh *const   meshPtr,
const int  localID,
const int  elemType,
const int  faceID 
)

Definition at line 959 of file adapt_adj.C.

References lookupAdaptAdjacencies().

CkVec<adaptAdj>* getEdgeAdaptAdj ( const int  meshID,
const int  localID,
const int  elemType,
const int  edgeID 
)

CkVec<adaptAdj>* getEdgeAdaptAdj ( const FEM_Mesh *const   meshPtr,
const int  localID,
const int  elemType,
const int  edgeID 
)

Definition at line 983 of file adapt_adj.C.

References lookupEdgeAdaptAdjacencies().

adaptAdj* getAdaptAdj ( const int  meshID,
const int  localID,
const int  elemType,
const int *const   vertexList 
)

Look up elemID in elemType array, calculate edgeFaceID from vertexList (with GetEdgeFace below), and access edgeFaceID-th adaptAdj with GetAdaptAdj above.

Definition at line 998 of file adapt_adj.C.

References getAdaptAdj(), and getElemFace().

CkVec<adaptAdj>* getEdgeAdaptAdj ( const int  meshID,
const int  localID,
const int  elemType,
const int *const   vertexList 
)

Definition at line 1008 of file adapt_adj.C.

References getEdgeAdaptAdj(), and getElemEdge().

adaptAdj* getFaceAdaptAdj ( const int  meshID,
const int  localID,
const int  elemType,
const int *const   vertexList 
)

adaptAdj* getFaceAdaptAdj ( const int  meshID,
const int  localID,
const int  elemType,
const int  faceID 
)

Definition at line 1027 of file adapt_adj.C.

References getAdaptAdj().

adaptAdj* getFaceAdaptAdj ( const FEM_Mesh *const   meshPtr,
const int  localID,
const int  elemType,
const int  faceID 
)

Definition at line 1036 of file adapt_adj.C.

References getAdaptAdj().

void clearEdgeAdjacency ( const FEM_Mesh *const   meshPtr,
const int  localID,
const int  elemType,
const int  edgeID 
)

Remove all neighbors on the specified edge.

Definition at line 1047 of file adapt_adj.C.

References getEdgeAdaptAdj().

Referenced by clearEdgeAdjacency(), and BulkAdapt::local_update_asterisk_3D().

void clearEdgeAdjacency ( const int  meshID,
const int  localID,
const int  elemType,
const int  edgeID 
)

Definition at line 1056 of file adapt_adj.C.

References clearEdgeAdjacency(), FEM_chunk::get(), and mesh.

void addEdgeAdjacency ( const FEM_Mesh *const   meshPtr,
const int  localID,
const int  elemType,
const int  edgeID,
const adaptAdj  adj 
)

Add a new adjacency on the specified edge.

Definition at line 1068 of file adapt_adj.C.

References getEdgeAdaptAdj(), and adaptAdj::localID.

Referenced by addEdgeAdjacency(), and BulkAdapt::local_update_asterisk_3D().

void addEdgeAdjacency ( const int  meshID,
const int  localID,
const int  elemType,
const int  edgeID,
const adaptAdj  adj 
)

Definition at line 1079 of file adapt_adj.C.

References addEdgeAdjacency(), FEM_chunk::get(), adaptAdj::localID, and mesh.

int getElemFace ( const int  meshID,
const int  type,
const int vertexList 
)

Look up elemID in elemType array and determine the edge or face ID specified by the set of vertices in vertexList.

Definition at line 1094 of file adapt_adj.C.

References findNodeSet().

Referenced by getAdaptAdj().

int getElemEdge ( const int  meshID,
const int  type,
const int vertexList 
)

Definition at line 1119 of file adapt_adj.C.

References findNodeSet().

Referenced by getEdgeAdaptAdj().

void setAdaptAdj ( const int  meshID,
const adaptAdj  elem,
const int  faceID,
const adaptAdj  nbr 
)

Look up elemID in elemType array and set the adjacency on edgeFaceID to nbr.

2D or 3D (faces): Look up elemID in elemType array and set the adjacency on edgeFaceID to nbr.

Definition at line 1148 of file adapt_adj.C.

References adaptAdj::elemType, adaptAdj::localID, and lookupAdaptAdjacencies().

Referenced by BulkAdapt::update_local_face_adj().

void setAdaptAdj ( const FEM_Mesh meshPtr,
const adaptAdj  elem,
const int  faceID,
const adaptAdj  nbr 
)

Definition at line 1160 of file adapt_adj.C.

References adaptAdj::elemType, adaptAdj::localID, and lookupAdaptAdjacencies().

void addToAdaptAdj ( const int  meshid,
const adaptAdj  elem,
const int  edgeID,
const adaptAdj  nbr 
)

3D: Look up elemID in elemType array and add nbr to the adjacency on edgeID.

Definition at line 1172 of file adapt_adj.C.

References adaptAdj::elemType, getEdgeAdaptAdj(), adaptAdj::localID, and CkVec< T >::push_back().

Referenced by BulkAdapt::remote_edgeAdj_add(), and BulkAdapt::update_local_edge_adj().

void addToAdaptAdj ( const FEM_Mesh meshPtr,
const adaptAdj  elem,
const int  edgeID,
const adaptAdj  nbr 
)

void removeFromAdaptAdj ( const int  meshid,
const adaptAdj  elem,
const int  edgeID,
const adaptAdj  nbr 
)

3D: Look up elemID in elemType array and remove nbr from the adjacency on edgeID.

Definition at line 1196 of file adapt_adj.C.

References adaptAdj::elemType, getEdgeAdaptAdj(), adaptAdj::localID, CkVec< T >::remove(), and CkVec< T >::size().

void copyAdaptAdj ( const int  meshid,
const adaptAdj *const   srcElem,
const adaptAdj *const   destElem 
)

Copy adjacency information for one element to another.

Definition at line 1214 of file adapt_adj.C.

References copyAdaptAdj(), FEM_chunk::get(), and FEM_chunk::lookup().

Referenced by copyAdaptAdj(), and BulkAdapt::update_local_face_adj().

void copyAdaptAdj ( const FEM_Mesh *const   meshPtr,
const adaptAdj *const   srcElem,
const adaptAdj *const   destElem 
)

Definition at line 1225 of file adapt_adj.C.

References adaptAdj::elemType, adaptAdj::localID, and lookupAdaptAdjacencies().

void copyEdgeAdaptAdj ( const int  meshid,
const adaptAdj *const   srcElem,
const adaptAdj *const   destElem 
)

void copyEdgeAdaptAdj ( const FEM_Mesh *const   meshPtr,
const adaptAdj *const   srcElem,
const adaptAdj *const   destElem 
)

Definition at line 1250 of file adapt_adj.C.

References adaptAdj::elemType, adaptAdj::localID, and lookupEdgeAdaptAdjacencies().

void replaceAdaptAdj ( const FEM_Mesh *const   meshPtr,
const adaptAdj  elem,
const adaptAdj  originalNbr,
const adaptAdj  newNbr 
)

Lookup elemID in elemType array and search for the face which has originalNbr as a neighbor, then replace originalNbr with newNbr.

Definition at line 1270 of file adapt_adj.C.

References adaptAdj::elemType, adaptAdj::localID, and lookupAdaptAdjacencies().

Referenced by BulkAdapt::local_update_asterisk_3D(), BulkAdapt::one_side_split_2D(), BulkAdapt::remote_adaptAdj_replace(), replaceAdaptAdj(), and BulkAdapt::update_local_face_adj().

void replaceAdaptAdj ( const int  meshID,
const adaptAdj  elem,
const adaptAdj  originalNbr,
const adaptAdj  newNbr 
)

Substitute an old neighbor with a new neighbor, assumes 2D or 3D-face neighbor.

Definition at line 1289 of file adapt_adj.C.

References FEM_chunk::get(), FEM_chunk::lookup(), and replaceAdaptAdj().

void replaceAdaptAdjOnEdge ( const FEM_Mesh *const   meshPtr,
const adaptAdj  elem,
const adaptAdj  originalNbr,
const adaptAdj  newNbr,
const int  edgeID 
)

void replaceAdaptAdjOnEdge ( const int  meshID,
const adaptAdj  elem,
const adaptAdj  originalNbr,
const adaptAdj  newNbr,
const int  edgeID 
)

3D edge neighbors: Substitution operation needs to know edgeID to reduce search space.

Definition at line 1324 of file adapt_adj.C.

References FEM_chunk::get(), adaptAdj::localID, FEM_chunk::lookup(), and replaceAdaptAdjOnEdge().

void guessElementShape ( const int  dim,
const int  nodesPerElem,
int faceSize,
int faceMapSize,
int edgeMapSize,
int  faceMap[MAX_ADJELEMS][MAX_FACE_SIZE],
int  edgeMap[MAX_EDGES][2] 
)

Given the dimensions and nodes per element guess whether the element is a triangle, quad, tet or hex.

At the moment these are the 4 shapes that are handled

Definition at line 1351 of file adapt_adj.C.

Referenced by CreateAdaptAdjacencies(), and findNodeSet().


Variable Documentation

const int faceMap2d_tri[3][2] = {{0,1},{1,2},{2,0}}

Definition at line 11 of file adapt_adj.C.

Referenced by mesh2graph_face().

const int faceMap2d_quad[4][2] = {{0,1},{1,2},{2,3},{3,0}}

Definition at line 12 of file adapt_adj.C.

const int faceMap3d_tet[4][3] = {{0,1,2},{0,3,1},{0,2,3},{1,3,2}}

Definition at line 13 of file adapt_adj.C.

Referenced by mesh2graph_face().

const int faceMap3d_hex[6][4] = {{0,1,2,3},{1,5,6,2},{2,6,7,3},{3,7,4,0},{0,4,5,1},{5,4,6,7}}

Definition at line 14 of file adapt_adj.C.

Referenced by mesh2graph_face().

const int edgeMap3d_tet[6][2] = {{0,1},{0,2},{0,3},{1,2},{1,3},{2,3}}

Definition at line 16 of file adapt_adj.C.

const int edgeMap3d_hex[12][2] = {{0,1},{0,3},{0,4},{1,2},{1,5},{2,3},{2,6},{3,7},{4,5},{4,7},{5,6},{6,7}}

Definition at line 17 of file adapt_adj.C.

const int faceMap2d_cohquad[2][2] = {{0,1},{2,3}}

Definition at line 19 of file adapt_adj.C.

const int faceMap3d_cohprism[2][3] = {{0,1,2},{3,4,5}}

Definition at line 20 of file adapt_adj.C.


Generated on Wed May 23 08:06:43 2012 for Charm++ by  doxygen 1.5.5