49#ifndef cyclicPolyPatch_H
50#define cyclicPolyPatch_H
74 mutable word neighbPatchName_;
80 mutable label neighbPatchID_;
88 point rotationCentre_;
128 void getCentresAndAnchors
209 const word& patchType,
235 const word& patchType
257 const label newStart,
333 newFaces = this->size();
334 newProcFaces =
neighbPatch().size() - this->size();
373 virtual bool owner()
const
386 return refCast<const cyclicPolyPatch>(pp);
415 return neighbStart+
offset;
420 <<
"Face " << facei <<
" not in patch " <<
name()
429 return rotationAxis_;
435 return rotationCentre_;
441 return separationVector_;
void setSize(const label n)
Alias for resize()
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....
Encapsulates using "patchGroups" to specify coupled patch.
The coupledPolyPatch is an abstract base class for patches that couple regions of the computational d...
virtual transformType transform() const
Type of transform.
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.
const point & rotationCentre() const
Point on axis of rotation for rotational cyclics.
const word & neighbPatchName() const
Neighbour patch name.
virtual void initMovePoints(PstreamBuffers &, const pointField &)
Initialise the patches for moving points.
virtual label neighbPolyPatchID() const
Return nbr patchID.
virtual bool owner() const
Does this side own the patch ?
virtual void newInternalProcFaces(label &newFaces, label &newProcFaces) const
Return number of new internal of this polyPatch faces.
const vector & rotationAxis() const
Axis of rotation for rotational cyclics.
virtual bool masterImplicit() const
Return implicit master.
const edgeList & coupledEdges() const
Return connected edges (from patch local to neighbour patch local).
virtual void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
const edgeList & coupledPoints() const
Return connected points (from patch local to neighbour patch local)
virtual void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
virtual void initOrder(PstreamBuffers &, const primitivePatch &) const
Initialize ordering for primitivePatch. Does not.
const vector & separationVector() const
Translation vector for translational cyclics.
virtual const labelUList & nbrCells() const
Return nbrCells.
virtual refPtr< labelListList > mapCollocatedFaces() const
Return mapped collocated faces.
label transformGlobalFace(const label facei) const
virtual bool order(PstreamBuffers &, const primitivePatch &, labelList &faceMap, labelList &rotation) const
Return new ordering for primitivePatch.
virtual void movePoints(PstreamBuffers &, const pointField &)
Correct patches after moving points.
const cyclicPolyPatch & neighbPatch() const
TypeName("cyclic")
Runtime type information.
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 ~cyclicPolyPatch()
Destructor.
virtual bool neighbour() const
Does the coupled side own the patch ?
virtual void calcTransforms()
Recalculate the transformation tensors.
virtual label neighbPatchID() const
Neighbour patchID.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Smooth ATC in cells next to a set of patches supplied by type.
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 offset() const
The offset where this patch starts in the boundary face list.
label start() const
Return start label of this patch in the polyMesh face list.
const vectorField::subField faceCentres() const
Return face centres.
const labelUList & faceCells() const
Return face-cell addressing.
Neighbour processor patch.
A class for managing references or pointers (no reference counting)
A class for handling words, derived from Foam::string.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
List< labelList > labelListList
A List of labelList.
errorManipArg< error, int > exit(error &err, const int errNo=1)
UList< label > labelUList
A UList of labels.
#define forAll(list, i)
Loop across all elements in list.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.