35 #ifndef cyclicAMIPolyPatch_H 36 #define cyclicAMIPolyPatch_H 180 const word& patchType,
191 const word& patchType
205 const label newStart,
206 const word& nbrPatchName
296 virtual bool owner()
const;
366 template<
class Type,
class CombineOp>
370 const CombineOp& cop,
virtual bool owner() const
Does this side own the patch?
virtual void updateMesh(PstreamBuffers &)
Update of the patch topology.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
bool rotationAngleDefined_
Flag to show whether the rotation angle is defined.
const autoPtr< searchableSurface > & surfPtr() const
Return a reference to the projection surface.
Cyclic patch for Arbitrary Mesh Interface (AMI)
const point & rotationCentre() const
Point on axis of rotation for rotational cyclic AMI.
virtual void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
virtual void reverseTransformPosition(point &l, const label faceI) const
Transform a patch-based position from this side to nbr side.
const word & name() const
Return name.
virtual void clearGeom()
Clear geometry.
virtual void initMovePoints(PstreamBuffers &pBufs, const pointField &)
Initialise the patches for moving points.
vector separationVector_
Translation vector.
virtual void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
autoPtr< AMIPatchToPatchInterpolation > AMIPtr_
AMI interpolation class.
Base class for Arbitrary Mesh Interface (AMI) methods.
virtual void initUpdateMesh(PstreamBuffers &)
Initialise the update of the patch topology.
cyclicAMIPolyPatch(const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm, const word &patchType, const transformType transform=UNKNOWN)
Construct from (base couped patch) components.
virtual ~cyclicAMIPolyPatch()
Destructor.
TypeName("cyclicAMI")
Runtime type information.
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.
virtual void movePoints(PstreamBuffers &pBufs, const pointField &)
Correct patches after moving points.
autoPtr< searchableSurface > surfPtr_
Projection surface.
virtual label neighbPatchID() const
Neighbour patch ID.
bool AMIRequireMatch_
Flag to indicate that patches should match/overlap.
A list of keyword definitions, which are a keyword followed by any number of values (e...
word nbrPatchName_
Name of other half.
scalar rotationAngle_
Rotation angle.
interpolationMethod
Enumeration specifying interpolation method.
point rotationCentre_
Point on axis of rotation for rotational cyclics.
virtual const cyclicAMIPolyPatch & neighbPatch() const
Return a reference to the neighbour patch.
virtual void transformPosition(pointField &) const
Transform patch-based positions from nbr side to this side.
const coupleGroupIdentifier coupleGroup_
Optional patchGroup to find neighbPatch.
virtual void calcTransforms()
Recalculate the transformation tensors.
Interpolation class dealing with transfer of data between two primitive patches with an arbitrary mes...
const scalar AMILowWeightCorrection_
Low weight correction threshold for AMI.
Encapsulates using patchGroups to specify coupled patch.
label pointFace(const label faceI, const vector &n, point &p) const
Return face index on neighbour patch which shares point p.
virtual bool coupled() const
Is patch 'coupled'. Note that on AMI the geometry is not.
tmp< Field< Type > > interpolate(const Field< Type > &fld, const UList< Type > &defaultValues=UList< Type >()) const
Interpolate field.
virtual autoPtr< polyPatch > clone(const polyBoundaryMesh &bm) const
Construct and return a clone, resetting the boundary mesh.
gmvFile<< "tracers "<< particles.size()<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){gmvFile<< iter().position().x()<< ' ';}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){gmvFile<< iter().position().y()<< ' ';}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){gmvFile<< iter().position().z()<< ' ';}gmvFile<< nl;forAll(lagrangianScalarNames, i){const word &name=lagrangianScalarNames[i];IOField< scalar > fld(IOobject( name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE ))
A list of faces which address into the list of points.
bool applyLowWeightCorrection() const
Return true if applying the low weight correction.
label start() const
Return start label of this patch in the polyMesh face list.
const vector & separationVector() const
Translation vector for translational cyclic AMI.
const AMIPatchToPatchInterpolation & AMI() const
Return a reference to the AMI interpolator.
virtual void resetAMI(const AMIPatchToPatchInterpolation::interpolationMethod &AMIMethod=AMIPatchToPatchInterpolation::imFaceAreaWeight) const
Reset the AMI interpolator.
virtual transformType transform() const
Type of transform.
const bool AMIReverse_
Flag to indicate that slave patch should be reversed for AMI.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
virtual void initOrder(PstreamBuffers &, const primitivePatch &) const
Initialize ordering for primitivePatch. Does not.
label nbrPatchID_
Index of other half.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
virtual void reverseTransformDirection(vector &d, const label faceI) const
Transform a patch-based direction from this side to nbr side.
const vector & rotationAxis() const
Axis of rotation for rotational cyclic AMI.
virtual void write(Ostream &) const
Write the polyPatch data as a dictionary.
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...
A class for managing temporary objects.
vector rotationAxis_
Axis of rotation for rotational cyclics.
const dictionary surfDict_
Dictionary used during projection surface construction.
virtual bool order(PstreamBuffers &, const primitivePatch &, labelList &faceMap, labelList &rotation) const
Return new ordering for primitivePatch.
const word & neighbPatchName() const
Neighbour patch name.