42#ifndef Foam_processorFaPatch_H
43#define Foam_processorFaPatch_H
99 const label nbrPolyPatchi,
156 const label nbrPolyPatchi,
194 return neighbProcNo_;
206 return (myProcNo_ < neighbProcNo_);
211 virtual int tag()
const
217 virtual label
comm()
const;
233 return neighbEdgeCentres_;
239 return neighbEdgeLengths_;
248 return neighbEdgeFaceCentres_;
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Buffers for inter-processor communications streams (UOPstream, UIPstream).
commsTypes
Communications types.
static int & msgType() noexcept
Message tag of standard messages.
static bool & parRun() noexcept
Test if this a parallel run.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
const tensorField & forwardT() const
Return face transformation tensor.
coupledFaPatch(const word &name, const labelUList &edgeLabels, const label index, const faBoundaryMesh &bm, const label nbrPolyPatchIndex, const word &patchType)
Construct from components.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Finite area boundary mesh, which is a faPatch list with registered IO, a reference to the associated ...
virtual label size() const
Patch size is the number of edge labels, but can be overloaded.
const labelList & edgeLabels() const noexcept
Return the list of edges.
const labelUList & edgeFaces() const
Return edge-face addressing.
label index() const noexcept
The index of this patch in the boundaryMesh.
virtual void updateMesh(PstreamBuffers &)
Update of the patch topology.
virtual void initTransfer(const Pstream::commsTypes commsType, const labelUList &interfaceData) const
Initialise interface data transfer.
virtual ~processorFaPatch()
Destructor.
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 tmp< labelField > internalFieldTransfer(const Pstream::commsTypes commsType, const labelUList &internalData) const
Return neighbour field.
void initMovePoints(PstreamBuffers &, const pointField &)
Initialise the patches for moving points.
virtual bool coupled() const
Return true if running parallel.
void makeWeights(scalarField &) const
Make patch weighting factors.
void makeLPN(scalarField &) const
Make patch geodesic distance between P and N.
virtual label interfaceSize() const noexcept
Return interface size.
virtual bool owner() const noexcept
Does this side own the patch ?
void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
const labelList & neighbPoints() const
Return neighbour point labels. This is for my local point the.
void makeNonGlobalPatchPoints() const
Find non-globa patch points.
void makeDeltaCoeffs(scalarField &) const
Make patch face - neighbour cell distances.
int neighbProcNo() const noexcept
Return neighbour processor number.
virtual tmp< labelField > transfer(const Pstream::commsTypes commsType, const labelUList &interfaceData) const
Transfer and return neighbour field.
void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
tmp< vectorField > neighbEdgeNormals() const
Return processor-neighbour patch edge unit normals.
virtual label comm() const
Return communicator used for communication.
virtual tmp< vectorField > delta() const
Return delta (P to N) vectors across coupled patch.
const vectorField & neighbEdgeCentres() const noexcept
Return processor-neighbour patch edge centres.
virtual void initInternalFieldTransfer(const Pstream::commsTypes commsType, const labelUList &internalData) const
Initialise neighbour field transfer.
int myProcNo() const noexcept
Return processor number.
virtual tmp< labelField > interfaceInternalField(const labelUList &internalData) const
Return the values of the given internal data adjacent to the interface as a field.
void movePoints(PstreamBuffers &, const pointField &)
Correct patches after moving points.
const vectorField & neighbEdgeFaceCentres() const noexcept
Return processor-neighbour patch neighbour face centres.
const labelList & nonGlobalPatchPoints() const
Return the set of labels of the processor patch points which are.
virtual int tag() const
The message tag to use for communication.
virtual void initUpdateMesh(PstreamBuffers &)
Initialise the update of the patch topology.
TypeName("processor")
Runtime type information.
const vectorField & neighbEdgeLengths() const noexcept
Return processor-neighbour patch edge lengths.
void makeCorrectionVectors(vectorField &) const
Make non-orthogonality correction vectors.
virtual const tensorField & forwardT() const
Return face transformation tensor.
processorLduInterface() noexcept=default
Default construct.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
OBJstream os(runTime.globalPath()/outputName)
List< label > labelList
A List of labels.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")
Field< vector > vectorField
Specialisation of Field<T> for vector.
Field< tensor > tensorField
Specialisation of Field<T> for tensor.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
vectorField pointField
pointField is a vectorField.
UList< label > labelUList
A UList of labels.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.