Go to the source code of this file.
Data Structures | |
class | threadCollideMgr |
Threaded collision group--collects collisions as they come from voxels, and sends the collisions to the source chunks. More... | |
class | threadCollide |
Threaded collision client array--provides interface between threadCollideMgr and API routines. More... | |
Functions | |
define | TRACE (x) |
Collision message: just a list of collisions. | |
threadCollisions * | listToMessage (CollisionList &l) |
Destroy this collision list, and create a message from it. | |
int | TCHARMLIB_Get_rank (TCharm *tc, int mpi_comm) |
CkArrayOptions | TCHARMLIB_Bound_array (TCharm *tc, int mpi_comm) |
CLINKAGE collide_t | COLLIDE_Init (int mpi_comm, const double *gridStart, const double *gridSize) |
Create a new Collision grid. | |
FORTRAN_AS_C_RETURN (int, COLLIDE_INIT, COLLIDE_Init, collide_init,(int *comm, double *s, double *e),(*comm, s, e)) threadCollide *COLLIDE_Lookup(collide_t c) | |
CLINKAGE void | COLLIDE_Boxes (collide_t c, int nBox, const double *boxes) |
Collide these boxes (boxes[0. | |
FORTRAN_AS_C (COLLIDE_BOXES, COLLIDE_Boxes, collide_boxes,(int *c, int *n, double *box),(*c,*n, box)) CLINKAGE void COLLIDE_Boxes_prio(collide_t c | |
static void | collideNodeInit (void) |
Variables | |
int | nBox |
int const double * | boxes |
define TRACE | ( | x | ) |
Collision message: just a list of collisions.
Definition at line 13 of file threadCollide.C.
Referenced by threadCollideMgr::collisions(), threadCollideMgr::remoteCollisions(), and threadCollideMgr::sendRemote().
threadCollisions* listToMessage | ( | CollisionList & | l | ) |
Destroy this collision list, and create a message from it.
Definition at line 185 of file threadCollide.C.
References c, growableBufferT< T >::detachBuffer(), free(), PUP::m, n, and growableBufferT< T >::size().
Referenced by threadCollideMgr::sendRemote().
Definition at line 271 of file threadCollide.C.
References TCharm::getElement().
Referenced by COLLIDE_Init().
CkArrayOptions TCHARMLIB_Bound_array | ( | TCharm * | tc, | |
int | mpi_comm | |||
) |
Definition at line 275 of file threadCollide.C.
References CkArrayOptions::bindTo(), TCharm::getNumElements(), and TCharm::getProxy().
Referenced by COLLIDE_Init().
Create a new Collision grid.
This collective creation call must be made from all the threads of a TCHARM array.
mpi_comm | is the MPI communicator, or 0 if not using MPI. | |
gridSize | gives the size of one voxel, which should be several times larger than the size of the average object. | |
gridStart | gives the origin of the voxel array--the corner of the voxel (0,0,0). For best performance, if possible you should align the voxel array so most objects lie in exactly one voxel. |
Definition at line 282 of file threadCollide.C.
References c, CollideCreate(), TCharm::get(), threadCollide::getArrayID(), TCharm::getProxy(), _ckGroupID::idx, rank, TCharm::semaGet(), TCHARMLIB_Bound_array(), and TCHARMLIB_Get_rank().
Referenced by ParFUM_Collide().
FORTRAN_AS_C_RETURN | ( | int | , | |
COLLIDE_INIT | , | |||
COLLIDE_Init | , | |||
collide_init | , | |||
(int *comm, double *s, double *e) | , | |||
*,, | e | |||
) |
Definition at line 307 of file threadCollide.C.
References TCharm::get(), TCharm::getElement(), and _ckGroupID::idx.
Collide these boxes (boxes[0.
.6*nBox]). This is a collective call--all registered chunks should make this call. Unliked CollideClassed, below, no Collisions are ignored; or equivalently, every box lies in its own Collision class.
nBoxes | number of independent objects to collide. | |
boxes | an array of nBox 3d bounding boxes, stored as x-min, x-max, y-min, y-max, z-min, z-max. |
Definition at line 320 of file threadCollide.C.
FORTRAN_AS_C | ( | COLLIDE_BOXES | , | |
COLLIDE_Boxes | , | |||
collide_boxes | , | |||
(int *c, int *n, double *box) | , | |||
*,*, | box | |||
) |
static void collideNodeInit | ( | void | ) | [static] |
Definition at line 377 of file threadCollide.C.
References _chareTable, _entryTable, funclist, name, TCharm::nodeInit(), and traceRegisterUserEvent().
Definition at line 328 of file threadCollide.C.
Definition at line 328 of file threadCollide.C.
Referenced by ParFUM_Collide(), parallelTransfer_c::transfer(), and parallelSurfaceTransfer_c::transfer().