39#ifndef processorCyclicPolyPatch_H
40#define processorCyclicPolyPatch_H
60 const word referPatchName_;
66 mutable label referPatchID_;
127 const word& patchType = typeName
137 const word& patchType
166 const label newStart,
217 const label newStart,
268 return referPatchName_;
275 const word& cyclicPolyPatchName,
284 const word& cyclicPolyPatchName,
291 if (referPatchID_ == -1)
297 if (referPatchID_ == -1)
300 <<
"Illegal referPatch name " << referPatchName_
301 <<
endl <<
"Valid patch names are "
306 return referPatchID_;
312 return refCast<const coupledPolyPatch>(pp);
316 virtual int tag()
const;
319 virtual bool owner()
const
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A list of faces which address into the list of points.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Addressing for all faces on surface of mesh. Can either be read from polyMesh or from triSurface....
The coupledPolyPatch is an abstract base class for patches that couple regions of the computational d...
virtual transformType transform() const
Type of transform.
virtual const tensorField & reverseT() const
Return neighbour-cell transformation tensor.
virtual bool separated() const
Are the planes separated.
virtual bool parallel() const
Are the cyclic planes parallel.
virtual bool owner() const =0
Does this side own the patch ?
virtual const boolList & collocated() const
Are faces collocated. Either size 0,1 or length of patch.
virtual const vectorField & separation() const
If the planes are separated the separation vector.
virtual void transformPosition(pointField &) const =0
Transform a patch-based position from other side to this side.
virtual const tensorField & forwardT() const
Return face transformation tensor.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
label index() const noexcept
The index of this patch in the boundaryMesh.
const word & name() const noexcept
The patch name.
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO.
A patch is a list of labels that address the faces in the global face list.
label start() const
Return start label of this patch in the polyMesh face list.
Neighbour processor patch.
virtual autoPtr< polyPatch > clone(const polyBoundaryMesh &bm) const
Construct and return a clone, resetting the boundary mesh.
virtual void updateMesh(PstreamBuffers &)
Update of the patch topology.
TypeName("processorCyclic")
Runtime type information.
virtual transformType transform() const
Type of transform.
void initMovePoints(PstreamBuffers &, const pointField &)
Initialise the patches for moving points.
static word newName(const word &cyclicPolyPatchName, const label myProcNo, const label neighbProcNo)
Return the name of a processorCyclicPolyPatch.
virtual bool owner() const
Does this side own the patch ?
static labelList patchIDs(const word &cyclicPolyPatchName, const polyBoundaryMesh &bm)
Return the indices of a processorCyclicPolyPatchs.
virtual ~processorCyclicPolyPatch()
virtual const tensorField & reverseT() const
Return neighbour-cell transformation tensor.
const coupledPolyPatch & referPatch() const
void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
virtual void initOrder(PstreamBuffers &, const primitivePatch &) const
Initialize ordering for primitivePatch. Does not.
virtual bool separated() const
Are the planes separated.
virtual bool parallel() const
Are the cyclic planes parallel.
virtual void transformPosition(point &l, const label facei) const
Transform a patch-based position from other side to this side.
label referPatchID() const
Referring patchID.
virtual int tag() const
Return message tag to use for communication.
virtual const boolList & collocated() const
Are faces collocated. Either size 0,1 or length of patch.
virtual bool order(PstreamBuffers &, const primitivePatch &, labelList &faceMap, labelList &rotation) const
Return new ordering for primitivePatch.
void movePoints(PstreamBuffers &, const pointField &)
Correct patches after moving points.
virtual void transformPosition(pointField &l) const
Transform a patch-based position from other side to this side.
virtual void initUpdateMesh(PstreamBuffers &)
Initialise the update of the patch topology.
virtual const vectorField & separation() const
If the planes are separated the separation vector.
const word & referPatchName() const
Return name of originating cyclicPolyPatch patch.
virtual const tensorField & forwardT() const
Return face transformation tensor.
Neighbour processor patch.
int myProcNo() const
Return processor number.
int neighbProcNo() const
Return neighbour processor number.
A class for handling words, derived from Foam::string.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
Ostream & endl(Ostream &os)
Add newline and flush stream.
errorManipArg< error, int > exit(error &err, const int errNo=1)
UList< label > labelUList
A UList of labels.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.