Go to the documentation of this file.
49 Foam::zoneDistribute::coupledFacesPatch()
const
55 for (
const polyPatch& pp :
patches)
57 if (isA<processorPolyPatch>(pp))
59 nCoupled += pp.size();
65 for (
const polyPatch& pp :
patches)
67 if (isA<processorPolyPatch>(pp))
69 label facei = pp.start();
73 coupledFaces[nCoupled++] = facei++;
96 coupledBoundaryPoints_(coupledFacesPatch()().meshPoints()),
108 zoneDistribute::typeName
126 stencil_.updateStencil(
zone);
138 stencil_.updateStencil(
zone);
147 for (
const label celli : comms)
151 for (
const label gblIdx : stencil_[celli])
153 if (!globalNumbering().isLocal(gblIdx))
156 globalNumbering().whichProcID(gblIdx);
157 needed_[procID].insert(gblIdx);
173 toDomain << needed_[domain];
182 send_[domain].clear();
189 fromDomain >> send_[domain];
198 if (mesh_.topoChanging())
200 coupledBoundaryPoints_ = coupledFacesPatch()().meshPoints();
static autoPtr< T > New(Args &&... args)
Construct autoPtr of T with forwarding arguments.
List< label > labelList
A List of labels.
Type * getObjectPtr(const word &name, const bool recursive=false) const
virtual const pointField & points() const
Return raw points.
Output inter-processor communications stream operating on external buffer.
virtual const objectRegistry & thisDb() const
Return the object registry - resolve conflict polyMesh/lduMesh.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
static bool & parRun()
Test if this a parallel run, or allow modify access.
Base class for mesh zones.
const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
#define forAll(list, i)
Loop across all elements in list.
void finishedSends(const bool block=true)
Mark all sends as having been done. This will start receives.
virtual void updateMesh(const mapPolyMesh &mpm)
zoneDistribute(const fvMesh &)
Construct from fvMesh.
Mesh data needed to do the Finite Volume discretisation.
static zoneDistribute & New(const fvMesh &)
void setUpCommforZone(const boolList &zone, bool updateStencil=true)
Update stencil with boolList the size has to match mesh nCells.
void updateStencil(const boolList &zone)
Updates stencil with boolList the size has to match mesh nCells.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
virtual const faceList & faces() const
Return raw faces.
static rangeType allProcs(const label communicator=worldComm)
Range of process indices for all processes.
static int myProcNo(const label communicator=worldComm)
Number of this process (starting from masterNo() = 0)
Class for parallel communication in a narrow band. It either provides a Map with the neighbouring val...
Inter-processor communications stream.
const polyBoundaryMesh & patches
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
Templated abstract base-class for optional mesh objects used to automate their allocation to the mesh...
Input inter-processor communications stream operating on external buffer.
defineTypeNameAndDebug(combustionModel, 0)
static label nProcs(const label communicator=worldComm)
Number of processes in parallel run, and 1 for serial run.