50#ifndef cyclicAMIPolyPatch_H
51#define cyclicAMIPolyPatch_H
240 const word& patchType,
252 const word& patchType,
267 const label newStart,
268 const word& nbrPatchName
412 virtual bool owner()
const;
505 template<
class Type,
class CombineOp>
509 const CombineOp& cop,
Info<< nl<< "Wrote faMesh in vtk format: "<< writer.output().name()<< nl;}{ vtk::lineWriter writer(aMesh.points(), aMesh.edges(), fileName(aMesh.mesh().time().globalPath()/"finiteArea-edges"));writer.writeGeometry();writer.beginCellData(4);writer.writeProcIDs();{ Field< scalar > fld(faMeshTools::flattenEdgeField(aMesh.magLe(), true))
Interpolation class dealing with transfer of data between two primitive patches with an arbitrary mes...
const labelListList & srcAddress() const
Return const access to source patch addressing.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A list of faces which address into the list of points.
const Field< point_type > & points() const noexcept
Return reference to global points.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Encapsulates using "patchGroups" to specify coupled patch.
The coupledPolyPatch is an abstract base class for patches that couple regions of the computational d...
virtual transformType transform() const
Type of transform.
Cyclic patch for Arbitrary Mesh Interface (AMI)
scalar rotationAngle_
Rotation angle.
virtual autoPtr< polyPatch > clone(const polyBoundaryMesh &bm) const
Construct and return a clone, resetting the boundary mesh.
vectorField & faceAreas0() const
Return access to the initial face areas.
virtual void updateMesh(PstreamBuffers &)
Update of the patch topology.
vector separationVector_
Translation vector.
word nbrPatchName_
Name of other half.
autoPtr< coordSystem::cylindrical > cylindricalCS() const
Create a coordinate system from the periodic patch (or nullptr)
virtual void resetAMI() const
Reset the AMI interpolator, use current patch points.
bool createAMIFaces_
Flag to indicate that new AMI faces will created.
virtual void initMovePoints(PstreamBuffers &pBufs, const pointField &)
Initialise the patches for moving points.
label pointFace(const label facei, const vector &n, point &p) const
const scalarField & weightsSum() const
Helper function to return the weights sum.
const word & neighbPatchName() const
Neighbour patch name.
const scalarListList & weights() const
Helper function to return the weights.
virtual bool owner() const
Does this side own the patch?
autoPtr< searchableSurface > surfPtr_
Projection surface.
virtual bool addAMIFaces(polyTopoChange &topoChange)
Collect faces to add in the topoChange container.
const scalar fraction_
Particle displacement fraction accross AMI.
virtual label neighbPolyPatchID() const
Return nbr patch ID.
bool canResetAMI() const
Flag to indicate whether the AMI can be reset.
vectorField faceCentres0_
Temporary storage for AMI face centres.
virtual bool coupled() const
const vector & separationVector() const
Translation vector for translational cyclic AMI.
virtual bool masterImplicit() const
Return implicit master.
virtual void restoreScaledGeometry()
label periodicPatchID_
Periodic patch.
virtual void clearGeom()
Clear geometry.
scalar fraction() const
Particle fraction increase between AMI pathces.
virtual bool removeAMIFaces(polyTopoChange &topoChange)
Collect faces to remove in the topoChange container.
virtual bool setTopology(polyTopoChange &topoChange)
Set topology changes in the polyTopoChange object.
virtual void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
const dictionary surfDict_
Dictionary used during projection surface construction.
virtual void movePoints(PstreamBuffers &pBufs, const pointField &)
Correct patches after moving points.
virtual void newInternalProcFaces(label &, label &) const
Return number of new internal of this polyPatch faces.
virtual void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
virtual ~cyclicAMIPolyPatch()=default
Destructor.
vectorField faceAreas0_
Temporary storage for AMI face areas.
virtual void initOrder(PstreamBuffers &, const primitivePatch &) const
virtual void reverseTransformDirection(vector &d, const label facei) const
Transform a patch-based direction from this side to.
tmp< Field< Type > > interpolateUntransformed(const Field< Type > &fld, const UList< Type > &defaultValues) const
Interpolate without periodic.
virtual const labelUList & nbrCells() const
Return nbrCells.
const point & rotationCentre() const
Point on axis of rotation for rotational cyclic AMI.
const vector & rotationAxis() const
Axis of rotation for rotational cyclic AMI.
const AMIPatchToPatchInterpolation & AMI() const
Return a reference to the AMI interpolator.
point rotationCentre_
Point on axis of rotation for rotational cyclics.
virtual bool changeTopology() const
Return true if this patch changes the mesh topology.
virtual const cyclicAMIPolyPatch & neighbPatch() const
Return a reference to the neighbour patch.
virtual void setAMIFaces()
Set properties of newly inserted faces after topological changes.
labelListList tgtFaceIDs_
word periodicPatchName_
Periodic patch name.
virtual void transformPosition(pointField &) const
Transform patch-based positions from nbr side to this side.
label nbrPatchID_
Index of other half.
virtual refPtr< labelListList > mapCollocatedFaces() const
Return collocated faces map.
labelListList srcFaceIDs_
static const scalar tolerance_
Tolerance used e.g. for area calculations/limits.
TypeName("cyclicAMI")
Runtime type information.
tmp< Field< Type > > interpolate(const Field< Type > &fld, const UList< Type > &defaultValues=UList< Type >()) const
Interpolate field.
const autoPtr< searchableSurface > & surfPtr() const
Create and return pointer to the projection surface.
bool rotationAngleDefined_
Flag to show whether the rotation angle is defined.
virtual bool order(PstreamBuffers &, const primitivePatch &, labelList &faceMap, labelList &rotation) const
Return new ordering for primitivePatch.
vectorField & faceCentres0() const
Return access to the initial face centres.
bool createAMIFaces() const
Return access to the createAMIFaces flag.
virtual void initUpdateMesh(PstreamBuffers &)
Initialise the update of the patch topology.
bool applyLowWeightCorrection() const
Return true if applying the low weight correction.
tmp< Field< Type > > interpolate(const tmp< Field< Type > > &tFld, const UList< Type > &defaultValues=UList< Type >()) const
Interpolate tmp field.
const coupleGroupIdentifier coupleGroup_
Optional patchGroup to find neighbPatch.
bool updatingAMI() const
Return access to the updated flag.
vector rotationAxis_
Axis of rotation for rotational cyclics.
virtual void reverseTransformPosition(point &l, const label facei) const
Transform a patch-based position from this side to nbr side.
autoPtr< AMIPatchToPatchInterpolation > AMIPtr_
AMI interpolation class.
bool moveFaceCentres_
Move face centres (default = no)
label periodicPatchID() const
Periodic patch ID (or -1)
virtual void calcTransforms()
Recalculate the transformation tensors.
virtual label neighbPatchID() const
Neighbour 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.
const word & name() const noexcept
The patch name.
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO.
label start() const
Return start label of this patch in the polyMesh face list.
const vectorField::subField faceCentres() const
Return face centres.
const labelUList & faceCells() const
Return face-cell addressing.
Direct mesh changes based on v1.3 polyTopoChange syntax.
A class for managing references or pointers (no reference counting)
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
List< labelList > labelListList
A List of labelList.
UList< label > labelUList
A UList of labels.
static const char *const typeName
The type name used in ensight case files.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.