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