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 PrismMesh & | srcMesh |
const double * | srcFaceVals |
const double * | srcPtVals |
const TriangleSurfaceMesh & | destMesh |
double * | destFaceVals |
double * | destPtVals |
double * | destAreas |
ConcreteLocalElement | theLocalElement |
Definition at line 49 of file parallelsurfacetransfer.C.
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.
parallelSurfaceTransfer_c::~parallelSurfaceTransfer_c | ( | ) | [inline] |
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().
Return true if this collision record describes a local intersection.
Definition at line 59 of file parallelsurfacetransfer.C.
References myRank.
Referenced by transfer().
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().
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().
void parallelSurfaceTransfer_c::transfer | ( | surfProgress_t & | surfProgress | ) |
Perform a parallel data transfer from srcVals to destVals.
Definition at line 453 of file parallelsurfacetransfer.C.
References accumulateCellValues(), boxes, c, Converse::CkMyPe(), CmiAbort(), COLLIDE_Boxes_prio(), COLLIDE_Count(), COLLIDE_List(), commSize, faceReceiver::count(), faceSender::countFace(), PUP::d, dest, destAreas, destFaceVals, destMesh, firstDest, TriangleSurfaceMesh::getArea(), faceReceiver::getFace(), getPrismBox(), PrismMesh::getPrisms(), getSharedArea(), getTriangleBox(), TriangleSurfaceMesh::getTriangles(), isDest(), isLocal(), mpi_comm, myRank, surfProgress_t::p(), p, faceSender::putFace(), PUP::s, ConcreteLocalElement::set(), src, srcFaceVals, srcMesh, srcPtVals, theLocalElement, transferNodeValues(), valsPerFace, valsPerPt, and voxels.
Referenced by ParallelSurfaceTransfer().
collide_t parallelSurfaceTransfer_c::voxels [private] |
int parallelSurfaceTransfer_c::firstDest [private] |
MPI_Comm parallelSurfaceTransfer_c::mpi_comm [private] |
Definition at line 56 of file parallelsurfacetransfer.C.
Referenced by parallelSurfaceTransfer_c(), and transfer().
int parallelSurfaceTransfer_c::myRank [private] |
Definition at line 57 of file parallelsurfacetransfer.C.
Referenced by isLocal(), parallelSurfaceTransfer_c(), VerboseSurfProgress_t::printLast(), transfer(), and VerboseSurfProgress_t::VerboseSurfProgress_t().
int parallelSurfaceTransfer_c::commSize [private] |
Definition at line 57 of file parallelsurfacetransfer.C.
Referenced by parallelSurfaceTransfer_c(), and transfer().
int parallelSurfaceTransfer_c::valsPerFace [private] |
Definition at line 61 of file parallelsurfacetransfer.C.
Referenced by accumulateCellValues(), parallelSurfaceTransfer_c(), and transfer().
int parallelSurfaceTransfer_c::valsPerPt [private] |
Definition at line 61 of file parallelsurfacetransfer.C.
Referenced by transfer(), and transferNodeValues().
const PrismMesh& parallelSurfaceTransfer_c::srcMesh [private] |
const double* parallelSurfaceTransfer_c::srcFaceVals [private] |
const double* parallelSurfaceTransfer_c::srcPtVals [private] |
const TriangleSurfaceMesh& parallelSurfaceTransfer_c::destMesh [private] |
Definition at line 65 of file parallelsurfacetransfer.C.
Referenced by parallelSurfaceTransfer_c(), transfer(), and transferNodeValues().
double* parallelSurfaceTransfer_c::destFaceVals [private] |
Definition at line 66 of file parallelsurfacetransfer.C.
Referenced by accumulateCellValues(), parallelSurfaceTransfer_c(), and transfer().
double* parallelSurfaceTransfer_c::destPtVals [private] |
double* parallelSurfaceTransfer_c::destAreas [private] |
Definition at line 68 of file parallelsurfacetransfer.C.
Referenced by accumulateCellValues(), parallelSurfaceTransfer_c(), transfer(), and ~parallelSurfaceTransfer_c().