libs/ck-libs/collide/threadCollide.C File Reference

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


Function Documentation

define TRACE (  ) 

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().

int TCHARMLIB_Get_rank ( TCharm tc,
int  mpi_comm 
)

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().

CDECL collide_t COLLIDE_Init ( int  mpi_comm,
const double *  gridStart,
const double *  gridSize 
)

Create a new Collision grid.

This collective creation call must be made from all the threads of a TCHARM array.

Parameters:
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.

CDECL void COLLIDE_Boxes ( collide_t  c,
int  nBox,
const double *  boxes 
)

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.

Parameters:
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 
)


Variable Documentation

int nBox

Definition at line 328 of file threadCollide.C.

Referenced by COLLIDE_Boxes(), and CollideBoxesPrio().

int const double* boxes

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().


Generated on Sun Jun 29 13:29:34 2008 for Charm++ by  doxygen 1.5.1