PPL Logo

threadCollideMgr Class Reference

Threaded collision group--collects collisions as they come from voxels, and sends the collisions to the source chunks. More...

Inheritance diagram for threadCollideMgr:

Inheritance graph
[legend]
Collaboration diagram for threadCollideMgr:

Collaboration graph
[legend]

Public Member Functions

 threadCollideMgr (void)
void registerContributor (threadCollide *chunk, int chunkNo)
 Maintain contributor lists:.
void unregisterContributor (int chunkNo)
void collisions (ArrayElement *src, int step, CollisionList &colls)
 collideClient interface (called by voxels) Splits up collisions by destination PE
void sendRemote (CkReductionMsg *m)
 All voxels have now reported their collisions: Send off the accumulated collisions to each destination PE.
void remoteCollisions (threadCollisions *m)
 Accept and buffer these remote collisions.
void sift (int nColl, const Collision *colls)
 Add these remote collisions to each local chunk.

Private Member Functions

threadCollidelookup (int chunkNo)

Private Attributes

CkVec< threadCollide * > contrib
CkVec< CollisionListtoPE
CkVec< threadCollisions * > fromPE
int nRemote
int myPe

Detailed Description

Threaded collision group--collects collisions as they come from voxels, and sends the collisions to the source chunks.

Definition at line 37 of file threadCollide.C.


Constructor & Destructor Documentation

threadCollideMgr::threadCollideMgr ( void   )  [inline]

Definition at line 62 of file threadCollide.C.

References Converse::CkMyPe(), Converse::CkNumPes(), fromPE, myPe, nRemote, and p.

Here is the call graph for this function:


Member Function Documentation

threadCollide* threadCollideMgr::lookup ( int  chunkNo  )  [inline, private]

Definition at line 41 of file threadCollide.C.

References contrib.

Referenced by sift().

Here is the caller graph for this function:

void threadCollideMgr::registerContributor ( threadCollide chunk,
int  chunkNo 
) [inline]

Maintain contributor lists:.

Definition at line 71 of file threadCollide.C.

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

Here is the call graph for this function:

void threadCollideMgr::unregisterContributor ( int  chunkNo  )  [inline]

Definition at line 76 of file threadCollide.C.

References contrib.

void threadCollideMgr::collisions ( ArrayElement src,
int  step,
CollisionList colls 
)

collideClient interface (called by voxels) Splits up collisions by destination PE

collideClient interface (called by voxels) Splits up collisions by destination PE

Definition at line 160 of file threadCollide.C.

References Collision::A, Collision::B, c, count, n, CollideObjID::pe, CkVec< T >::push_back(), growableBufferT< T >::size(), CkReduction::sum_int, toPE, and TRACE().

Here is the call graph for this function:

void threadCollideMgr::sendRemote ( CkReductionMsg m  ) 

All voxels have now reported their collisions: Send off the accumulated collisions to each destination PE.

All voxels have now reported their collisions: Send off the accumulated collisions to each destination PE.

Definition at line 198 of file threadCollide.C.

References Converse::CkNumPes(), listToMessage(), myPe, n, p, remoteCollisions(), size, toPE, and TRACE().

Here is the call graph for this function:

void threadCollideMgr::remoteCollisions ( threadCollisions *  m  ) 

Accept and buffer these remote collisions.

Accept these remote collisions.

Definition at line 213 of file threadCollide.C.

References Converse::CkNumPes(), contrib, fromPE, n, nRemote, p, sift(), CkVec< T >::size(), and TRACE().

Referenced by sendRemote().

Here is the call graph for this function:

Here is the caller graph for this function:

void threadCollideMgr::sift ( int  nColl,
const Collision colls 
)

Add these remote collisions to each local chunk.

Definition at line 249 of file threadCollide.C.

References Collision::A, Collision::B, c, CollideObjID::chunk, threadCollide::colls, lookup(), myPe, CollideObjID::pe, and growableBufferT< T >::push_back().

Referenced by remoteCollisions().

Here is the call graph for this function:

Here is the caller graph for this function:


Field Documentation

Definition at line 50 of file threadCollide.C.

Referenced by collisions(), and sendRemote().

CkVec<threadCollisions *> threadCollideMgr::fromPE [private]

Definition at line 53 of file threadCollide.C.

Referenced by remoteCollisions(), and threadCollideMgr().

Definition at line 56 of file threadCollide.C.

Referenced by remoteCollisions(), and threadCollideMgr().

Definition at line 59 of file threadCollide.C.

Referenced by sendRemote(), sift(), and threadCollideMgr().


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

Generated on Mon Sep 21 08:30:46 2020 for Charm++ by  doxygen 1.5.5