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