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
246 const label newStart,
319 virtual bool owner()
const 332 return refCast<const cyclicPolyPatch>(pp);
359 if (offset >= 0 && offset < size())
361 return neighbStart+offset;
367 "cyclicPolyPatch::transformGlobalFace(const label) const" 368 ) <<
"Face " << facei <<
" not in patch " <<
name()
377 return rotationAxis_;
383 return rotationCentre_;
389 return separationVector_;
virtual ~cyclicPolyPatch()
Destructor.
virtual bool neighbour() const
Does the coupled side own the patch ?
virtual void movePoints(PstreamBuffers &, const pointField &)
Correct patches after moving points.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
const vector & separationVector() const
Translation vector for translational cyclics.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
const word & name() const
Return name.
virtual void write(Ostream &) const
Write the polyPatch data as a dictionary.
virtual bool order(PstreamBuffers &, const primitivePatch &, labelList &faceMap, labelList &rotation) const
Return new ordering for primitivePatch.
label index() const
Return the index of this patch in the boundaryMesh.
A class for handling words, derived from string.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
errorManipArg< error, int > exit(error &err, const int errNo=1)
virtual void calcTransforms()
Recalculate the transformation tensors.
const edgeList & coupledEdges() const
Return connected edges (from patch local to neighbour patch local).
const polyBoundaryMesh & boundaryMesh() const
Return boundaryMesh reference.
const word & neighbPatchName() const
Neighbour patch name.
A list of keyword definitions, which are a keyword followed by any number of values (e...
label transformGlobalFace(const label facei) const
virtual void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
A patch is a list of labels that address the faces in the global face list.
virtual void initOrder(PstreamBuffers &, const primitivePatch &) const
Initialize ordering for primitivePatch. Does not.
TypeName("cyclic")
Runtime type information.
const point & rotationCentre() const
Point on axis of rotation for rotational cyclics.
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.
Neighbour processor patch.
Encapsulates using patchGroups to specify coupled patch.
virtual bool owner() const
Does this side own the patch ?
const vector & rotationAxis() const
Axis of rotation for rotational cyclics.
#define FatalErrorIn(functionName)
Report an error message using Foam::FatalError.
A list of faces which address into the list of points.
label start() const
Return start label of this patch in the polyMesh face list.
virtual void updateMesh(PstreamBuffers &)
Update of the patch topology.
virtual transformType transform() const
Type of transform.
const cyclicPolyPatch & neighbPatch() const
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...
virtual void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
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 void initMovePoints(PstreamBuffers &, const pointField &)
Initialise the patches for moving points.
const edgeList & coupledPoints() const
Return connected points (from patch local to neighbour patch local)
The coupledPolyPatch is an abstract base class for patches that couple regions of the computational d...
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
virtual label neighbPatchID() const
Neighbour patchID.
virtual autoPtr< polyPatch > clone(const polyBoundaryMesh &bm) const
Construct and return a clone, resetting the boundary mesh.