Base class for Arbitrary Mesh Interface (AMI) methods. More...
#include <advancingFrontAMI.H>


Public Types | |
| enum class | areaNormalisationMode { project , mag } |
| Area normalisation mode. More... | |
Public Member Functions | |
| TypeName ("advancingFrontAMI") | |
| Runtime type information. | |
| advancingFrontAMI (const dictionary &dict, const bool reverseTarget) | |
| Construct from components. | |
| advancingFrontAMI (const bool requireMatch=true, const bool reverseTarget=false, const scalar lowWeightCorrection=-1, const faceAreaIntersect::triangulationMode triMode=faceAreaIntersect::tmMesh) | |
| Construct from components. | |
| advancingFrontAMI (const advancingFrontAMI &ami) | |
| Construct as copy. | |
| virtual autoPtr< AMIInterpolation > | clone () const |
| Construct and return a clone. | |
| virtual | ~advancingFrontAMI ()=default |
| Destructor. | |
| const primitivePatch & | srcPatch () const |
| Return const access to the source patch. | |
| const primitivePatch & | tgtPatch () const |
| Return const access to the target patch. | |
| const labelList & | srcNonOverlap () const |
| Labels of faces that are not overlapped by any target faces. | |
| virtual void | write (Ostream &os) const |
| Write. | |
| Public Member Functions inherited from AMIInterpolation | |
| TypeName ("AMIInterpolation") | |
| Runtime type information. | |
| declareRunTimeSelectionTable (autoPtr, AMIInterpolation, dict,(const dictionary &dict, const bool reverseTarget),(dict, reverseTarget)) | |
| Selection table for dictionary construction. | |
| declareRunTimeSelectionTable (autoPtr, AMIInterpolation, component,(const bool requireMatch, const bool reverseTarget, const scalar lowWeightCorrection),(requireMatch, reverseTarget, lowWeightCorrection)) | |
| Selection table for component-wise construction. | |
| AMIInterpolation (const dictionary &dict, const bool reverseTarget=false) | |
| Construct from dictionary. | |
| AMIInterpolation (const bool requireMatch=true, const bool reverseTarget=false, const scalar lowWeightCorrection=-1) | |
| Construct from components. | |
| AMIInterpolation (const AMIInterpolation &fineAMI, const labelList &sourceRestrictAddressing, const labelList &neighbourRestrictAddressing) | |
| Construct from agglomeration of AMIInterpolation. Agglomeration passed in as new coarse size and addressing from fine from coarse. | |
| AMIInterpolation (const AMIInterpolation &ami) | |
| Construct as copy. | |
| AMIInterpolation (Istream &is) | |
| Construct from Istream. | |
| virtual | ~AMIInterpolation ()=default |
| Destructor. | |
| bool | upToDate () const noexcept |
| Is up-to-date? | |
| bool | upToDate (bool flag) noexcept |
| Set as up-to-date, return the previous value. | |
| const AMICache & | cache () const noexcept |
| Return a reference to the AMI cache. | |
| AMICache & | cache () noexcept |
| bool | distributed () const noexcept |
| Distributed across processors (singlePatchProc == -1). | |
| bool | requireMatch () const noexcept |
| Return the requireMatch flag. | |
| bool | setRequireMatch (bool flag) noexcept |
| Set the require match flag, return the new value. | |
| bool | mustMatchFaces () const |
| Return true if requireMatch and but not lowWeightCorrection. | |
| bool | reverseTarget () const noexcept |
| Access to the reverseTarget flag. | |
| scalar | lowWeightCorrection () const |
| Threshold weight below which interpolation is deactivated. | |
| bool | applyLowWeightCorrection () const |
| Return true if employing a 'lowWeightCorrection'. | |
| label | singlePatchProc () const noexcept |
| The processor holding all faces (both sides), or -1 if distributed. | |
| label | comm () const noexcept |
| Communicator (local or otherwise) for parallel operations. | |
| label | comm (label communicator) noexcept |
| Set (non-local) communicator for parallel operations. | |
| bool | cacheActive () const |
| Return true if caching is active. | |
| const List< scalar > & | srcMagSf () const |
| Return const access to source patch face areas. | |
| List< scalar > & | srcMagSf () |
| Return access to source patch face areas. | |
| const labelListList & | srcAddress () const |
| Return const access to source patch addressing. | |
| labelListList & | srcAddress () |
| Return access to source patch addressing. | |
| const scalarListList & | srcWeights () const |
| Return const access to source patch weights. | |
| scalarListList & | srcWeights () |
| Return access to source patch weights. | |
| const scalarField & | srcWeightsSum () const |
| Return const access to normalisation factor of source patch weights (i.e. the sum before normalisation). | |
| scalarField & | srcWeightsSum () |
| Return access to normalisation factor of source patch weights (i.e. the sum before normalisation). | |
| const pointListList & | srcCentroids () const |
| Return const access to source patch face centroids. | |
| pointListList & | srcCentroids () |
| Return access to source patch face centroids. | |
| const mapDistribute & | srcMap () const |
| Source map - valid only if singlePatchProc = -1 This gets source data into a form to be consumed by tgtAddress, tgtWeights. | |
| const mapDistribute * | hasSrcMap () const noexcept |
| Pointer to the source map (if distributed). Can be checked as a bool. | |
| const List< scalar > & | tgtMagSf () const |
| Return const access to target patch face areas. | |
| List< scalar > & | tgtMagSf () |
| Return access to target patch face areas. | |
| const labelListList & | tgtAddress () const |
| Return const access to target patch addressing. | |
| labelListList & | tgtAddress () |
| Return access to target patch addressing. | |
| const scalarListList & | tgtWeights () const |
| Return const access to target patch weights. | |
| scalarListList & | tgtWeights () |
| Return access to target patch weights. | |
| const scalarField & | tgtWeightsSum () const |
| Return const access to normalisation factor of target patch weights (i.e. the sum before normalisation). | |
| scalarField & | tgtWeightsSum () |
| Return access to normalisation factor of target patch weights (i.e. the sum before normalisation). | |
| const mapDistribute & | tgtMap () const |
| Target map - valid only if singlePatchProc=-1. This gets target data into a form to be consumed by srcAddress, srcWeights. | |
| const mapDistribute * | hasTgtMap () const noexcept |
| Pointer to the target map (if distributed). Can be checked as a bool. | |
| void | reset (autoPtr< mapDistribute > &&srcToTgtMap, autoPtr< mapDistribute > &&tgtToSrcMap, labelListList &&srcAddress, scalarListList &&srcWeights, labelListList &&tgtAddress, scalarListList &&tgtWeights, const label singlePatchProc) |
| Set the maps, addresses and weights from an external source. | |
| void | append (const primitivePatch &srcPatch, const primitivePatch &tgtPatch) |
| Append additional addressing and weights. | |
| void | normaliseWeights (const bool conformal, const bool output) |
| Normalise the weights. | |
| template<class Type> | |
| void | weightedSum (const bool toSource, const UList< Type > &fld, List< Type > &result, const UList< Type > &defaultValues) const |
| Weighted sum of contributions (includes caching+interp) (for primitive types only). | |
| template<class Type, class CombineOp, class InterpolateOp> | |
| void | interpolate (const bool toSource, const UList< Type > &fld, const CombineOp &cop, const InterpolateOp &iop, List< Type > &result, const UList< Type > &defaultValues) const |
| Weighted sum of (potentially distributed) contributions and apply caching+interpolation. Note: iop operates on single Type only. | |
| template<class Type, class CombineOp> | |
| void | interpolateToTarget (const UList< Type > &fld, const CombineOp &cop, List< Type > &result, const UList< Type > &defaultValues=UList< Type >::null()) const |
| Interpolate from source to target with supplied op to combine existing value with remote value and weight. | |
| template<class Type, class CombineOp> | |
| void | interpolateToSource (const UList< Type > &fld, const CombineOp &cop, List< Type > &result, const UList< Type > &defaultValues=UList< Type >::null()) const |
| Interpolate from target to source with supplied op to combine existing value with remote value and weight. | |
| template<class Type, class CombineOp> | |
| tmp< Field< Type > > | interpolateToSource (const Field< Type > &fld, const CombineOp &cop, const UList< Type > &defaultValues=UList< Type >::null()) const |
| Interpolate from target to source with supplied op. | |
| template<class Type, class CombineOp> | |
| tmp< Field< Type > > | interpolateToSource (const tmp< Field< Type > > &tFld, const CombineOp &cop, const UList< Type > &defaultValues=UList< Type >::null()) const |
| Interpolate from target tmp field to source with supplied op. | |
| template<class Type, class CombineOp> | |
| tmp< Field< Type > > | interpolateToTarget (const Field< Type > &fld, const CombineOp &cop, const UList< Type > &defaultValues=UList< Type >::null()) const |
| Interpolate from source to target with supplied op. | |
| template<class Type, class CombineOp> | |
| tmp< Field< Type > > | interpolateToTarget (const tmp< Field< Type > > &tFld, const CombineOp &cop, const UList< Type > &defaultValues=UList< Type >::null()) const |
| Interpolate from source tmp field to target with supplied op. | |
| template<class Type> | |
| tmp< Field< Type > > | interpolateToSource (const Field< Type > &fld, const UList< Type > &defaultValues=UList< Type >::null()) const |
| Interpolate from target to source. | |
| template<class Type> | |
| tmp< Field< Type > > | interpolateToSource (const tmp< Field< Type > > &tFld, const UList< Type > &defaultValues=UList< Type >::null()) const |
| Interpolate from target tmp field. | |
| template<class Type> | |
| tmp< Field< Type > > | interpolateToTarget (const Field< Type > &fld, const UList< Type > &defaultValues=UList< Type >::null()) const |
| Interpolate from source to target. | |
| template<class Type> | |
| tmp< Field< Type > > | interpolateToTarget (const tmp< Field< Type > > &tFld, const UList< Type > &defaultValues=UList< Type >::null()) const |
| Interpolate from source tmp field. | |
| label | srcPointFace (const primitivePatch &srcPatch, const primitivePatch &tgtPatch, const vector &n, const label tgtFacei, point &tgtPoint) const |
| Return source patch face index of point on target patch face. | |
| label | tgtPointFace (const primitivePatch &srcPatch, const primitivePatch &tgtPatch, const vector &n, const label srcFacei, point &srcPoint) const |
| Return target patch face index of point on source patch face. | |
| bool | restoreCache (const point &refPt) |
| Restore AMI weights and addressing from the cache. | |
| void | addToCache (const point &refPt) |
| Add AMI weights and addressing to the cache. | |
| bool | checkSymmetricWeights (const bool log) const |
| Check if src addresses are present in tgt addresses and viceversa. | |
| void | writeFaceConnectivity (const primitivePatch &srcPatch, const primitivePatch &tgtPatch, const labelListList &srcAddress) const |
| Write face connectivity as OBJ file. | |
| virtual bool | writeData (Ostream &os) const |
| Write AMI raw. | |
| bool & | upToDate () noexcept |
| Non-const access to the up-to-date flag. | |
| template<class Type, class CombineOp> | |
| Foam::tmp< Foam::Field< Type > > | interpolateToSource (const Field< Type > &fld, const CombineOp &cop, const UList< Type > &defaultValues) const |
| template<class Type, class CombineOp> | |
| Foam::tmp< Foam::Field< Type > > | interpolateToSource (const tmp< Field< Type > > &tFld, const CombineOp &cop, const UList< Type > &defaultValues) const |
| template<class Type, class CombineOp> | |
| Foam::tmp< Foam::Field< Type > > | interpolateToTarget (const Field< Type > &fld, const CombineOp &cop, const UList< Type > &defaultValues) const |
| template<class Type, class CombineOp> | |
| Foam::tmp< Foam::Field< Type > > | interpolateToTarget (const tmp< Field< Type > > &tFld, const CombineOp &cop, const UList< Type > &defaultValues) const |
| template<class Type> | |
| Foam::tmp< Foam::Field< Type > > | interpolateToSource (const Field< Type > &fld, const UList< Type > &defaultValues) const |
| template<class Type> | |
| Foam::tmp< Foam::Field< Type > > | interpolateToSource (const tmp< Field< Type > > &tFld, const UList< Type > &defaultValues) const |
| template<class Type> | |
| Foam::tmp< Foam::Field< Type > > | interpolateToTarget (const Field< Type > &fld, const UList< Type > &defaultValues) const |
| template<class Type> | |
| Foam::tmp< Foam::Field< Type > > | interpolateToTarget (const tmp< Field< Type > > &tFld, const UList< Type > &defaultValues) const |
Static Public Attributes | |
| static const Enum< areaNormalisationMode > | areaNormalisationModeNames_ |
| Static Public Attributes inherited from AMIInterpolation | |
| static bool | cacheIntersections_ = false |
| Flag to store face-to-face intersection triangles; default = false. | |
| static int | useLocalComm_ |
| Control use of local communicator for AMI communication. | |
| static scalar | cacheThetaTolerance_ |
| Tolerance used when caching the AMI to identify e.g. if the current rotation angle has already been captured. | |
Protected Member Functions | |
| void | createExtendedTgtPatch () |
| Create a map that extends tgtPatch so that it covers srcPatch. | |
| void | checkPatches () const |
| Check AMI patch coupling. | |
| bool | isCandidate (const label srcFacei, const label tgtFacei) const |
| Is source/target a valid pair (i.e. not too far/different. | |
| virtual bool | calculate (const primitivePatch &srcPatch, const primitivePatch &tgtPatch, const autoPtr< searchableSurface > &surfPtr=nullptr) |
| Update addressing, weights and (optional) centroids. | |
| bool | initialiseWalk (label &srcFacei, label &tgtFacei) |
| Initialise walk and return true if all ok. | |
| void | writeIntersectionOBJ (const scalar area, const face &f1, const face &f2, const pointField &f1Points, const pointField &f2Points) const |
| Write triangle intersection to OBJ file. | |
| label | findTargetFace (const label srcFacei, const UList< label > &excludeFaces=UList< label >::null(), const label srcFacePti=-1) const |
| void | appendNbrFaces (const label facei, const primitivePatch &patch, const labelUList &visitedFaces, DynamicList< label > &faceIDs) const |
| Add faces neighbouring facei to the ID list. | |
| void | triangulatePatch (const primitivePatch &patch, List< DynamicList< face > > &tris, List< scalar > &magSf) const |
| Helper function to decompose a patch. | |
| virtual void | nonConformalCorrection () |
| Correction for non-conformal interpolations, e.g. for ACMI. | |
| Protected Member Functions inherited from AMIInterpolation | |
| void | operator= (const AMIInterpolation &)=delete |
| No copy assignment. | |
| autoPtr< indexedOctree< treeType > > | createTree (const primitivePatch &patch) const |
| Reset the octree for the patch face search. | |
| label | calcDistribution (const primitivePatch &srcPatch, const primitivePatch &tgtPatch, const label comm, autoPtr< UPstream::communicator > &geomComm) const |
| Calculate if patches are on multiple processors. Allocates local communicator and returns -1 or processor containing all faces. | |
| void | projectPointsToSurface (const searchableSurface &surf, pointField &pts) const |
| Project points to surface. | |
| const primitivePatch & | srcPatch0 () const |
| Return the original src patch with optionally updated points. | |
| const primitivePatch & | tgtPatch0 () const |
| Return the original tgt patch with optionally updated points. | |
Protected Attributes | |
| const scalar | maxDistance2_ |
| Maximum squared distance. | |
| const scalar | minCosAngle_ |
| Minimum (cos of) angle. 1 for perfectly matching. | |
| List< DynamicList< face > > | srcTris_ |
| Storage for src-side triangle decomposition. | |
| List< DynamicList< face > > | tgtTris_ |
| Storage for tgt-side triangle decomposition. | |
| autoPtr< primitivePatch > | extendedTgtPatchPtr_ |
| Demand-driven extended target mesh (distributed parallel usage). | |
| faceList | extendedTgtFaces_ |
| Extended patch faces. | |
| pointField | extendedTgtPoints_ |
| Extended patch points. | |
| labelList | extendedTgtFaceIDs_ |
| Extended patch face IDs. | |
| autoPtr< mapDistribute > | extendedTgtMapPtr_ |
| Extended patch map. | |
| labelList | srcNonOverlap_ |
| Labels of faces that are not overlapped by any target faces (should be empty for correct functioning for fully covered AMIs). | |
| autoPtr< indexedOctree< treeType > > | treePtr_ |
| Octree used to find face seeds. | |
| const faceAreaIntersect::triangulationMode | triMode_ |
| Face triangulation mode. | |
| areaNormalisationMode | areaNormalisationMode_ |
| Area normalisation mode; default = project. | |
| Protected Attributes inherited from AMIInterpolation | |
| bool | requireMatch_ |
| Flag to indicate that the two patches must be matched/an overlap exists between them. | |
| const bool | reverseTarget_ |
| Flag to indicate that the two patches are co-directional and that the orientation of the target patch should be reversed. | |
| const scalar | lowWeightCorrection_ |
| Threshold weight below which interpolation is deactivated. | |
| label | singlePatchProc_ |
| Index of processor that holds all of both sides. The value is -1 for distributed cases. | |
| label | comm_ |
| Communicator to use for parallel operations. | |
| autoPtr< UPstream::communicator > | geomComm_ |
| Communicator to use for geometry calculations. Not valid (-1) on processors that do not have faces. | |
| scalarList | srcMagSf_ |
| Source face areas. | |
| labelListList | srcAddress_ |
| Addresses of target faces per source face. | |
| scalarListList | srcWeights_ |
| Weights of target faces per source face. | |
| scalarField | srcWeightsSum_ |
| Sum of weights of target faces per source face. | |
| pointListList | srcCentroids_ |
| Centroid of target faces per source face. | |
| pointField | srcPatchPts_ |
| Source patch points if input points are manipulated, e.g. projected. | |
| refPtr< primitivePatch > | tsrcPatch0_ |
| Source patch using manipulated input points. | |
| autoPtr< mapDistribute > | srcMapPtr_ |
| Source map pointer - parallel running only. | |
| scalarList | tgtMagSf_ |
| Target face areas. | |
| labelListList | tgtAddress_ |
| Addresses of source faces per target face. | |
| scalarListList | tgtWeights_ |
| Weights of source faces per target face. | |
| scalarField | tgtWeightsSum_ |
| Sum of weights of source faces per target face. | |
| pointListList | tgtCentroids_ |
| Centroid of source faces per target face. | |
| pointField | tgtPatchPts_ |
| Target patch points if input points are manipulated, e.g. projected. | |
| refPtr< primitivePatch > | ttgtPatch0_ |
| Target patch using manipulated input points. | |
| autoPtr< mapDistribute > | tgtMapPtr_ |
| Target map pointer - parallel running only. | |
| bool | upToDate_ |
| Up-to-date flag. | |
| AMICache | cache_ |
| Cache. | |
Additional Inherited Members | |
| Static Public Member Functions inherited from AMIInterpolation | |
| static autoPtr< AMIInterpolation > | New (const word &modelName, const dictionary &dict, const bool reverseTarget=false) |
| Selector for dictionary. | |
| static autoPtr< AMIInterpolation > | New (const word &modelName, const bool requireMatch=true, const bool reverseTarget=false, const scalar lowWeightCorrection=-1) |
| Selector for components. | |
| static void | agglomerate (const autoPtr< mapDistribute > &targetMap, const scalarList &fineSrcMagSf, const labelListList &fineSrcAddress, const scalarListList &fineSrcWeights, const labelList &sourceRestrictAddressing, const labelList &targetRestrictAddressing, scalarList &srcMagSf, labelListList &srcAddress, scalarListList &srcWeights, scalarField &srcWeightsSum, autoPtr< mapDistribute > &tgtMap, const label comm) |
| template<class Type, class CombineOp> | |
| static void | weightedSum (const scalar lowWeightCorrection, const labelListList &allSlots, const scalarListList &allWeights, const scalarField &weightsSum, const UList< Type > &fld, const CombineOp &cop, List< Type > &result, const UList< Type > &defaultValues) |
| Weighted sum of contributions. Note: cop operates on single Type only. | |
| Protected Types inherited from AMIInterpolation | |
| typedef treeDataPrimitivePatch< primitivePatch > | treeType |
| Local typedef to octree tree-type. | |
| Static Protected Member Functions inherited from AMIInterpolation | |
| static void | normaliseWeights (const scalarList &patchAreas, const word &patchName, const labelListList &addr, scalarListList &wght, scalarField &wghtSum, const bool conformal, const bool output, const scalar lowWeightTol, const label comm) |
| Normalise the (area) weights - suppresses numerical error in weights calculation. | |
Base class for Arbitrary Mesh Interface (AMI) methods.
Definition at line 51 of file advancingFrontAMI.H.
|
strong |
| advancingFrontAMI | ( | const dictionary & | dict, |
| const bool | reverseTarget ) |
Construct from components.
Definition at line 482 of file advancingFrontAMI.C.
References AMIInterpolation::AMIInterpolation(), areaNormalisationMode_, areaNormalisationModeNames_, DebugInfo, dict, Foam::endl(), extendedTgtFaceIDs_, extendedTgtFaces_, extendedTgtMapPtr_, extendedTgtPatchPtr_, extendedTgtPoints_, maxDistance2_, minCosAngle_, AMIInterpolation::reverseTarget(), srcNonOverlap_, srcTris_, tgtTris_, faceAreaIntersect::triangulationModeNames_, and triMode_.
Referenced by advancingFrontAMI(), clone(), faceAreaWeightAMI::faceAreaWeightAMI(), faceAreaWeightAMI::faceAreaWeightAMI(), faceAreaWeightAMI::faceAreaWeightAMI(), faceAreaWeightAMI2D::faceAreaWeightAMI2D(), faceAreaWeightAMI2D::faceAreaWeightAMI2D(), faceAreaWeightAMI2D::faceAreaWeightAMI2D(), and TypeName().


| advancingFrontAMI | ( | const bool | requireMatch = true, |
| const bool | reverseTarget = false, | ||
| const scalar | lowWeightCorrection = -1, | ||
| const faceAreaIntersect::triangulationMode | triMode = faceAreaIntersect::tmMesh ) |
Construct from components.
Definition at line 528 of file advancingFrontAMI.C.
References AMIInterpolation::AMIInterpolation(), areaNormalisationMode_, extendedTgtFaceIDs_, extendedTgtFaces_, extendedTgtMapPtr_, extendedTgtPatchPtr_, extendedTgtPoints_, AMIInterpolation::lowWeightCorrection(), maxDistance2_, minCosAngle_, AMIInterpolation::requireMatch(), AMIInterpolation::reverseTarget(), srcNonOverlap_, srcTris_, tgtTris_, and triMode_.

| advancingFrontAMI | ( | const advancingFrontAMI & | ami | ) |
Construct as copy.
Definition at line 552 of file advancingFrontAMI.C.
References advancingFrontAMI(), AMIInterpolation::AMIInterpolation(), areaNormalisationMode_, extendedTgtFaceIDs_, extendedTgtFaces_, extendedTgtMapPtr_, extendedTgtPatchPtr_, extendedTgtPoints_, maxDistance2_, minCosAngle_, srcNonOverlap_, srcTris_, tgtTris_, and triMode_.

|
virtualdefault |
|
protected |
Create a map that extends tgtPatch so that it covers srcPatch.
Definition at line 164 of file advancingFrontAMI.C.
References AMIInterpolation::comm(), extendedTgtFaceIDs_, extendedTgtFaces_, extendedTgtMapPtr_, extendedTgtPatchPtr_, extendedTgtPoints_, autoPtr< T >::New(), AMIInterpolation::srcPatch0(), and AMIInterpolation::tgtPatch0().
Referenced by calculate().


|
protected |
Check AMI patch coupling.
Definition at line 46 of file advancingFrontAMI.C.
References AMIInterpolation::comm(), boundBox::contains(), Foam::endl(), boundBox::inflate(), boundBox::max(), boundBox::min(), UPstream::msgType(), Foam::nl, Foam::Pout, Foam::reduce(), AMIInterpolation::requireMatch_, boundBox::span(), srcPatch(), tgtPatch(), and WarningInFunction.
Referenced by calculate().


|
protected |
Is source/target a valid pair (i.e. not too far/different.
orientation). Used for prefiltering before e.g. area overlap
Definition at line 113 of file advancingFrontAMI.C.
References maxDistance2_, minCosAngle_, AMIInterpolation::reverseTarget_, Foam::sqr(), AMIInterpolation::srcMagSf_, srcPatch(), AMIInterpolation::tgtMagSf_, and tgtPatch().
Referenced by faceAreaWeightAMI::calcInterArea(), findTargetFace(), faceAreaWeightAMI::overlaps(), and faceAreaWeightAMI2D::storeInterArea().


|
protectedvirtual |
Update addressing, weights and (optional) centroids.
Reimplemented from AMIInterpolation.
Reimplemented in faceAreaWeightAMI2D, and faceAreaWeightAMI.
Definition at line 572 of file advancingFrontAMI.C.
References AMIInterpolation::calculate(), checkPatches(), AMIInterpolation::comm(), createExtendedTgtPatch(), AMIInterpolation::distributed(), maxDistance2_, minCosAngle_, AMIInterpolation::srcAddress_, AMIInterpolation::srcMagSf_, srcPatch(), srcTris_, AMIInterpolation::srcWeights_, AMIInterpolation::tgtAddress_, AMIInterpolation::tgtMagSf_, tgtPatch(), tgtTris_, AMIInterpolation::tgtWeights_, and triangulatePatch().
Referenced by faceAreaWeightAMI2D::calculate(), and faceAreaWeightAMI::calculate().


|
protected |
Initialise walk and return true if all ok.
Definition at line 198 of file advancingFrontAMI.C.
References Foam::abort(), Foam::createTree(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, findTargetFace(), forAll, Foam::Pout, AMIInterpolation::requireMatch_, srcPatch(), tgtPatch(), treePtr_, and WarningInFunction.
Referenced by faceAreaWeightAMI::calculate().


|
protected |
Write triangle intersection to OBJ file.
Definition at line 259 of file advancingFrontAMI.C.
References Foam::endl(), forAll, n, name, Foam::nl, os(), face::points(), Foam::Pout, UList< T >::size(), and Foam::meshTools::writeOBJ().
Referenced by faceAreaWeightAMI::calcInterArea().


|
protected |
Definition at line 310 of file advancingFrontAMI.C.
References boundBox::centre(), Foam::endl(), isCandidate(), boundBox::magSqr(), Foam::Pout, Foam::sqr(), srcPatch(), and treePtr_.
Referenced by initialiseWalk(), faceAreaWeightAMI::restartUncoveredSourceFace(), and faceAreaWeightAMI::setNextFaces().


|
protected |
Add faces neighbouring facei to the ID list.
Definition at line 356 of file advancingFrontAMI.C.
References DynamicList< T, SizeMin >::append(), Foam::cos(), Foam::degToRad(), and UList< T >::found().
Referenced by faceAreaWeightAMI::processSourceFace().


|
protected |
Helper function to decompose a patch.
Definition at line 388 of file advancingFrontAMI.C.
References triangle< Point, PointRef >::areaNormal(), areaNormalisationMode_, f(), forAll, mag, triangle< Point, PointRef >::mag(), points, project, List< T >::setSize(), faceAreaIntersect::tmFan, faceAreaIntersect::tmMesh, faceAreaIntersect::triangleFan(), and triMode_.
Referenced by calculate().


|
protectedvirtual |
Correction for non-conformal interpolations, e.g. for ACMI.
Definition at line 459 of file advancingFrontAMI.C.
References AMIInterpolation::comm(), AMIInterpolation::distributed(), extendedTgtMapPtr_, AMIInterpolation::requireMatch_, AMIInterpolation::tgtMagSf_, and AMIInterpolation::tgtPatch0().
Referenced by faceAreaWeightAMI2D::calculate(), and faceAreaWeightAMI::calculate().


| TypeName | ( | "advancingFrontAMI" | ) |
Runtime type information.
References advancingFrontAMI(), dict, AMIInterpolation::lowWeightCorrection(), AMIInterpolation::requireMatch(), AMIInterpolation::reverseTarget(), and faceAreaIntersect::tmMesh.

|
inlinevirtual |
Construct and return a clone.
Reimplemented from AMIInterpolation.
Reimplemented in faceAreaWeightAMI2D, and faceAreaWeightAMI.
Definition at line 310 of file advancingFrontAMI.H.
References advancingFrontAMI().

|
inline |
Return const access to the source patch.
Definition at line 21 of file advancingFrontAMII.H.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and AMIInterpolation::tsrcPatch0_.
Referenced by faceAreaWeightAMI::calcInterArea(), calculate(), faceAreaWeightAMI2D::calculate(), faceAreaWeightAMI::calculate(), checkPatches(), findTargetFace(), initialiseWalk(), isCandidate(), faceAreaWeightAMI::overlaps(), faceAreaWeightAMI::restartUncoveredSourceFace(), faceAreaWeightAMI::setNextFaces(), faceAreaWeightAMI2D::storeInterArea(), faceAreaWeightAMI2D::writeNoMatch(), faceAreaWeightAMI::~faceAreaWeightAMI(), and faceAreaWeightAMI2D::~faceAreaWeightAMI2D().


|
inline |
Return const access to the target patch.
Definition at line 34 of file advancingFrontAMII.H.
References Foam::abort(), extendedTgtPatchPtr_, Foam::FatalError, FatalErrorInFunction, and AMIInterpolation::ttgtPatch0_.
Referenced by faceAreaWeightAMI::calcInterArea(), calculate(), faceAreaWeightAMI2D::calculate(), faceAreaWeightAMI::calculate(), checkPatches(), initialiseWalk(), isCandidate(), faceAreaWeightAMI::overlaps(), faceAreaWeightAMI::processSourceFace(), faceAreaWeightAMI2D::storeInterArea(), faceAreaWeightAMI2D::writeNoMatch(), faceAreaWeightAMI::~faceAreaWeightAMI(), and faceAreaWeightAMI2D::~faceAreaWeightAMI2D().


|
inline |
Labels of faces that are not overlapped by any target faces.
Note: this should be empty for correct functioning
Definition at line 52 of file advancingFrontAMII.H.
References srcNonOverlap_.
|
virtual |
Write.
Reimplemented from AMIInterpolation.
Reimplemented in faceAreaWeightAMI2D, and faceAreaWeightAMI.
Definition at line 633 of file advancingFrontAMI.C.
References areaNormalisationMode_, areaNormalisationModeNames_, maxDistance2_, minCosAngle_, os(), project, faceAreaIntersect::tmMesh, faceAreaIntersect::triangulationModeNames_, triMode_, and AMIInterpolation::write().
Referenced by faceAreaWeightAMI2D::write(), and faceAreaWeightAMI::write().


|
static |
Definition at line 38 of file advancingFrontAMI.H.
Referenced by advancingFrontAMI(), and write().
|
protected |
Maximum squared distance.
Definition at line 122 of file advancingFrontAMI.H.
Referenced by advancingFrontAMI(), advancingFrontAMI(), advancingFrontAMI(), calculate(), isCandidate(), and write().
|
protected |
Minimum (cos of) angle. 1 for perfectly matching.
Definition at line 127 of file advancingFrontAMI.H.
Referenced by advancingFrontAMI(), advancingFrontAMI(), advancingFrontAMI(), calculate(), isCandidate(), and write().
|
protected |
Storage for src-side triangle decomposition.
Definition at line 132 of file advancingFrontAMI.H.
Referenced by advancingFrontAMI(), advancingFrontAMI(), advancingFrontAMI(), faceAreaWeightAMI::calcInterArea(), calculate(), faceAreaWeightAMI::overlaps(), and faceAreaWeightAMI2D::storeInterArea().
|
protected |
Storage for tgt-side triangle decomposition.
Definition at line 137 of file advancingFrontAMI.H.
Referenced by advancingFrontAMI(), advancingFrontAMI(), advancingFrontAMI(), faceAreaWeightAMI::calcInterArea(), calculate(), faceAreaWeightAMI::overlaps(), and faceAreaWeightAMI2D::storeInterArea().
|
protected |
Demand-driven extended target mesh (distributed parallel usage).
Definition at line 142 of file advancingFrontAMI.H.
Referenced by advancingFrontAMI(), advancingFrontAMI(), advancingFrontAMI(), createExtendedTgtPatch(), and tgtPatch().
|
protected |
Extended patch faces.
Definition at line 147 of file advancingFrontAMI.H.
Referenced by advancingFrontAMI(), advancingFrontAMI(), advancingFrontAMI(), and createExtendedTgtPatch().
|
protected |
Extended patch points.
Definition at line 152 of file advancingFrontAMI.H.
Referenced by advancingFrontAMI(), advancingFrontAMI(), advancingFrontAMI(), and createExtendedTgtPatch().
|
protected |
Extended patch face IDs.
Definition at line 157 of file advancingFrontAMI.H.
Referenced by advancingFrontAMI(), advancingFrontAMI(), advancingFrontAMI(), faceAreaWeightAMI2D::calculate(), faceAreaWeightAMI::calculate(), and createExtendedTgtPatch().
|
protected |
Extended patch map.
Definition at line 162 of file advancingFrontAMI.H.
Referenced by advancingFrontAMI(), advancingFrontAMI(), advancingFrontAMI(), faceAreaWeightAMI2D::calculate(), faceAreaWeightAMI::calculate(), createExtendedTgtPatch(), and nonConformalCorrection().
|
protected |
Labels of faces that are not overlapped by any target faces (should be empty for correct functioning for fully covered AMIs).
Definition at line 168 of file advancingFrontAMI.H.
Referenced by advancingFrontAMI(), advancingFrontAMI(), advancingFrontAMI(), faceAreaWeightAMI::calcAddressing(), faceAreaWeightAMI2D::calculate(), faceAreaWeightAMI::calculate(), and srcNonOverlap().
|
protected |
Octree used to find face seeds.
Definition at line 173 of file advancingFrontAMI.H.
Referenced by findTargetFace(), and initialiseWalk().
|
protected |
Face triangulation mode.
Definition at line 178 of file advancingFrontAMI.H.
Referenced by advancingFrontAMI(), advancingFrontAMI(), advancingFrontAMI(), triangulatePatch(), and write().
|
protected |
Area normalisation mode; default = project.
Definition at line 183 of file advancingFrontAMI.H.
Referenced by advancingFrontAMI(), advancingFrontAMI(), advancingFrontAMI(), triangulatePatch(), and write().