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 | |
threadCollide * | lookup (int chunkNo) |
Private Attributes | |
CkVec< threadCollide * > | contrib |
CkVec< CollisionList > | toPE |
CkVec< threadCollisions * > | fromPE |
int | nRemote |
int | myPe |
Definition at line 37 of file threadCollide.C.
threadCollideMgr::threadCollideMgr | ( | void | ) | [inline] |
Definition at line 62 of file threadCollide.C.
References Converse::CkMyPe(), Converse::CkNumPes(), fromPE, myPe, nRemote, and p.
threadCollide* threadCollideMgr::lookup | ( | int | chunkNo | ) | [inline, private] |
Definition at line 41 of file threadCollide.C.
References contrib.
Referenced by sift().
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().
void threadCollideMgr::unregisterContributor | ( | int | chunkNo | ) | [inline] |
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().
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().
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().
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().
CkVec<threadCollide *> threadCollideMgr::contrib [private] |
Definition at line 40 of file threadCollide.C.
Referenced by lookup(), registerContributor(), remoteCollisions(), and unregisterContributor().
CkVec<CollisionList> threadCollideMgr::toPE [private] |
CkVec<threadCollisions *> threadCollideMgr::fromPE [private] |
Definition at line 53 of file threadCollide.C.
Referenced by remoteCollisions(), and threadCollideMgr().
int threadCollideMgr::nRemote [private] |
Definition at line 56 of file threadCollide.C.
Referenced by remoteCollisions(), and threadCollideMgr().
int threadCollideMgr::myPe [private] |
Definition at line 59 of file threadCollide.C.
Referenced by sendRemote(), sift(), and threadCollideMgr().