45 globalNumbering_(stencil_.globalNumbering()),
92 for (
const label celli : stencil.
needsComm())
96 for (
const label gblIdx : stencil_[celli])
98 const label proci = globalNumbering_.whichProcID(gblIdx);
102 needed[proci].insert(gblIdx);
118 UOPstream toProc(proci, pBufs);
119 toProc << needed[proci].sortedToc();
123 pBufs.finishedSends(sendConnections_, sendProcs_, recvProcs_);
125 for (
const int proci : pBufs.allProcs())
127 send_[proci].clear();
131 UIPstream fromProc(proci, pBufs);
132 fromProc >> send_[proci];
static rangeType allProcs(const label communicator=worldComm)
Range of process indices for all processes.
static bool & parRun() noexcept
Test if this a parallel run.
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)
Number of this process (starting from masterNo() = 0)
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
const labelHashSet & needsComm() noexcept
virtual const objectRegistry & thisDb() const
Return the object registry - resolve conflict polyMesh/lduMesh.
Templated abstract base-class for optional mesh objects used to automate their allocation to the mesh...
static label nProcs(const label communicator=worldComm)
Number of ranks in parallel run (for given communicator) is 1 for serial run.
static zoneDistribute & New(const fvMesh &)
Selector.
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.
const fvMesh & mesh() const
Mesh data needed to do the Finite Volume discretisation.
"nonBlocking" : (MPI_Isend, MPI_Irecv)
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.