PPL Logo

libs/ck-libs/fem/parallel_part.h File Reference

Go to the source code of this file.

Data Structures

class  DefaultListEntry< T, PUP_EVERY_ELEMENT >
class  ElemList< T >
class  NodeElem
class  MeshElem
 This class is an MSA Entity. More...
class  Hashnode
class  Hashnode::tupledata
struct  conndata
struct  partconndata
 Structure to store connectivity data after the global element partition has been returned by parmetis. More...
struct  ghostdata
 structure for storing the ghost layers More...
class  MsaHashtable

Typedefs

typedef MSA2D< int,
DefaultEntry< int >
, MSA_DEFAULT_ENTRIES_PER_PAGE,
MSA_ROW_MAJOR > 
MSA2DRM
typedef MSA1D< int,
DefaultEntry< int >
, MSA_DEFAULT_ENTRIES_PER_PAGE > 
MSA1DINT
typedef ElemList< intIntList
typedef MSA1D< IntList,
DefaultListEntry< IntList,
true >
, MSA_DEFAULT_ENTRIES_PER_PAGE > 
MSA1DINTLIST
typedef ElemList< NodeElemNodeList
typedef MSA1D< NodeList,
DefaultListEntry< NodeList,
true >
, MSA_DEFAULT_ENTRIES_PER_PAGE > 
MSA1DNODELIST
typedef MSA1D< MeshElem,
DefaultEntry< MeshElem, true >, 1 > 
MSA1DFEMMESH
typedef ElemList< HashnodeHashtuple
typedef MSA1D< Hashtuple,
DefaultListEntry< Hashtuple,
true >
, MSA_DEFAULT_ENTRIES_PER_PAGE > 
MSA1DHASH

Functions

template<class T>
ostream & operator<< (ostream &os, const ElemList< T > &s)
template<class T>
CkOutStreamoperator<< (CkOutStream &os, const ElemList< T > &s)
int FEM_master_parallel_part (int, int, FEM_Comm_t)
int FEM_slave_parallel_part (int, int, FEM_Comm_t)
struct partconndataFEM_call_parmetis (struct conndata &data, FEM_Comm_t comm_context)
void FEM_write_nodepart (MSA1DINTLIST &nodepart, struct partconndata *data)
void FEM_write_part2node (MSA1DINTLIST &nodepart, MSA1DNODELIST &part2node, struct partconndata *data, MPI_Comm comm_context)
void FEM_write_part2elem (MSA1DINTLIST &part2elem, struct partconndata *data, MPI_Comm comm_context)
FEM_MeshFEM_break_mesh (FEM_Mesh *m, int numElements, int numChunks)
void sendBrokenMeshes (FEM_Mesh *mesh_array, FEM_Comm_t comm_context)
void FEM_write_part2mesh (MSA1DFEMMESH &part2mesh, struct partconndata *partdata, struct conndata *data, MSA1DINTLIST &nodepart, int numChunks, int myChunk, FEM_Mesh *mypiece)
void addIDXLists (FEM_Mesh *m, NodeList &lnodes, int myChunk)
struct ghostdatagatherGhosts ()
void makeGhosts (FEM_Mesh *m, MPI_Comm comm, int masterRank, int numLayers, FEM_Ghost_Layer **layers)
void makeGhost (FEM_Mesh *m, MPI_Comm comm, int masterRank, int totalShared, FEM_Ghost_Layer *layer, CkHashtableT< CkHashtableAdaptorT< int >, char > &sharedNode, CkHashtableT< CkHashtableAdaptorT< int >, int > &global2local)
bool sharedWith (int lnode, int chunk, FEM_Mesh *m)


Typedef Documentation

typedef MSA2D<int, DefaultEntry<int>, MSA_DEFAULT_ENTRIES_PER_PAGE, MSA_ROW_MAJOR> MSA2DRM

Definition at line 301 of file parallel_part.h.

typedef MSA1D<int, DefaultEntry<int>, MSA_DEFAULT_ENTRIES_PER_PAGE> MSA1DINT

Definition at line 305 of file parallel_part.h.

typedef ElemList<int> IntList

Definition at line 307 of file parallel_part.h.

typedef MSA1D<IntList, DefaultListEntry<IntList,true>,MSA_DEFAULT_ENTRIES_PER_PAGE> MSA1DINTLIST

Definition at line 308 of file parallel_part.h.

Definition at line 310 of file parallel_part.h.

typedef MSA1D<NodeList, DefaultListEntry<NodeList,true>,MSA_DEFAULT_ENTRIES_PER_PAGE> MSA1DNODELIST

Definition at line 311 of file parallel_part.h.

typedef MSA1D<MeshElem,DefaultEntry<MeshElem,true>,1> MSA1DFEMMESH

Definition at line 313 of file parallel_part.h.

Definition at line 315 of file parallel_part.h.

typedef MSA1D<Hashtuple,DefaultListEntry<Hashtuple,true>,MSA_DEFAULT_ENTRIES_PER_PAGE> MSA1DHASH

Definition at line 316 of file parallel_part.h.


Function Documentation

template<class T>
ostream& operator<< ( ostream &  os,
const ElemList< T > &  s 
) [inline]

Definition at line 296 of file parallel_part.h.

template<class T>
CkOutStream& operator<< ( CkOutStream os,
const ElemList< T > &  s 
) [inline]

Definition at line 300 of file parallel_part.h.

struct partconndata* FEM_call_parmetis ( struct conndata data,
FEM_Comm_t  comm_context 
) [read]

void FEM_write_nodepart ( MSA1DINTLIST nodepart,
struct partconndata data 
)

Definition at line 393 of file parallel_part.C.

References partconndata::eind, partconndata::eptr, partconndata::nelem, and partconndata::part.

Referenced by FEM_master_parallel_part(), and FEM_slave_parallel_part().

Here is the caller graph for this function:

void FEM_write_part2node ( MSA1DINTLIST nodepart,
MSA1DNODELIST part2node,
struct partconndata data,
MPI_Comm  comm_context 
)

Definition at line 410 of file parallel_part.C.

References MPI_Comm_rank, n, NodeElem::shared, PUP::t, and ElemList< T >::vec.

Referenced by FEM_master_parallel_part(), and FEM_slave_parallel_part().

Here is the caller graph for this function:

void FEM_write_part2elem ( MSA1DINTLIST part2elem,
struct partconndata data,
MPI_Comm  comm_context 
)

Definition at line 447 of file parallel_part.C.

References partconndata::nelem, partconndata::part, and partconndata::startindex.

Referenced by FEM_master_parallel_part(), and FEM_slave_parallel_part().

Here is the caller graph for this function:

void FEM_write_part2mesh ( MSA1DFEMMESH part2mesh,
struct partconndata partdata,
struct conndata data,
MSA1DINTLIST nodepart,
int  numChunks,
int  myChunk,
FEM_Mesh mypiece 
)

reading my part of the broken mesh and sending the element data to the mesh that actually should have it according to parmetis

send out the nodes that I have the data for to the meshes that have them

Definition at line 510 of file parallel_part.C.

References count, elem, FEM_Mesh::elem, FEM_Entity_Types< T >::has(), MeshElem::m, conndata::nnode, FEM_Mesh::node, partconndata::part, FEM_Entity::size(), FEM_Entity_Types< T >::size(), PUP::t, and ElemList< T >::vec.

Referenced by FEM_master_parallel_part(), and FEM_slave_parallel_part().

Here is the call graph for this function:

Here is the caller graph for this function:


Generated on Mon Sep 21 08:07:25 2020 for Charm++ by  doxygen 1.5.5