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) |
| CDECL 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) | |
| CDECL 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)) CDECL void COLLIDE_Boxes_prio(collide_t c | |
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(), 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 TCharm::getNumElements(), TCharm::getProxy(), and opts.
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(), TCharm::getProxy(), _ckGroupID::idx, opts, 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.
References nBox.
| FORTRAN_AS_C | ( | COLLIDE_BOXES | , | |
| COLLIDE_Boxes | , | |||
| collide_boxes | , | |||
| (int *c, int *n, double *box) | , | |||
| *,*, | box | |||
| ) |
Definition at line 328 of file threadCollide.C.
Referenced by COLLIDE_Boxes(), and CollideBoxesPrio().
Definition at line 328 of file threadCollide.C.
Referenced by CollisionAggregator::aggregate(), CollideBoxesPrio(), threadCollide::contribute(), collideMgr::contribute(), ParFUM_Collide(), parallelTransfer_c::transfer(), and parallelSurfaceTransfer_c::transfer().
1.5.1