38#ifndef advancingFrontAMI_H
39#define advancingFrontAMI_H
71 label calcOverlappingProcs
78 void distributePatches
88 void distributeAndMergePatches
159 bool isCandidate(
const label srcFacei,
const label tgtFacei)
const;
190 const label srcFacei,
192 const label srcFacePti = -1
Interpolation class dealing with transfer of data between two primitive patches with an arbitrary mes...
bool reverseTarget() const
Access to the reverseTarget flag.
bool requireMatch() const
Access to the requireMatch flag.
scalar lowWeightCorrection() const
Threshold weight below which interpolation is deactivated.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
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.
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.
const scalar maxDistance2_
Maximum squared distance.
const primitivePatch & tgtPatch() const
Return const access to the target patch.
pointField extendedTgtPoints_
Extended patch points.
virtual autoPtr< AMIInterpolation > clone() const
Construct and return a clone.
faceList extendedTgtFaces_
Extended patch faces.
bool initialiseWalk(label &srcFacei, label &tgtFacei)
Initialise walk and return true if all ok.
const scalar minCosAngle_
Minimum (cos of) angle. 1 for perfectly matching.
void checkPatches() const
Check AMI patch coupling.
void appendNbrFaces(const label facei, const primitivePatch &patch, const DynamicList< label > &visitedFaces, DynamicList< label > &faceIDs) const
Add faces neighbouring facei to the ID list.
List< DynamicList< face > > srcTris_
Storage for src-side triangle decomposition.
virtual bool calculate(const primitivePatch &srcPatch, const primitivePatch &tgtPatch, const autoPtr< searchableSurface > &surfPtr=nullptr)
Update addressing, weights and (optional) centroids.
bool isCandidate(const label srcFacei, const label tgtFacei) const
Is source/target a valid pair (i.e. not too far/different.
virtual void nonConformalCorrection()
Correction for non-conformal interpolations, e.g. for ACMI.
void createExtendedTgtPatch()
Create a map that extends tgtPatch so that it covers srcPatch.
virtual ~advancingFrontAMI()=default
Destructor.
void writeIntersectionOBJ(const scalar area, const face &f1, const face &f2, const pointField &f1Points, const pointField &f2Points) const
Write triangle intersection to OBJ file.
autoPtr< indexedOctree< treeType > > treePtr_
Octree used to find face seeds.
TypeName("advancingFrontAMI")
Runtime type information.
List< DynamicList< face > > tgtTris_
Storage for tgt-side triangle decomposition.
const primitivePatch & srcPatch() const
Return const access to the source patch.
autoPtr< mapDistribute > extendedTgtMapPtr_
Extended patch map.
const labelList & srcNonOverlap() const
Labels of faces that are not overlapped by any target faces.
labelList extendedTgtFaceIDs_
Extended patch face IDs.
const faceAreaIntersect::triangulationMode triMode_
Face triangulation mode.
autoPtr< primitivePatch > extendedTgtPatchPtr_
Demand-driven extended target mesh (distributed parallel usage)
void triangulatePatch(const primitivePatch &patch, List< DynamicList< face > > &tris, List< scalar > &magSf) const
Helper function to decompose a patch.
label findTargetFace(const label srcFacei, const UList< label > &excludeFaces=UList< label >::null(), const label srcFacePti=-1) const
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
A face is a list of labels corresponding to mesh vertices.
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
Class containing processor-to-processor mapping information.
Standard boundBox with extra functionality for use in octree.
Macro definitions for declaring ClassName(), NamespaceName(), etc.
OBJstream os(runTime.globalPath()/outputName)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.