Inter-processor communications stream. More...
#include <OpenFOAM/Pstream.H>
Inter-processor communications stream.
Definition at line 59 of file Pstream.H.
Classes | |
class | commsStruct |
Structure for communicating between processors. More...
| |
Public Member Functions | |
ClassName ("Pstream") | |
Pstream (const commsTypes commsType, const label bufSize=0) | |
Construct given optional buffer size.
| |
commsTypes | commsType () const |
Get the communications type of the stream.
| |
commsTypes | commsType (const commsTypes ct) |
Set the communications type of the stream.
| |
friend | void::Foam::reduce (scalar &Value, const sumOp< scalar > &bop) |
friend | void::Foam::PstreamImpl::initCommunicationSchedule () |
Static Public Member Functions | |
static void | addValidParOptions (HashTable< string > &validParOptions) |
Add the valid option this type of communications library.
| |
static bool | init (int &argc, char **&argv) |
Initialisation function called from main.
| |
static bool | parRun () |
Is this a parallel run?
| |
static label | nProcs () |
Number of processes in parallel run.
| |
static bool | master () |
Am I the master process.
| |
static int | masterNo () |
Process index of the master.
| |
static int | myProcNo () |
Number of this process (starting from masterNo() = 0)
| |
static const List< int > & | procIDs () |
Process IDs.
| |
static int | procID (int procNo) |
Process ID of given process index.
| |
static int | firstSlave () |
Process index of first slave.
| |
static int | lastSlave () |
Process index of last slave.
| |
static const List< commsStruct > & | linearCommunication () |
Communication schedule for linear all-to-master (proc 0)
| |
static const List< commsStruct > & | treeCommunication () |
Communication schedule for tree all-to-master (proc 0)
| |
static int | msgType () |
Message tag of standard messages.
| |
static void | exit (int errnum=1) |
Exit program.
| |
static void | abort () |
Abort program.
| |
template<class T , class BinaryOp > | |
static void | gather (const List< commsStruct > &comms, T &Value, const BinaryOp &bop) |
Gather data. Apply bop to combine Value.
| |
template<class T , class BinaryOp > | |
static void | gather (T &Value, const BinaryOp &bop) |
Like above but switches between linear/tree communication.
| |
template<class T > | |
static void | scatter (const List< commsStruct > &comms, T &Value) |
Scatter data. Distribute without modification. Reverse of gather.
| |
template<class T > | |
static void | scatter (T &Value) |
Like above but switches between linear/tree communication.
| |
template<class T , class CombineOp > | |
static void | combineGather (const List< commsStruct > &comms, T &Value, const CombineOp &cop) |
template<class T , class CombineOp > | |
static void | combineGather (T &Value, const CombineOp &cop) |
Like above but switches between linear/tree communication.
| |
template<class T > | |
static void | combineScatter (const List< commsStruct > &comms, T &Value) |
Scatter data. Reverse of combineGather.
| |
template<class T > | |
static void | combineScatter (T &Value) |
Like above but switches between linear/tree communication.
| |
template<class T , class CombineOp > | |
static void | listCombineGather (const List< commsStruct > &comms, List< T > &Value, const CombineOp &cop) |
template<class T , class CombineOp > | |
static void | listCombineGather (List< T > &Value, const CombineOp &cop) |
Like above but switches between linear/tree communication.
| |
template<class T > | |
static void | listCombineScatter (const List< commsStruct > &comms, List< T > &Value) |
Scatter data. Reverse of combineGather.
| |
template<class T > | |
static void | listCombineScatter (List< T > &Value) |
Like above but switches between linear/tree communication.
| |
template<class Container , class CombineOp > | |
static void | mapCombineGather (const List< commsStruct > &comms, Container &Values, const CombineOp &cop) |
template<class Container , class CombineOp > | |
static void | mapCombineGather (Container &Values, const CombineOp &cop) |
Like above but switches between linear/tree communication.
| |
template<class Container > | |
static void | mapCombineScatter (const List< commsStruct > &comms, Container &Values) |
Scatter data. Reverse of combineGather.
| |
template<class Container > | |
static void | mapCombineScatter (Container &Values) |
Like above but switches between linear/tree communication.
| |
template<class T > | |
static void | gatherList (const List< commsStruct > &comms, List< T > &Values) |
Gather data but keep individual values separate.
| |
template<class T > | |
static void | gatherList (List< T > &Values) |
Like above but switches between linear/tree communication.
| |
template<class T > | |
static void | scatterList (const List< commsStruct > &comms, List< T > &Values) |
Scatter data. Reverse of gatherList.
| |
template<class T > | |
static void | scatterList (List< T > &Values) |
Like above but switches between linear/tree communication.
| |
Static Public Attributes | |
static const NamedEnum < commsTypes, 3 > | commsTypeNames |
static bool | floatTransfer |
Should compact transfer be used in which floats replace doubles.
| |
static int | nProcsSimpleSum |
Number of processors at which the sum algorithm changes from linear.
| |
static commsTypes | defaultCommsType |
Default commsType.
| |
Protected Member Functions | |
void | enlargeBuffer (size_t count) |
Increase the size of the transfer buffer.
| |
Protected Attributes | |
commsTypes | commsType_ |
Communications type of this stream.
| |
List< char > | buf_ |
Transfer buffer.
| |
int | bufPosition_ |
Current buffer read/write location.
|
Pstream | ( | const commsTypes | commsType, |
const label | bufSize = 0
|
||
) | [inline]
|
Construct given optional buffer size.
Definition at line 247 of file Pstream.H.
References Pstream::buf_, and List< T >::setSize().
void enlargeBuffer | ( | size_t | count ) | [inline, protected]
|
Increase the size of the transfer buffer.
Definition at line 524 of file Pstream.H.
References Pstream::buf_, Foam::max(), List< T >::setSize(), and List< T >::size().
ClassName | ( | "Pstream" | ) |
static bool init | ( | int & | argc, |
char **& | argv | ||
) | [inline, static]
|
Initialisation function called from main.
Spawns slave processes and initialises inter-communication
Definition at line 273 of file Pstream.H.
Referenced by ParRunControl::runPar().
static bool parRun | ( | ) | [inline, static]
|
Is this a parallel run?
Definition at line 279 of file Pstream.H.
Referenced by IOerror::abort(), error::abort(), autoLayerDriver::addLayers(), autoHexMeshDriver::autoHexMeshDriver(), meshRefinement::balance(), processorPolyPatch::calcGeometry(), probes::checkFieldTypes(), polyBoundaryMesh::checkParallelSync(), Pstream::combineGather(), Pstream::combineScatter(), globalPointPatch::coupled(), processorPointPatch::coupled(), processorPointPatchField< Type >::coupled(), processorFvPatch::coupled(), processorFvsPatchField< Type >::coupled(), processorFvPatchField< Type >::coupled(), processorFvPatch::delta(), refinementHistory::distribute(), fvMeshDistribute::distribute(), autoLayerDriver::doLayers(), autoRefineDriver::doRefine(), processorFvPatchField< Type >::evaluate(), IOerror::exit(), error::exit(), sampledSurfaces::expire(), distributedTriSurfaceMesh::findNearest(), Pstream::gather(), Pstream::gatherList(), distributedTriSurfaceMesh::getField(), syncTools::getMasterEdges(), syncTools::getMasterFaces(), syncTools::getMasterPoints(), distributedTriSurfaceMesh::getNormal(), distributedTriSurfaceMesh::getRegion(), processorFvPatchField< Type >::initEvaluate(), processorPolyPatch::initGeometry(), processorPolyPatch::initOrder(), processorPointPatchField< Type >::initSwapAdd(), processorPolyPatch::initUpdateMesh(), Pstream::listCombineGather(), Pstream::listCombineScatter(), LUscalarMatrix::LUscalarMatrix(), processorFvPatch::makeDeltaCoeffs(), forces::makeFile(), fieldValue::makeFile(), fieldMinMax::makeFile(), processorFvPatch::makeWeights(), Pstream::mapCombineGather(), Pstream::mapCombineScatter(), polyBoundaryMesh::neighbourEdges(), processorPolyPatch::order(), sampledSurfaces::read(), regIOobject::readIfModified(), Time::readModifiedObjects(), mpiPstreamImpl::reduce(), referredCellList::referMolecules(), sampledSets::sampledSets(), sampledSurfaces::sampledSurfaces(), Pstream::scatter(), Pstream::scatterList(), Time::setControls(), fvMeshSubset::setLargeCellSubset(), LUscalarMatrix::solve(), processorPointPatchField< Type >::swapAdd(), faceSet::sync(), syncTools::syncBoundaryFaceList(), syncTools::syncEdgeList(), syncTools::syncEdgeMap(), syncTools::syncFaceList(), syncTools::syncPointList(), syncTools::syncPointMap(), sampledSurfaces::update(), processorPolyPatch::updateMesh(), and globalMeshData::updateMesh().
static label nProcs | ( | ) | [inline, static]
|
Number of processes in parallel run.
Definition at line 285 of file Pstream.H.
References List< T >::size().
Referenced by argList::argList(), meshRefinement::balanceAndRefine(), meshRefinement::checkCoupledFaceZones(), polyBoundaryMesh::checkParallelSync(), Pstream::combineGather(), Foam::combineReduce(), Pstream::combineScatter(), mapDistribute::compact(), fvMeshDistribute::countCells(), parMetisDecomp::decompose(), distributedTriSurfaceMesh::distribute(), refinementHistory::distribute(), fvMeshDistribute::distribute(), distributedTriSurfaceMesh::distributedTriSurfaceMesh(), distributedTriSurfaceMesh::findNearest(), Pstream::gather(), Pstream::gatherList(), globalIndex::globalIndex(), globalPoints::globalPoints(), Pstream::lastSlave(), Pstream::listCombineGather(), Pstream::listCombineScatter(), LUscalarMatrix::LUscalarMatrix(), Pstream::mapCombineGather(), Pstream::mapCombineScatter(), mapDistribute::mapDistribute(), parMetisDecomp::parMetisDecomp(), mpiPstreamImpl::reduce(), Foam::reduce(), meshRefinement::refineAndBalance(), meshRefinement::refineCandidates(), Foam::returnReduce(), Pstream::scatter(), Pstream::scatterList(), Time::setControls(), fvMeshSubset::setLargeCellSubset(), globalIndex::size(), ParSortableList< Type >::sort(), sampledSurfaces::update(), globalIndex::whichProcID(), and meshRefinement::zonify().
static bool master | ( | ) | [inline, static]
|
Am I the master process.
Definition at line 291 of file Pstream.H.
Referenced by actuationDiskSource::actuationDiskSource(), argList::argList(), fieldMinMax::calcMinMaxFields(), argList::check(), probes::checkFieldTypes(), polyBoundaryMesh::checkParallelSync(), argList::checkRootCase(), commSchedule::commSchedule(), probes::findElements(), Foam::fieldMinMax::calcMinMaxFields< Foam::scalar >(), JobInfo::JobInfo(), LUscalarMatrix::LUscalarMatrix(), forces::makeFile(), fieldValue::makeFile(), fieldMinMax::makeFile(), porousZone::porousZone(), sampledSurfaces::read(), sampledSets::read(), mpiPstreamImpl::reduce(), globalMeshData::sharedPoints(), JobInfo::signalEnd(), LUscalarMatrix::solve(), ParSortableList< Type >::sort(), syncTools::syncEdgeMap(), syncTools::syncPointMap(), sampledSurfaces::update(), sixDoFRigidBodyMotion::updateForce(), globalMeshData::updateMesh(), sixDoFRigidBodyMotion::updatePosition(), solution::upgradeSolverDict(), sampledSurfaces::write(), forces::write(), forceCoeffs::write(), faceSource::write(), cellSource::write(), JobInfo::write(), faceSource::writeValues(), cellSource::writeValues(), and JobInfo::~JobInfo().
static int masterNo | ( | ) | [inline, static]
|
Process index of the master.
Definition at line 297 of file Pstream.H.
Referenced by argList::argList(), LUscalarMatrix::LUscalarMatrix(), mpiPstreamImpl::reduce(), globalMeshData::sharedPoints(), LUscalarMatrix::solve(), syncTools::syncEdgeMap(), and syncTools::syncPointMap().
static int myProcNo | ( | ) | [inline, static]
|
Number of this process (starting from masterNo() = 0)
Definition at line 303 of file Pstream.H.
Referenced by argList::argList(), meshRefinement::checkCoupledFaceZones(), polyBoundaryMesh::checkParallelSync(), Pstream::combineGather(), Pstream::combineScatter(), mapDistribute::compact(), distributedTriSurfaceMesh::distribute(), fvMeshDistribute::distribute(), distributedTriSurfaceMesh::distributedTriSurfaceMesh(), refinementParameters::findCells(), probes::findElements(), patchProbes::findElements(), distributedTriSurfaceMesh::findNearest(), Pstream::gather(), Pstream::gatherList(), syncTools::getMasterEdges(), syncTools::getMasterPoints(), globalIndex::globalIndex(), globalPoints::globalPoints(), processorPolyPatch::initOrder(), globalIndex::isLocal(), Pstream::listCombineGather(), Pstream::listCombineScatter(), globalIndex::localSize(), Pstream::mapCombineGather(), Pstream::mapCombineScatter(), mapDistribute::mapDistribute(), processorPolyPatch::order(), IPstream::print(), referredCellList::referMolecules(), Pstream::scatter(), Pstream::scatterList(), Time::setControls(), fvMeshSubset::setLargeCellSubset(), PstreamImpl::setParRun(), ParSortableList< Type >::sort(), globalIndex::toGlobal(), globalIndex::toLocal(), sampledSurfaces::update(), globalMeshData::updateMesh(), and meshRefinement::zonify().
static const List<int>& procIDs | ( | ) | [inline, static]
|
static int procID | ( | int | procNo ) | [inline, static]
|
Process ID of given process index.
Definition at line 315 of file Pstream.H.
Referenced by mpiPstreamImpl::reduce().
static int firstSlave | ( | ) | [inline, static]
|
Process index of first slave.
Definition at line 321 of file Pstream.H.
Referenced by argList::argList(), LUscalarMatrix::LUscalarMatrix(), mpiPstreamImpl::reduce(), globalMeshData::sharedPoints(), LUscalarMatrix::solve(), syncTools::syncEdgeMap(), and syncTools::syncPointMap().
static int lastSlave | ( | ) | [inline, static]
|
Process index of last slave.
Definition at line 327 of file Pstream.H.
References Pstream::nProcs().
Referenced by argList::argList(), LUscalarMatrix::LUscalarMatrix(), mpiPstreamImpl::reduce(), globalMeshData::sharedPoints(), LUscalarMatrix::solve(), syncTools::syncEdgeMap(), and syncTools::syncPointMap().
static const List<commsStruct>& linearCommunication | ( | ) | [inline, static]
|
Communication schedule for linear all-to-master (proc 0)
Definition at line 333 of file Pstream.H.
Referenced by Pstream::combineGather(), Foam::combineReduce(), Pstream::combineScatter(), Pstream::gather(), Pstream::gatherList(), Pstream::listCombineGather(), Pstream::listCombineScatter(), Pstream::mapCombineGather(), Pstream::mapCombineScatter(), Foam::reduce(), Foam::returnReduce(), Pstream::scatter(), and Pstream::scatterList().
static const List<commsStruct>& treeCommunication | ( | ) | [inline, static]
|
Communication schedule for tree all-to-master (proc 0)
Definition at line 339 of file Pstream.H.
Referenced by Pstream::combineGather(), Foam::combineReduce(), Pstream::combineScatter(), Pstream::gather(), Pstream::gatherList(), Pstream::listCombineGather(), Pstream::listCombineScatter(), Pstream::mapCombineGather(), Pstream::mapCombineScatter(), Foam::reduce(), Foam::returnReduce(), Pstream::scatter(), and Pstream::scatterList().
static int msgType | ( | ) | [inline, static]
|
Message tag of standard messages.
Definition at line 345 of file Pstream.H.
Referenced by mpiPstreamImpl::reduce().
commsTypes commsType | ( | ) | const [inline]
|
Get the communications type of the stream.
Definition at line 351 of file Pstream.H.
References Pstream::commsType_.
commsTypes commsType | ( | const commsTypes | ct ) | [inline]
|
Set the communications type of the stream.
Definition at line 357 of file Pstream.H.
References Pstream::commsType_.
static void exit | ( | int | errnum = 1
) |
[inline, static]
|
Exit program.
Definition at line 365 of file Pstream.H.
Referenced by IOerror::exit(), and error::exit().
static void abort | ( | ) | [inline, static]
|
Abort program.
Definition at line 371 of file Pstream.H.
Referenced by IOerror::abort(), error::abort(), and Pstream::commsStruct::commsStruct().
void gather | ( | const List< commsStruct > & | comms, |
T & | Value, | ||
const BinaryOp & | bop | ||
) | [static]
|
Gather data. Apply bop to combine Value.
from different processors
Definition at line 45 of file gatherScatter.C.
References Pstream::commsStruct::above(), Pstream::commsStruct::below(), forAll, Pstream::myProcNo(), Pstream::parRun(), IPstream::read(), PstreamBase::scheduled, Foam::T(), and OPstream::write().
Referenced by Pstream::gather(), and Foam::reduce().
void gather | ( | T & | Value, |
const BinaryOp & | bop | ||
) | [static]
|
Like above but switches between linear/tree communication.
Definition at line 104 of file gatherScatter.C.
References Pstream::gather(), Pstream::linearCommunication(), Pstream::nProcs(), Pstream::nProcsSimpleSum, and Pstream::treeCommunication().
void scatter | ( | const List< commsStruct > & | comms, |
T & | Value | ||
) | [static]
|
Scatter data. Distribute without modification. Reverse of gather.
Definition at line 118 of file gatherScatter.C.
References Pstream::commsStruct::above(), Pstream::commsStruct::below(), forAll, Pstream::myProcNo(), Pstream::parRun(), IPstream::read(), PstreamBase::scheduled, Foam::T(), and OPstream::write().
Referenced by Foam::reduce(), Pstream::scatter(), ParSortableList< Type >::sort(), sixDoFRigidBodyMotion::updateForce(), and sixDoFRigidBodyMotion::updatePosition().
void scatter | ( | T & | Value ) | [static]
|
Like above but switches between linear/tree communication.
Definition at line 169 of file gatherScatter.C.
References Pstream::linearCommunication(), Pstream::nProcs(), Pstream::nProcsSimpleSum, Pstream::scatter(), and Pstream::treeCommunication().
void combineGather | ( | const List< commsStruct > & | comms, |
T & | Value, | ||
const CombineOp & | cop | ||
) | [static]
|
Definition at line 50 of file combineGatherScatter.C.
References Pstream::commsStruct::above(), Pstream::commsStruct::below(), Foam::endl(), forAll, Pstream::myProcNo(), Pstream::parRun(), Foam::Pout, IPstream::read(), PstreamBase::scheduled, Foam::T(), and OPstream::write().
Referenced by Pstream::combineGather(), and Foam::combineReduce().
void combineGather | ( | T & | Value, |
const CombineOp & | cop | ||
) | [static]
|
Like above but switches between linear/tree communication.
Definition at line 130 of file combineGatherScatter.C.
References Pstream::combineGather(), Pstream::linearCommunication(), Pstream::nProcs(), Pstream::nProcsSimpleSum, and Pstream::treeCommunication().
void combineScatter | ( | const List< commsStruct > & | comms, |
T & | Value | ||
) | [static]
|
Scatter data. Reverse of combineGather.
Definition at line 144 of file combineGatherScatter.C.
References Pstream::commsStruct::above(), Pstream::commsStruct::below(), Foam::endl(), forAll, Pstream::myProcNo(), Pstream::parRun(), Foam::Pout, IPstream::read(), PstreamBase::scheduled, Foam::T(), and OPstream::write().
Referenced by Foam::combineReduce(), and Pstream::combineScatter().
void combineScatter | ( | T & | Value ) | [static]
|
Like above but switches between linear/tree communication.
Definition at line 208 of file combineGatherScatter.C.
References Pstream::combineScatter(), Pstream::linearCommunication(), Pstream::nProcs(), Pstream::nProcsSimpleSum, and Pstream::treeCommunication().
void listCombineGather | ( | const List< commsStruct > & | comms, |
List< T > & | Value, | ||
const CombineOp & | cop | ||
) | [static]
|
Definition at line 227 of file combineGatherScatter.C.
References Pstream::commsStruct::above(), UList< T >::begin(), Pstream::commsStruct::below(), UList< T >::byteSize(), Foam::endl(), forAll, Pstream::myProcNo(), Pstream::parRun(), Foam::Pout, IPstream::read(), PstreamBase::scheduled, List< T >::size(), and OPstream::write().
Referenced by meshRefinement::balance(), patchProbes::findElements(), syncTools::getMasterEdges(), syncTools::getMasterPoints(), Pstream::listCombineGather(), meshRefinement::printMeshInfo(), probes::sample(), fvMeshSubset::setLargeCellSubset(), syncTools::syncEdgeList(), syncTools::syncPointList(), and sampledTriSurfaceMesh::update().
void listCombineGather | ( | List< T > & | Value, |
const CombineOp & | cop | ||
) | [static]
|
Like above but switches between linear/tree communication.
Definition at line 314 of file combineGatherScatter.C.
References Pstream::linearCommunication(), Pstream::listCombineGather(), Pstream::nProcs(), Pstream::nProcsSimpleSum, and Pstream::treeCommunication().
void listCombineScatter | ( | const List< commsStruct > & | comms, |
List< T > & | Value | ||
) | [static]
|
Scatter data. Reverse of combineGather.
Definition at line 329 of file combineGatherScatter.C.
References Pstream::commsStruct::above(), UList< T >::begin(), Pstream::commsStruct::below(), UList< T >::byteSize(), Foam::endl(), forAll, Pstream::myProcNo(), Pstream::parRun(), Foam::Pout, IPstream::read(), PstreamBase::scheduled, and OPstream::write().
Referenced by meshRefinement::balance(), patchProbes::findElements(), syncTools::getMasterEdges(), syncTools::getMasterPoints(), Pstream::listCombineScatter(), meshRefinement::printMeshInfo(), probes::sample(), fvMeshSubset::setLargeCellSubset(), syncTools::syncEdgeList(), syncTools::syncPointList(), and sampledTriSurfaceMesh::update().
void listCombineScatter | ( | List< T > & | Value ) | [static]
|
Like above but switches between linear/tree communication.
Definition at line 396 of file combineGatherScatter.C.
References Pstream::linearCommunication(), Pstream::listCombineScatter(), Pstream::nProcs(), Pstream::nProcsSimpleSum, and Pstream::treeCommunication().
void mapCombineGather | ( | const List< commsStruct > & | comms, |
Container & | Values, | ||
const CombineOp & | cop | ||
) | [static]
|
Definition at line 417 of file combineGatherScatter.C.
References Pstream::commsStruct::above(), Pstream::commsStruct::below(), Foam::endl(), forAll, Pstream::myProcNo(), Pstream::parRun(), Foam::Pout, and PstreamBase::scheduled.
Referenced by meshRefinement::decomposeCombineRegions(), and Pstream::mapCombineGather().
void mapCombineGather | ( | Container & | Values, |
const CombineOp & | cop | ||
) | [static]
|
Like above but switches between linear/tree communication.
Definition at line 481 of file combineGatherScatter.C.
References Pstream::linearCommunication(), Pstream::mapCombineGather(), Pstream::nProcs(), Pstream::nProcsSimpleSum, and Pstream::treeCommunication().
void mapCombineScatter | ( | const List< commsStruct > & | comms, |
Container & | Values | ||
) | [static]
|
Scatter data. Reverse of combineGather.
Definition at line 496 of file combineGatherScatter.C.
References Pstream::commsStruct::above(), Pstream::commsStruct::below(), Foam::endl(), forAll, Pstream::myProcNo(), Pstream::parRun(), Foam::Pout, and PstreamBase::scheduled.
Referenced by meshRefinement::decomposeCombineRegions(), and Pstream::mapCombineScatter().
void mapCombineScatter | ( | Container & | Values ) | [static]
|
Like above but switches between linear/tree communication.
Definition at line 537 of file combineGatherScatter.C.
References Pstream::linearCommunication(), Pstream::mapCombineScatter(), Pstream::nProcs(), Pstream::nProcsSimpleSum, and Pstream::treeCommunication().
void gatherList | ( | const List< commsStruct > & | comms, |
List< T > & | Values | ||
) | [static]
|
Gather data but keep individual values separate.
Definition at line 49 of file gatherScatterList.C.
References Foam::abort(), Pstream::commsStruct::above(), Pstream::commsStruct::allBelow(), UList< T >::begin(), Pstream::commsStruct::below(), UList< T >::byteSize(), Foam::endl(), Foam::FatalError, FatalErrorIn, forAll, Pstream::myProcNo(), Pstream::nProcs(), Pstream::parRun(), Foam::Pout, IPstream::read(), PstreamBase::scheduled, List< T >::size(), and OPstream::write().
Referenced by meshRefinement::checkCoupledFaceZones(), polyBoundaryMesh::checkParallelSync(), distributedTriSurfaceMesh::distribute(), fvMeshDistribute::distribute(), distributedTriSurfaceMesh::distributedTriSurfaceMesh(), Pstream::gatherList(), globalIndex::globalIndex(), globalPoints::globalPoints(), fvMeshSubset::setLargeCellSubset(), ParSortableList< Type >::sort(), sampledSurfaces::update(), and meshRefinement::zonify().
void gatherList | ( | List< T > & | Values ) | [static]
|
Like above but switches between linear/tree communication.
Definition at line 180 of file gatherScatterList.C.
References Pstream::gatherList(), Pstream::linearCommunication(), Pstream::nProcs(), Pstream::nProcsSimpleSum, and Pstream::treeCommunication().
void scatterList | ( | const List< commsStruct > & | comms, |
List< T > & | Values | ||
) | [static]
|
Scatter data. Reverse of gatherList.
Definition at line 195 of file gatherScatterList.C.
References Foam::abort(), Pstream::commsStruct::above(), Pstream::commsStruct::allNotBelow(), Pstream::commsStruct::below(), Foam::endl(), Foam::FatalError, FatalErrorIn, forAll, Pstream::myProcNo(), Pstream::nProcs(), Pstream::parRun(), Foam::Pout, IPstream::read(), PstreamBase::scheduled, List< T >::size(), and OPstream::write().
Referenced by meshRefinement::checkCoupledFaceZones(), polyBoundaryMesh::checkParallelSync(), distributedTriSurfaceMesh::distribute(), fvMeshDistribute::distribute(), distributedTriSurfaceMesh::distributedTriSurfaceMesh(), globalIndex::globalIndex(), globalPoints::globalPoints(), Pstream::scatterList(), fvMeshSubset::setLargeCellSubset(), and meshRefinement::zonify().
void scatterList | ( | List< T > & | Values ) | [static]
|
Like above but switches between linear/tree communication.
Definition at line 305 of file gatherScatterList.C.
References Pstream::linearCommunication(), Pstream::nProcs(), Pstream::nProcsSimpleSum, Pstream::scatterList(), and Pstream::treeCommunication().
void::Foam::reduce | ( | scalar & | Value, |
const sumOp< scalar > & | bop | ||
) |
void::Foam::PstreamImpl::initCommunicationSchedule | ( | ) |
const Foam::NamedEnum< Foam::Pstream::commsTypes, 3 > commsTypeNames [static]
|
Definition at line 68 of file Pstream.H.
Referenced by argList::argList(), and GeometricField< Type, PatchField, GeoMesh >::GeometricBoundaryField::evaluate().
commsTypes commsType_ [protected]
|
Communications type of this stream.
Definition at line 207 of file Pstream.H.
Referenced by Pstream::commsType().
Transfer buffer.
Definition at line 210 of file Pstream.H.
Referenced by Pstream::enlargeBuffer(), and Pstream::Pstream().
int bufPosition_ [protected]
|
bool floatTransfer [static]
|
Should compact transfer be used in which floats replace doubles.
reducing the bandwidth requirement at the expense of some loss in accuracy
Definition at line 233 of file Pstream.H.
Referenced by argList::argList().
int nProcsSimpleSum [static]
|
Number of processors at which the sum algorithm changes from linear.
to tree
Definition at line 237 of file Pstream.H.
Referenced by argList::argList(), Pstream::combineGather(), Foam::combineReduce(), Pstream::combineScatter(), Pstream::gather(), Pstream::gatherList(), Pstream::listCombineGather(), Pstream::listCombineScatter(), Pstream::mapCombineGather(), Pstream::mapCombineScatter(), mpiPstreamImpl::reduce(), Foam::reduce(), Foam::returnReduce(), Pstream::scatter(), and Pstream::scatterList().
Default commsType.
Definition at line 240 of file Pstream.H.
Referenced by argList::argList(), mapDistribute::distribute(), GeometricField< Type, PatchField, GeoMesh >::GeometricBoundaryField::evaluate(), turbulentTemperatureCoupledBaffleMixedFvPatchScalarField::updateCoeffs(), turbulentTemperatureCoupledBaffleFvPatchScalarField::updateCoeffs(), directMappedVelocityFluxFixedValueFvPatchField::updateCoeffs(), and directMappedFixedValueFvPatchField< Type >::updateCoeffs().