Buffers for inter-processor communications streams (UOPstream, UIPstream). More...
Public Member Functions | |
PstreamBuffers (const UPstream::commsTypes commsType, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm, IOstreamOption::streamFormat fmt=IOstreamOption::BINARY) | |
~PstreamBuffers () | |
int | tag () const noexcept |
label | comm () const noexcept |
void | finishedSends (const bool block=true) |
void | finishedSends (labelList &recvSizes, const bool block=true) |
void | clear () |
Friends | |
class | UOPstream |
class | UIPstream |
Buffers for inter-processor communications streams (UOPstream, UIPstream).
Use UOPstream to stream data into buffers, call finishedSends() to notify that data is in buffers and then use IUPstream to get data out of received buffers. Works with both blocking and nonBlocking. Does not make much sense with scheduled since there you would not need these explicit buffers.
Example usage:
Definition at line 84 of file PstreamBuffers.H.
|
explicit |
Definition at line 27 of file PstreamBuffers.C.
~PstreamBuffers | ( | ) |
Definition at line 47 of file PstreamBuffers.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, forAll, and Foam::nl.
|
inlinenoexcept |
Definition at line 137 of file PstreamBuffers.H.
|
inlinenoexcept |
Definition at line 143 of file PstreamBuffers.H.
Referenced by processorPolyPatch::initGeometry(), processorPolyPatch::initUpdateMesh(), and syncObjects::sync().
void finishedSends | ( | const bool | block = true | ) |
Definition at line 66 of file PstreamBuffers.C.
References UPstream::nonBlocking.
Referenced by fvMeshDistribute::distribute(), mapDistributeBase::distribute(), distributedTriSurfaceMesh::distribute(), box::doRefineBoxes(), globalIndex::get(), zoneDistribute::getDatafromOtherProc(), FaceCellWave< Type, int >::handleProcPatches(), trackingInverseDistance::markDonors(), inverseDistance::markDonors(), trackingInverseDistance::markPatchesAsHoles(), inverseDistance::markPatchesAsHoles(), Cloud< passivePositionParticle >::move(), pointBoundaryMesh::movePoints(), polyBoundaryMesh::movePoints(), masterUncollatedFileOperation::NewIFstream(), RecycleInteraction< CloudType >::postEvolve(), masterUncollatedFileOperation::read(), decomposedBlockData::readBlocks(), surfaceNoise::readSurfaceData(), masterUncollatedFileOperation::scatterList(), mapDistributeBase::send(), box::setRefineFlags(), zoneDistribute::setUpCommforZone(), surfaceNoise::surfaceAverage(), syncObjects::sync(), syncTools::syncBoundaryFaceList(), syncTools::syncEdgeMap(), syncTools::syncPointMap(), pointBoundaryMesh::updateMesh(), polyBoundaryMesh::updateMesh(), energySpectrum::write(), and surfaceNoise::writeSurfaceData().
Definition at line 85 of file PstreamBuffers.C.
References UPstream::commsTypeNames, Foam::endl(), Pstream::exchangeSizes(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, and UPstream::nonBlocking.
void clear | ( | ) |
Definition at line 118 of file PstreamBuffers.C.
Referenced by fvMeshDistribute::distribute(), trackingInverseDistance::markDonors(), inverseDistance::markDonors(), trackingInverseDistance::markPatchesAsHoles(), inverseDistance::markPatchesAsHoles(), Cloud< passivePositionParticle >::move(), RecycleInteraction< CloudType >::postEvolve(), and surfaceNoise::readSurfaceData().
|
friend |
Definition at line 86 of file PstreamBuffers.H.
|
friend |
Definition at line 87 of file PstreamBuffers.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.