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 void clearGeom()
Clear geometry.
virtual bool order(PstreamBuffers &, const primitivePatch &, labelList &faceMap, labelList &rotation) const
Return new ordering for primitivePatch.
vector separationVector_
Translation vector.
virtual void initOrder(PstreamBuffers &, const primitivePatch &) const
Initialize ordering for primitivePatch. Does not.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
bool AMIRequireMatch_
Flag to indicate that patches should match/overlap.
virtual void initUpdateMesh(PstreamBuffers &)
Initialise the update of the patch topology.
virtual void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
A list of keyword definitions, which are a keyword followed by any number of values (e...
virtual void resetAMI(const AMIPatchToPatchInterpolation::interpolationMethod &AMIMethod=AMIPatchToPatchInterpolation::imFaceAreaWeight) const
Reset the AMI interpolator.
virtual void calcTransforms()
Recalculate the transformation tensors.
bool applyLowWeightCorrection() const
Return true if applying the low weight correction.
const vector & rotationAxis() const
Axis of rotation for rotational cyclic AMI.
const point & rotationCentre() const
Point on axis of rotation for rotational cyclic AMI.
The coupledPolyPatch is an abstract base class for patches that couple regions of the computational d...
vector rotationAxis_
Axis of rotation for rotational cyclics.
bool rotationAngleDefined_
Flag to show whether the rotation angle is defined.
virtual transformType transform() const
Type of transform.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
interpolationMethod
Enumeration specifying interpolation method.
const dictionary surfDict_
Dictionary used during projection surface construction.
virtual void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
label nbrPatchID_
Index of other half.
const coupleGroupIdentifier coupleGroup_
Optional patchGroup to find neighbPatch.
A list of faces which address into the list of points.
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 void reverseTransformPosition(point &l, const label facei) const
Transform a patch-based position from this side to nbr side.
const bool AMIReverse_
Flag to indicate that slave patch should be reversed for AMI.
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))
virtual void write(Ostream &) const
Write the polyPatch data as a dictionary.
label start() const
Return start label of this patch in the polyMesh face list.
A class for handling words, derived from string.
const scalar AMILowWeightCorrection_
Low weight correction threshold for AMI.
const autoPtr< searchableSurface > & surfPtr() const
Return a reference to the projection surface.
virtual label neighbPatchID() const
Neighbour patch ID.
autoPtr< AMIPatchToPatchInterpolation > AMIPtr_
AMI interpolation class.
point rotationCentre_
Point on axis of rotation for rotational cyclics.
virtual void updateMesh(PstreamBuffers &)
Update of the patch topology.
virtual bool owner() const
Does this side own the patch?
Cyclic patch for Arbitrary Mesh Interface (AMI)
const word & name() const
Return name.
virtual void transformPosition(pointField &) const
Transform patch-based positions from nbr side to this side.
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...
Base class for Arbitrary Mesh Interface (AMI) methods.
virtual ~cyclicAMIPolyPatch()
Destructor.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
virtual autoPtr< polyPatch > clone(const polyBoundaryMesh &bm) const
Construct and return a clone, resetting the boundary mesh.
virtual bool coupled() const
Is patch 'coupled'. Note that on AMI the geometry is not.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
tmp< Field< Type > > interpolate(const Field< Type > &fld, const UList< Type > &defaultValues=UList< Type >()) const
Interpolate field.
TypeName("cyclicAMI")
Runtime type information.
virtual void reverseTransformDirection(vector &d, const label facei) const
Transform a patch-based direction from this side to nbr side.
label pointFace(const label facei, const vector &n, point &p) const
Return face index on neighbour patch which shares point p.
const vector & separationVector() const
Translation vector for translational cyclic AMI.
Interpolation class dealing with transfer of data between two primitive patches with an arbitrary mes...
const AMIPatchToPatchInterpolation & AMI() const
Return a reference to the AMI interpolator.
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.
const word & neighbPatchName() const
Neighbour patch name.
word nbrPatchName_
Name of other half.
label index() const
Return the index of this patch in the boundaryMesh.
scalar rotationAngle_
Rotation angle.
virtual const cyclicAMIPolyPatch & neighbPatch() const
Return a reference to the neighbour patch.
virtual void movePoints(PstreamBuffers &pBufs, const pointField &)
Correct patches after moving points.
virtual void initMovePoints(PstreamBuffers &pBufs, const pointField &)
Initialise the patches for moving points.
autoPtr< searchableSurface > surfPtr_
Projection surface.