46 #ifndef cyclicPolyPatch_H 47 #define cyclicPolyPatch_H 71 mutable word neighbPatchName_;
77 mutable label neighbPatchID_;
85 point rotationCentre_;
125 void getCentresAndAnchors
206 const word& patchType,
232 const word& patchType,
247 const label newStart,
320 virtual bool owner()
const 333 return refCast<const cyclicPolyPatch>(pp);
360 if (offset >= 0 && offset < size())
362 return neighbStart+offset;
367 <<
"Face " << facei <<
" not in patch " <<
name()
376 return rotationAxis_;
382 return rotationCentre_;
388 return separationVector_;
virtual void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
virtual void write(Ostream &) const
Write the polyPatch data as a dictionary.
Neighbour processor patch.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const word & name() const
Return name.
errorManipArg< error, int > exit(error &err, const int errNo=1)
const edgeList & coupledPoints() const
Return connected points (from patch local to neighbour patch local)
A list of keyword definitions, which are a keyword followed by any number of values (e...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const polyBoundaryMesh & boundaryMesh() const
Return boundaryMesh reference.
virtual void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
virtual void updateMesh(PstreamBuffers &)
Update of the patch topology.
virtual void initMovePoints(PstreamBuffers &, const pointField &)
Initialise the patches for moving points.
cyclicPolyPatch(const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm, const word &patchType, const transformType transform=UNKNOWN)
Construct from components.
The coupledPolyPatch is an abstract base class for patches that couple regions of the computational d...
virtual autoPtr< PrimitivePatch< FaceList, PointField > > clone() const
Construct and return a clone.
const edgeList & coupledEdges() const
Return connected edges (from patch local to neighbour patch local).
virtual bool order(PstreamBuffers &, const primitivePatch &, labelList &faceMap, labelList &rotation) const
Return new ordering for primitivePatch.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
const vector & rotationAxis() const
Axis of rotation for rotational cyclics.
virtual void initUpdateMesh(PstreamBuffers &)
Initialise the update of the patch topology.
A list of faces which address into the list of points.
virtual bool owner() const
Does this side own the patch ?
const point & rotationCentre() const
Point on axis of rotation for rotational cyclics.
TypeName("cyclic")
Runtime type information.
A class for handling words, derived from string.
virtual void movePoints(PstreamBuffers &, const pointField &)
Correct patches after moving points.
Encapsulates using patchGroups to specify coupled patch.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Buffers for inter-processor communications streams (UOPstream, UIPstream).
const vector & separationVector() const
Translation vector for translational cyclics.
virtual bool neighbour() const
Does the coupled side own the patch ?
virtual void transformPosition(pointField &l) const
Transform a patch-based position from other side to this side.
virtual ~cyclicPolyPatch()
Destructor.
virtual label neighbPatchID() const
Neighbour patchID.
label index() const
Return the index of this patch in the boundaryMesh.
const word & neighbPatchName() const
Neighbour patch name.
label start() const
Return start label of this patch in the polyMesh face list.
virtual transformType transform() const
Type of transform.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
virtual void initOrder(PstreamBuffers &, const primitivePatch &) const
Initialize ordering for primitivePatch. Does not.
label transformGlobalFace(const label facei) const
A patch is a list of labels that address the faces in the global face list.
const cyclicPolyPatch & neighbPatch() const
virtual void calcTransforms()
Recalculate the transformation tensors.