PPL Logo

IDXL_Side Class Reference

IDXL_Side describes all the shared entities for a given communication direction. More...

#include <idxl_comm.h>

Inheritance diagram for IDXL_Side:

Inheritance graph
[legend]
Collaboration diagram for IDXL_Side:

Collaboration graph
[legend]

Public Member Functions

 IDXL_Side (void)
void pup (PUP::er &p)
 ~IDXL_Side ()
int total () const
 Return total number of entries in all our lists.
int size (void) const
 Return the number of different chunks we communicate with.
const IDXL_ListgetLocalList (int idx) const
 Return the i'th (local) chunk we communicate with.
IDXL_ListsetLocalList (int idx)
int findLocalList (int chunk) const
 Return the local chunk number for this global chunk number.
const IDXL_ListgetList (int chunk) const
 Return the IDXL_List associated with this global chunk number.
IDXL_ListaddList (int chunk)
 Return the IDXL_List for this global chunk, adding if needed.
IDXL_ListgetIdxlListN (int chunk)
const IDXL_Rec * getRec (int entity) const
 Look up an entity's IDXL_Rec by the entity's local number.
void flushMap (void)
 The communication lists just changed-- flush any cached information.
void add (int myChunk, int myLocalNo, int hisChunk, int hisLocalNo, IDXL_Side &hisList)
 Used in creating comm.
void clear ()
 Method to clear remove all the IDXL Lists stored in this IDXL_Side Memory leak ?
bool lockIdxl (int sharedWithChk)
void unlockIdxl (int sharedWithChk)
bool isLocked (int sharedWithChk)
int addNode (int localNo, int sharedWithChk)
 This local entity number is shared with the given local chunk.
int removeNode (int localNo, int sharedWithChk)
bool setNode (int localNo, int sharedWithChk, int sharedIdx)
bool unsetNode (int sharedWithChk, int sharedIdx)
int existsNode (int localNo, int sharedWithChk)
int getNode (int sharedWithChk, int sharedIdx)
void print (const IDXL_Print_Map *idxmap=NULL) const
void sort2d (double *coord)
void sort3d (double *coord)

Private Member Functions

IDXL_MapgetMap (void)
IDXL_ListgetListN (int chunk)

Private Attributes

CkPupPtrVec< IDXL_List,
CkPupAlwaysAllocatePtr
< IDXL_List > > 
comm
 Communication lists indexed by (local) chunk number.
IDXL_Mapcached_map
 Communication lists indexed by local entity number.

Detailed Description

IDXL_Side describes all the shared entities for a given communication direction.

It provides both chunk->entities shared with it (comm) and the more rarely used entity->chunks that share it (map)

Definition at line 124 of file idxl_comm.h.


Constructor & Destructor Documentation

IDXL_Side::IDXL_Side ( void   ) 

Definition at line 239 of file idxl_comm.C.

IDXL_Side::~IDXL_Side (  ) 

Definition at line 241 of file idxl_comm.C.

References flushMap().

Here is the call graph for this function:


Member Function Documentation

IDXL_Map & IDXL_Side::getMap ( void   )  [private]

Definition at line 262 of file idxl_comm.C.

References IDXL_Map::add(), c, cached_map, comm, and CkVec< T >::size().

Referenced by getRec().

Here is the call graph for this function:

Here is the caller graph for this function:

IDXL_List* IDXL_Side::getListN ( int  chunk  )  [inline, private]

Definition at line 135 of file idxl_comm.h.

References comm, and CkVec< T >::size().

Referenced by add(), addList(), and getIdxlListN().

Here is the call graph for this function:

Here is the caller graph for this function:

void IDXL_Side::pup ( PUP::er p  ) 

Definition at line 250 of file idxl_comm.C.

References comm, and CkPupPtrVec< T, PUP_PTR >::pup().

Referenced by IDXL::pup(), FEM_Node::pup(), and FEM_Entity::pup().

Here is the call graph for this function:

Here is the caller graph for this function:

int IDXL_Side::total ( void   )  const

Return total number of entries in all our lists.

Definition at line 256 of file idxl_comm.C.

References comm, PUP::s, and size().

Referenced by print().

Here is the call graph for this function:

Here is the caller graph for this function:

int IDXL_Side::size ( void   )  const [inline]

Return the number of different chunks we communicate with.

Definition at line 149 of file idxl_comm.h.

References comm, and CkVec< T >::size().

Referenced by FEM_chunk::exchangeGhostLists(), FEMchunk::exchangeGhostLists(), FEM_readMesh(), FEM_MUtil::IdxlListTest(), makeGhosts(), ParFUM_generateGlobalNodeNumbers(), IDXL_Comm::post(), print(), and total().

Here is the call graph for this function:

Here is the caller graph for this function:

const IDXL_List& IDXL_Side::getLocalList ( int  idx  )  const [inline]

Return the i'th (local) chunk we communicate with.

Definition at line 151 of file idxl_comm.h.

References comm.

Referenced by FEM_chunk::exchangeGhostLists(), FEMchunk::exchangeGhostLists(), FEM_readMesh(), FEM_MUtil::IdxlListTest(), makeGhosts(), ParFUM_generateGlobalNodeNumbers(), IDXL_Comm::post(), print(), sharedWith(), and IDXL_Comm::wait().

Here is the caller graph for this function:

IDXL_List& IDXL_Side::setLocalList ( int  idx  )  [inline]

Definition at line 152 of file idxl_comm.h.

References comm.

int IDXL_Side::findLocalList ( int  chunk  )  const [inline]

Return the local chunk number for this global chunk number.

Definition at line 155 of file idxl_comm.h.

References comm, and CkVec< T >::size().

Referenced by FEM_chunk::exchangeGhostLists(), FEMchunk::exchangeGhostLists(), removeNode(), and sharedWith().

Here is the call graph for this function:

Here is the caller graph for this function:

const IDXL_List& IDXL_Side::getList ( int  chunk  )  const [inline]

Return the IDXL_List associated with this global chunk number.

Definition at line 163 of file idxl_comm.h.

Referenced by chunk::fixNode(), replyAdjacencyRequests(), edge::split(), and edge::translateSharedNodeIDs().

Here is the caller graph for this function:

IDXL_List& IDXL_Side::addList ( int  chunk  )  [inline]

IDXL_List* IDXL_Side::getIdxlListN ( int  chunk  )  [inline]

Definition at line 178 of file idxl_comm.h.

References getListN().

Referenced by BulkAdapt::get_idxl_for_node(), BulkAdapt::get_node_from_idxl(), BulkAdapt::is_node_in_idxl(), ParFUMShadowArray::lockSharedIdxls(), and ParFUMShadowArray::unlockSharedIdxls().

Here is the call graph for this function:

Here is the caller graph for this function:

const IDXL_Rec * IDXL_Side::getRec ( int  entity  )  const

void IDXL_Side::flushMap ( void   ) 

The communication lists just changed-- flush any cached information.

Definition at line 272 of file idxl_comm.C.

References cached_map.

Referenced by add(), addNode(), clear(), BulkAdapt::make_node_shared(), removeNode(), setNode(), sort2d(), sort3d(), unsetNode(), and ~IDXL_Side().

Here is the caller graph for this function:

void IDXL_Side::add ( int  myChunk,
int  myLocalNo,
int  hisChunk,
int  hisLocalNo,
IDXL_Side hisList 
)

Used in creating comm.

lists: myLocalNo on (global chunk number) myChunk should be sent to hisLocalNo on (global chunk number) hisChunk.

Definition at line 286 of file idxl_comm.C.

References comm, flushMap(), getListN(), IDXL_List::push_back(), and CkVec< T >::push_back().

Referenced by splitter::addGhostInner(), and splitter::buildCommLists().

Here is the call graph for this function:

Here is the caller graph for this function:

void IDXL_Side::clear (  ) 

Method to clear remove all the IDXL Lists stored in this IDXL_Side Memory leak ?

Definition at line 245 of file idxl_comm.C.

References comm, flushMap(), and CkVec< T >::free().

Referenced by FEM_Entity::clearGhost().

Here is the call graph for this function:

Here is the caller graph for this function:

bool IDXL_Side::lockIdxl ( int  sharedWithChk  ) 

void IDXL_Side::unlockIdxl ( int  sharedWithChk  ) 

bool IDXL_Side::isLocked ( int  sharedWithChk  ) 

int IDXL_Side::addNode ( int  localNo,
int  sharedWithChk 
)

int IDXL_Side::removeNode ( int  localNo,
int  sharedWithChk 
)

bool IDXL_Side::setNode ( int  localNo,
int  sharedWithChk,
int  sharedIdx 
)

Definition at line 331 of file idxl_comm.C.

References addList(), CpuTopoDetails::done, flushMap(), and IDXL_List::set().

Here is the call graph for this function:

bool IDXL_Side::unsetNode ( int  sharedWithChk,
int  sharedIdx 
)

Definition at line 337 of file idxl_comm.C.

References addList(), CpuTopoDetails::done, flushMap(), and IDXL_List::unset().

Here is the call graph for this function:

int IDXL_Side::existsNode ( int  localNo,
int  sharedWithChk 
)

Definition at line 343 of file idxl_comm.C.

References addList(), and IDXL_List::exists().

Here is the call graph for this function:

int IDXL_Side::getNode ( int  sharedWithChk,
int  sharedIdx 
)

Definition at line 347 of file idxl_comm.C.

References addList(), and IDXL_List::get().

Here is the call graph for this function:

void IDXL_Side::print ( const IDXL_Print_Map idxmap = NULL  )  const

Definition at line 357 of file idxl_comm.C.

References IDXL_List::getDest(), getLocalList(), PUP::l, p, IDXL_List::size(), size(), and total().

Referenced by addIDXLists(), FORTRAN_AS_C_RETURN(), and makeGhost().

Here is the call graph for this function:

Here is the caller graph for this function:

void IDXL_Side::sort2d ( double *  coord  ) 

Definition at line 371 of file idxl_comm.C.

References comm, flushMap(), PUP::l, CkVec< T >::size(), and IDXL_List::sort2d().

Referenced by IDXL::sort2d().

Here is the call graph for this function:

Here is the caller graph for this function:

void IDXL_Side::sort3d ( double *  coord  ) 

Definition at line 379 of file idxl_comm.C.

References comm, flushMap(), PUP::l, CkVec< T >::size(), and IDXL_List::sort3d().

Referenced by IDXL::sort3d().

Here is the call graph for this function:

Here is the caller graph for this function:


Field Documentation

Communication lists indexed by (local) chunk number.

Definition at line 126 of file idxl_comm.h.

Referenced by add(), addList(), clear(), findLocalList(), getListN(), getLocalList(), getMap(), pup(), removeNode(), setLocalList(), size(), sort2d(), sort3d(), and total().

Communication lists indexed by local entity number.

Because this is just another form for the data in comm, this pointer is normally NULL until somebody needs it.

Definition at line 131 of file idxl_comm.h.

Referenced by flushMap(), and getMap().


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

Generated on Mon Sep 21 08:26:00 2020 for Charm++ by  doxygen 1.5.5