43 MeshObject_type(
mesh),
45 globalNumbering_(stencil_.globalNumbering()),
47 pBufs_(
UPstream::commsTypes::nonBlocking)
96 for (
const label celli : stencil.
needsComm())
100 for (
const label gblIdx : stencil_[celli])
102 const label proci = globalNumbering_.whichProcID(gblIdx);
106 needed[proci].insert(gblIdx);
117 for (
const int proci : pBufs_.allProcs())
119 const auto& indices = needed[proci];
124 UOPstream toProc(proci, pBufs_);
125 toProc << indices.sortedToc();
129 pBufs_.finishedSends(sendConnections_, sendProcs_, recvProcs_);
131 for (
const int proci : pBufs_.allProcs())
133 send_[proci].clear();
137 UIPstream fromProc(proci, pBufs_);
138 fromProc >> send_[proci];
static bool & parRun() noexcept
Test if this a parallel run.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
bool store()
Register object with its registry and transfer ownership to the registry.
computes a cell point cell stencil in a narrow band. resizes in case of topological change ...
static int myProcNo(const label communicator=worldComm)
Rank of this process in the communicator (starting from masterNo()). Can be negative if the process i...
const labelHashSet & needsComm() noexcept
virtual const objectRegistry & thisDb() const
Return the object registry - resolve conflict polyMesh/lduMesh.
static label nProcs(const label communicator=worldComm)
Number of ranks in parallel run (for given communicator). It is 1 for serial run. ...
static zoneDistribute & New(const fvMesh &)
Selector.
bool allowClearRecv() const noexcept
Is clearStorage of individual receive buffer by external hooks allowed? (default: true) ...
Base class for mesh zones.
Type * getObjectPtr(const word &name, const bool recursive=false) const
Return non-const pointer to the object of the given Type, using a const-cast to have it behave like a...
zoneDistribute(const fvMesh &)
Construct from fvMesh.
static zoneCPCStencil & New(const fvMesh &)
void updateStencil(const boolList &zone)
defineTypeNameAndDebug(combustionModel, 0)
void setUpCommforZone(const boolList &zone, bool updateStencil=true)
Update stencil with boolList the size has to match mesh nCells.
Mesh data needed to do the Finite Volume discretisation.
void updateStencil(const boolList &zone)
Updates stencil with boolList the size has to match mesh nCells.
Class for parallel communication in a narrow band. It either provides a Map with the neighbouring val...
Inter-processor communications stream.