Go to the documentation of this file.
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
virtual const tensorField & reverseT() const
Return neighbour-cell transformation tensor.
virtual int tag() const
Return message tag to use for communication.
virtual const vectorField & separation() const
If the planes are separated the separation vector.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
A class for handling words, derived from Foam::string.
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO.
Neighbour processor patch.
virtual void initUpdateMesh(PstreamBuffers &)
Initialise the update of the patch topology.
virtual const tensorField & forwardT() const
Return face transformation tensor.
virtual void initOrder(PstreamBuffers &, const primitivePatch &) const
Initialize ordering for primitivePatch. Does not.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
virtual const tensorField & reverseT() const
Return neighbour-cell transformation tensor.
virtual bool order(PstreamBuffers &, const primitivePatch &, labelList &faceMap, labelList &rotation) const
Return new ordering for primitivePatch.
int neighbProcNo() const
Return neighbour processor number.
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.
Ostream & endl(Ostream &os)
Add newline and flush stream.
The coupledPolyPatch is an abstract base class for patches that couple regions of the computational d...
virtual void transformPosition(point &l, const label facei) const
Transform a patch-based position from other side to this side.
virtual bool owner() const =0
Does this side own the patch ?
wordList names() const
Return a list of patch names.
void initMovePoints(PstreamBuffers &, const pointField &)
Initialise the patches for moving points.
virtual bool parallel() const
Are the cyclic planes parallel.
void movePoints(PstreamBuffers &, const pointField &)
Correct patches after moving points.
processorCyclicPolyPatch(const label size, const label start, const label index, const polyBoundaryMesh &bm, const int myProcNo, const int neighbProcNo, const word &referPatchName, const transformType transform=UNKNOWN, const word &patchType=typeName)
Construct from components.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
virtual bool separated() const
Are the planes separated.
const polyBoundaryMesh & boundaryMesh() const
Return boundaryMesh reference.
A patch is a list of labels that address the faces in the global face list.
label referPatchID() const
Referring patchID.
Neighbour processor patch.
label findPatchID(const word &patchName, const bool allowNotFound=true) const
Find patch index given a name, return -1 if not found.
const coupledPolyPatch & referPatch() const
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
virtual bool owner() const
Does this side own the patch ?
label index() const noexcept
The index of this patch in the boundaryMesh.
label start() const
Return start label of this patch in the polyMesh face list.
virtual transformType transform() const
Type of transform.
errorManipArg< error, int > exit(error &err, const int errNo=1)
virtual void write(Ostream &) const
Write the polyPatch data as a dictionary.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
static labelList patchIDs(const word &cyclicPolyPatchName, const polyBoundaryMesh &bm)
Return the indices of a processorCyclicPolyPatchs.
virtual transformType transform() const
Type of transform.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
virtual bool separated() const
Are the planes separated.
const word & referPatchName() const
Return name of originating cyclicPolyPatch patch.
virtual void transformPosition(pointField &) const =0
Transform a patch-based position from other side to this side.
virtual void updateMesh(PstreamBuffers &)
Update of the patch topology.
void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
virtual void transformPosition(pointField &l) const
Transform a patch-based position from other side to this side.
virtual ~processorCyclicPolyPatch()
virtual autoPtr< polyPatch > clone(const polyBoundaryMesh &bm) const
Construct and return a clone, resetting the boundary mesh.
virtual const tensorField & forwardT() const
Return face transformation tensor.
virtual bool parallel() const
Are the cyclic planes parallel.
const word & name() const noexcept
The patch name.
int myProcNo() const
Return processor number.
virtual const boolList & collocated() const
Are faces collocated. Either size 0,1 or length of patch.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
static word newName(const word &cyclicPolyPatchName, const label myProcNo, const label neighbProcNo)
Return the name of a processorCyclicPolyPatch.
void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
TypeName("processorCyclic")
Runtime type information.
A list of faces which address into the list of points.