Go to the documentation of this file.
60 #ifndef cyclicACMIPolyPatch_H
61 #define cyclicACMIPolyPatch_H
89 const word nonOverlapPatchName_;
92 mutable label nonOverlapPatchID_;
126 mutable label prevTimeIndex_;
197 const word& patchType,
199 const word& defaultAMIMethod = faceAreaWeightAMI::typeName
209 const word& patchType,
210 const word& defaultAMIMethod = faceAreaWeightAMI::typeName
228 const label newStart,
229 const word& nbrPatchName,
const Field< point_type > & points() const noexcept
Return reference to global points.
virtual void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
virtual void movePoints(PstreamBuffers &pBufs, const pointField &)
Correct patches after moving points.
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.
bool upToDate(const regIOobject &) const
Return true if given object is up to date with *this.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
static scalar tolerance()
Overlap tolerance.
void setUpToDate(regIOobject &) const
Set object up to date with *this.
virtual void resetAMI() const
Reset the AMI interpolator, use current patch points.
virtual void newInternalProcFaces(label &, label &) const
Return number of new internal sub-faces and new proc faces.
const word & nonOverlapPatchName() const
Non-overlapping patch name.
TypeName("cyclicACMI")
Runtime type information.
virtual ~cyclicACMIPolyPatch()=default
Destructor.
virtual void updateMesh(PstreamBuffers &)
Update of the patch topology.
virtual void write(Ostream &) const
Write the polyPatch data as a dictionary.
A patch is a list of labels that address the faces in the global face list.
virtual const scalarField & srcMask() const
Return the mask/weighting for the source patch.
virtual void clearGeom()
Clear geometry.
cyclicACMIPolyPatch(const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm, const word &patchType, const transformType transform=UNKNOWN, const word &defaultAMIMethod=faceAreaWeightAMI::typeName)
Construct from (base coupled patch) components.
virtual bool order(PstreamBuffers &, const primitivePatch &, labelList &faceMap, labelList &rotation) const
Return new ordering for primitivePatch.
virtual void initOrder(PstreamBuffers &, const primitivePatch &) const
Initialize ordering for primitivePatch. Does not.
virtual autoPtr< polyPatch > clone(const polyBoundaryMesh &bm) const
Construct and return a clone, resetting the boundary mesh.
virtual label nonOverlapPatchID() const
Non-overlapping patch ID.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
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.
virtual void initMovePoints(PstreamBuffers &pBufs, const pointField &)
Initialise the patches for moving points.
virtual void scalePatchFaceAreas()
Scale patch face areas to maintain physical area.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
virtual const cyclicACMIPolyPatch & neighbPatch() const
Return a reference to the neighbour patch.
virtual refPtr< labelListList > mapCollocatedFaces() const
Return collocated faces.
virtual bool updateAreas() const
Update the AMI and patch areas. Return true if anything.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
const word & neighbPatchName() const
Neighbour patch name.
const polyPatch & nonOverlapPatch() const
Return a const reference to the non-overlapping patch.
const word & name() const noexcept
The patch name.
virtual const scalarField & tgtMask() const
Return the mask/weighting for the target patch.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Cyclic patch for Arbitrarily Coupled Mesh Interface (ACMI).
const scalarField & mask() const
Mask field where 1 = overlap(coupled), 0 = no-overlap.
A class for managing references or pointers (no reference counting)
A list of faces which address into the list of points.
virtual void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
void reportCoverage(const word &name, const scalarField &weightSum) const
virtual void initUpdateMesh(PstreamBuffers &)
Initialise the update of the patch topology.
Cyclic patch for Arbitrary Mesh Interface (AMI)