Go to the documentation of this file.
42 #ifndef processorFaPatch_H
43 #define processorFaPatch_H
85 mutable labelList* nonGlobalPatchPointsPtr_;
146 neighbEdgeCentres_(),
147 neighbEdgeLengths_(),
148 neighbEdgeFaceCentres_(),
149 neighbPointsPtr_(nullptr),
150 nonGlobalPatchPointsPtr_(nullptr)
163 myProcNo_(
dict.
get<label>(
"myProcNo")),
164 neighbProcNo_(
dict.
get<label>(
"neighbProcNo")),
165 neighbEdgeCentres_(),
166 neighbEdgeLengths_(),
167 neighbEdgeFaceCentres_(),
168 neighbPointsPtr_(nullptr),
169 nonGlobalPatchPointsPtr_(nullptr)
194 return neighbProcNo_;
204 virtual bool master() const noexcept
206 return (myProcNo_ < neighbProcNo_);
213 virtual label
comm()
const;
216 virtual int tag()
const;
232 return neighbEdgeCentres_;
238 return neighbEdgeLengths_;
244 return neighbEdgeFaceCentres_;
virtual label comm() const
Return communicator used for communication.
const vectorField & neighbEdgeFaceCentres() const
Return processor-neighbour patch neighbour face centres.
virtual const tensorField & forwardT() const
Return face transformation tensor.
processorFaPatch(const word &name, const labelList &edgeLabels, const label index, const faBoundaryMesh &bm, const label ngbPolyPatchIndex, const label myProcNo, const label neighbProcNo)
Construct from components.
void movePoints(const pointField &)
Correct patches after moving points.
virtual void updateMesh()
Update of the patch topology.
void initGeometry()
Initialise the calculation of the patch geometry.
const vectorField & neighbEdgeCentres() const
Return processor-neighbour patch edge centres.
virtual bool master() const noexcept
Is this the master side?
A class for handling words, derived from Foam::string.
virtual void write(Ostream &os) const
Write the patch data as a dictionary.
virtual void initTransfer(const Pstream::commsTypes commsType, const labelUList &interfaceData) const
Initialise interface data transfer.
A class for managing temporary objects.
An abstract base class for processor coupled interfaces.
int neighbProcNo() const noexcept
Return neighbour processor number.
coupledFaPatch(const word &name, const labelList &edgeLabels, const label index, const faBoundaryMesh &bm, const label ngbPolyPatchIndex)
Construct from components.
virtual tmp< labelField > transfer(const Pstream::commsTypes commsType, const labelUList &interfaceData) const
Transfer and return neighbour field.
virtual void initInternalFieldTransfer(const Pstream::commsTypes commsType, const labelUList &internalData) const
Initialise neighbour field transfer.
const labelList & edgeLabels() const noexcept
Return the list of edges.
const labelUList & edgeFaces() const
Return edge-face addressing.
const vectorField & neighbEdgeLengths() const
Return processor-neighbour patch edge lengths.
Finite area boundary mesh.
virtual bool coupled() const
Return true if running parallel.
coupledFaPatch is an abstract base class for patches that couple regions of the computational domain ...
const labelList & neighbPoints() const
Return neighbour point labels. This is for my local point the.
virtual void initUpdateMesh()
Initialise the update of the patch topology.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
OBJstream os(runTime.globalPath()/outputName)
const tensorField & forwardT() const
Return face transformation tensor.
label index() const noexcept
The index of this patch in the boundaryMesh.
void makeNonGlobalPatchPoints() const
Find non-globa patch points.
virtual label interfaceSize() const noexcept
Return interface size.
void makeDeltaCoeffs(scalarField &) const
Make patch face - neighbour cell distances.
commsTypes
Types of communications.
const labelList & nonGlobalPatchPoints() const
Return the set of labels of the processor patch points which are.
virtual ~processorFaPatch()
Destructor.
virtual tmp< labelField > interfaceInternalField(const labelUList &internalData) const
static bool & parRun() noexcept
Test if this a parallel run.
int myProcNo() const noexcept
Return processor number.
void makeWeights(scalarField &) const
Make patch weighting factors.
virtual tmp< labelField > internalFieldTransfer(const Pstream::commsTypes commsType, const labelUList &internalData) const
Return neighbour field.
TypeName("processor")
Runtime type information.
List< ReturnType > get(const UPtrList< T > &list, const AccessOp &aop)
const word & name() const noexcept
The patch name.
virtual tmp< vectorField > delta() const
Return delta (P to N) vectors across coupled patch.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
void calcGeometry()
Calculate the patch geometry.
void initMovePoints(const pointField &)
Initialise the patches for moving points.
virtual int tag() const
Return message tag to use for communication.
label ngbPolyPatchIndex() const noexcept
The neighbour polyPatch index.
virtual label size() const
Patch size is the number of edge labels.