42 #ifndef Foam_processorFaPatch_H 43 #define Foam_processorFaPatch_H 99 const label nbrPolyPatchi,
102 const word& patchType = typeName
150 const label nbrPolyPatchi,
153 const word& patchType = typeName
163 const word& patchType = typeName
188 return neighbProcNo_;
200 return (myProcNo_ < neighbProcNo_);
205 virtual int tag()
const 211 virtual label
comm()
const;
227 return neighbEdgeCentres_;
233 return neighbEdgeLengths_;
242 return neighbEdgeFaceCentres_;
processorFaPatch(const word &name, const labelUList &edgeLabels, const label index, const faBoundaryMesh &bm, const label nbrPolyPatchi, const label myProcNo, const label neighbProcNo, const word &patchType=typeName)
Construct from components with specified name.
virtual void initUpdateMesh(PstreamBuffers &)
Initialise the update of the patch topology.
virtual const tensorField & forwardT() const
Return face transformation tensor.
TypeName("processor")
Runtime type information.
commsTypes
Communications types.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
const vectorField & neighbEdgeLengths() const noexcept
Return processor-neighbour patch edge lengths.
void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
const labelList & nonGlobalPatchPoints() const
Return the set of labels of the processor patch points which are.
virtual tmp< vectorField > delta() const
Return delta (P to N) vectors across coupled patch.
void initMovePoints(PstreamBuffers &, const pointField &)
Initialise the patches for moving points.
virtual int tag() const
The message tag to use for communication.
static bool & parRun() noexcept
Test if this a parallel run.
const labelList & neighbPoints() const
Return neighbour point labels. This is for my local point the.
virtual label size() const
Patch size is the number of edge labels, but can be overloaded.
static int & msgType() noexcept
Message tag of standard messages.
virtual label comm() const
Return communicator used for communication.
const labelList & edgeLabels() const noexcept
Return the list of edges.
virtual bool coupled() const
Return true if running parallel.
virtual tmp< labelField > interfaceInternalField(const labelUList &internalData) const
Return the values of the given internal data adjacent to the interface as a field.
virtual label interfaceSize() const noexcept
Return interface size.
const vectorField & neighbEdgeCentres() const noexcept
Return processor-neighbour patch edge centres.
A class for handling words, derived from Foam::string.
tmp< vectorField > neighbEdgeNormals() const
Return processor-neighbour patch edge unit normals.
const labelUList & edgeFaces() const
Return edge-face addressing.
void movePoints(PstreamBuffers &, const pointField &)
Correct patches after moving points.
void makeDeltaCoeffs(scalarField &) const
Make patch face - neighbour cell distances.
const word & name() const noexcept
The patch name.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
virtual void write(Ostream &os) const
Write the patch data as a dictionary.
virtual void updateMesh(PstreamBuffers &)
Update of the patch topology.
An abstract base class for processor coupled interfaces.
OBJstream os(runTime.globalPath()/outputName)
void makeNonGlobalPatchPoints() const
Find non-globa patch points.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
int neighbProcNo() const noexcept
Return neighbour processor number.
void makeWeights(scalarField &) const
Make patch weighting factors.
virtual bool owner() const noexcept
Does this side own the patch ?
coupledFaPatch is an abstract base class for patches that couple regions of the computational domain ...
Finite area boundary mesh.
virtual void initInternalFieldTransfer(const Pstream::commsTypes commsType, const labelUList &internalData) const
Initialise neighbour field transfer.
void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
virtual void initTransfer(const Pstream::commsTypes commsType, const labelUList &interfaceData) const
Initialise interface data transfer.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
const tensorField & forwardT() const
Return face transformation tensor.
virtual tmp< labelField > internalFieldTransfer(const Pstream::commsTypes commsType, const labelUList &internalData) const
Return neighbour field.
virtual tmp< labelField > transfer(const Pstream::commsTypes commsType, const labelUList &interfaceData) const
Transfer and return neighbour field.
label index() const noexcept
The index of this patch in the boundaryMesh.
A class for managing temporary objects.
const vectorField & neighbEdgeFaceCentres() const noexcept
Return processor-neighbour patch neighbour face centres.
int myProcNo() const noexcept
Return processor number.
virtual ~processorFaPatch()
Destructor.