PPL Logo

parallelSurfaceTransfer_c Class Reference

Collaboration diagram for parallelSurfaceTransfer_c:

Collaboration graph
[legend]

Public Member Functions

 parallelSurfaceTransfer_c (collide_t voxels_, MPI_Comm mpi_comm_, int valsPerFace_, int valsPerPt_, const double *srcFaceVals_, const double *srcPtVals_, const PrismMesh &srcMesh_, double *destFaceVals_, double *destPtVals_, const TriangleSurfaceMesh &destMesh_)
 ~parallelSurfaceTransfer_c ()
void transfer (surfProgress_t &surfProgress)
 Perform a parallel data transfer from srcVals to destVals.

Private Member Functions

bool isDest (int n)
 Return true if this is the collision-box number of a destination face.
bool isLocal (const int *coll)
 Return true if this collision record describes a local intersection.
void accumulateCellValues (const double *sCellVals, int dest, double sharedArea)
 A source face, with values sVals, overlaps with this dest face with this much shared area.
void transferNodeValues (const ConcreteElementNodeData &srcElement, int dest)
 This source element, with values sPt, overlaps with this dest element.

Private Attributes

collide_t voxels
int firstDest
MPI_Comm mpi_comm
int myRank
int commSize
int valsPerFace
int valsPerPt
const PrismMeshsrcMesh
const double * srcFaceVals
const double * srcPtVals
const TriangleSurfaceMeshdestMesh
double * destFaceVals
double * destPtVals
double * destAreas
ConcreteLocalElement theLocalElement

Detailed Description

Definition at line 49 of file parallelsurfacetransfer.C.


Constructor & Destructor Documentation

parallelSurfaceTransfer_c::parallelSurfaceTransfer_c ( collide_t  voxels_,
MPI_Comm  mpi_comm_,
int  valsPerFace_,
int  valsPerPt_,
const double *  srcFaceVals_,
const double *  srcPtVals_,
const PrismMesh srcMesh_,
double *  destFaceVals_,
double *  destPtVals_,
const TriangleSurfaceMesh destMesh_ 
) [inline]

Definition at line 97 of file parallelsurfacetransfer.C.

References commSize, PUP::d, destAreas, destFaceVals, destMesh, TriangleSurfaceMesh::getTriangles(), mpi_comm, MPI_Comm_rank, myRank, and valsPerFace.

Here is the call graph for this function:

parallelSurfaceTransfer_c::~parallelSurfaceTransfer_c (  )  [inline]

Definition at line 118 of file parallelsurfacetransfer.C.

References destAreas.


Member Function Documentation

bool parallelSurfaceTransfer_c::isDest ( int  n  )  [inline, private]

Return true if this is the collision-box number of a destination face.

Only works for local numbers.

Definition at line 54 of file parallelsurfacetransfer.C.

References firstDest.

Referenced by transfer().

Here is the caller graph for this function:

bool parallelSurfaceTransfer_c::isLocal ( const int coll  )  [inline, private]

Return true if this collision record describes a local intersection.

Definition at line 59 of file parallelsurfacetransfer.C.

References myRank.

Referenced by transfer().

Here is the caller graph for this function:

void parallelSurfaceTransfer_c::accumulateCellValues ( const double *  sCellVals,
int  dest,
double  sharedArea 
) [inline, private]

A source face, with values sVals, overlaps with this dest face with this much shared area.

Transfer face-centered values.

Definition at line 74 of file parallelsurfacetransfer.C.

References destAreas, destFaceVals, and valsPerFace.

Referenced by transfer().

Here is the caller graph for this function:

void parallelSurfaceTransfer_c::transferNodeValues ( const ConcreteElementNodeData srcElement,
int  dest 
) [inline, private]

This source element, with values sPt, overlaps with this dest element.

Transfer any possible node-centered values.

Definition at line 83 of file parallelsurfacetransfer.C.

References destMesh, destPtVals, GenericElement::element_contains_point(), TriangleSurfaceMesh::getPoint(), TriangleSurfaceMesh::getTriangle(), GenericElement::interpolate_natural(), and valsPerPt.

Referenced by transfer().

Here is the call graph for this function:

Here is the caller graph for this function:

void parallelSurfaceTransfer_c::transfer ( surfProgress_t surfProgress  ) 


Field Documentation

Definition at line 50 of file parallelsurfacetransfer.C.

Referenced by transfer().

Definition at line 51 of file parallelsurfacetransfer.C.

Referenced by isDest(), and transfer().

Definition at line 56 of file parallelsurfacetransfer.C.

Referenced by parallelSurfaceTransfer_c(), and transfer().

Definition at line 57 of file parallelsurfacetransfer.C.

Referenced by parallelSurfaceTransfer_c(), and transfer().

Definition at line 61 of file parallelsurfacetransfer.C.

Referenced by transfer(), and transferNodeValues().

Definition at line 62 of file parallelsurfacetransfer.C.

Referenced by transfer().

const double* parallelSurfaceTransfer_c::srcFaceVals [private]

Definition at line 63 of file parallelsurfacetransfer.C.

Referenced by transfer().

const double* parallelSurfaceTransfer_c::srcPtVals [private]

Definition at line 64 of file parallelsurfacetransfer.C.

Referenced by transfer().

Definition at line 67 of file parallelsurfacetransfer.C.

Referenced by transferNodeValues().

Definition at line 70 of file parallelsurfacetransfer.C.

Referenced by transfer().


The documentation for this class was generated from the following file:

Generated on Mon Sep 21 08:28:22 2020 for Charm++ by  doxygen 1.5.5