PPL Logo

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


Function Documentation

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

Here is the caller graph for this function:

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

Here is the call graph for this function:

Here is the caller graph for this function:

int TCHARMLIB_Get_rank ( TCharm tc,
int  mpi_comm 
)

Definition at line 271 of file threadCollide.C.

References TCharm::getElement().

Referenced by COLLIDE_Init().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Here is the call graph for this function:

Here is the caller graph for this function:

CLINKAGE 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(), threadCollide::getArrayID(), TCharm::getProxy(), _ckGroupID::idx, rank, TCharm::semaGet(), TCHARMLIB_Bound_array(), and TCHARMLIB_Get_rank().

Referenced by ParFUM_Collide().

Here is the call graph for this function:

Here is the caller graph for this function:

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.

Here is the call graph for this function:

CLINKAGE 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.

FORTRAN_AS_C ( COLLIDE_BOXES  ,
COLLIDE_Boxes  ,
collide_boxes  ,
(int *c, int *n, double *box)  ,
*,*,  box 
)

static void collideNodeInit ( void   )  [static]

Type Constraints

Definition at line 377 of file threadCollide.C.

References _chareTable, _entryTable, funclist, name, TCharm::nodeInit(), and traceRegisterUserEvent().

Here is the call graph for this function:


Variable Documentation

Definition at line 328 of file threadCollide.C.

int const double* boxes


Generated on Mon Sep 21 08:06:55 2020 for Charm++ by  doxygen 1.5.5