Loading...
Searching...
No Matches
AMIInterpolation Class Reference

Interpolation class dealing with transfer of data between two primitive patches with an arbitrary mesh interface (AMI). More...

#include <AMIInterpolation.H>

Inheritance diagram for AMIInterpolation:
Collaboration diagram for AMIInterpolation:

Public Member Functions

 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.
virtual autoPtr< AMIInterpolationclone () const
 Construct and return a clone.
 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 AMICachecache () const noexcept
 Return a reference to the AMI cache.
AMICachecache () 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 labelListListsrcAddress () const
 Return const access to source patch addressing.
labelListListsrcAddress ()
 Return access to source patch addressing.
const scalarListListsrcWeights () const
 Return const access to source patch weights.
scalarListListsrcWeights ()
 Return access to source patch weights.
const scalarFieldsrcWeightsSum () const
 Return const access to normalisation factor of source patch weights (i.e. the sum before normalisation).
scalarFieldsrcWeightsSum ()
 Return access to normalisation factor of source patch weights (i.e. the sum before normalisation).
const pointListListsrcCentroids () const
 Return const access to source patch face centroids.
pointListListsrcCentroids ()
 Return access to source patch face centroids.
const mapDistributesrcMap () const
 Source map - valid only if singlePatchProc = -1 This gets source data into a form to be consumed by tgtAddress, tgtWeights.
const mapDistributehasSrcMap () 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 labelListListtgtAddress () const
 Return const access to target patch addressing.
labelListListtgtAddress ()
 Return access to target patch addressing.
const scalarListListtgtWeights () const
 Return const access to target patch weights.
scalarListListtgtWeights ()
 Return access to target patch weights.
const scalarFieldtgtWeightsSum () const
 Return const access to normalisation factor of target patch weights (i.e. the sum before normalisation).
scalarFieldtgtWeightsSum ()
 Return access to normalisation factor of target patch weights (i.e. the sum before normalisation).
const mapDistributetgtMap () const
 Target map - valid only if singlePatchProc=-1. This gets target data into a form to be consumed by srcAddress, srcWeights.
const mapDistributehasTgtMap () const noexcept
 Pointer to the target map (if distributed). Can be checked as a bool.
virtual bool calculate (const primitivePatch &srcPatch, const primitivePatch &tgtPatch, const autoPtr< searchableSurface > &surfPtr=nullptr)
 Update addressing, weights and (optional) centroids.
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 void write (Ostream &os) const
 Write AMI as a dictionary.
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 Member Functions

static autoPtr< AMIInterpolationNew (const word &modelName, const dictionary &dict, const bool reverseTarget=false)
 Selector for dictionary.
static autoPtr< AMIInterpolationNew (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.

Static Public Attributes

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 Types

typedef treeDataPrimitivePatch< primitivePatchtreeType
 Local typedef to octree tree-type.

Protected Member Functions

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 primitivePatchsrcPatch0 () const
 Return the original src patch with optionally updated points.
const primitivePatchtgtPatch0 () const
 Return the original tgt patch with optionally updated points.

Static Protected Member Functions

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.

Protected Attributes

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::communicatorgeomComm_
 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< primitivePatchtsrcPatch0_
 Source patch using manipulated input points.
autoPtr< mapDistributesrcMapPtr_
 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< primitivePatchttgtPatch0_
 Target patch using manipulated input points.
autoPtr< mapDistributetgtMapPtr_
 Target map pointer - parallel running only.
bool upToDate_
 Up-to-date flag.
AMICache cache_
 Cache.

Detailed Description

Interpolation class dealing with transfer of data between two primitive patches with an arbitrary mesh interface (AMI).

Based on the algorithm given in:

Conservative interpolation between volume meshes by local Galerkin projection, Farrell PE and Maddison JR, 2011, Comput. Methods Appl. Mech Engrg, Volume 200, Issues 1-4, pp 89-100

Interpolation requires that the two patches should have opposite orientations (opposite normals). The 'reverseTarget' flag can be used to reverse the orientation of the target patch.

Source files

Definition at line 70 of file AMIInterpolation.H.

Member Typedef Documentation

◆ treeType

Local typedef to octree tree-type.

Definition at line 102 of file AMIInterpolation.H.

Constructor & Destructor Documentation

◆ AMIInterpolation() [1/5]

◆ AMIInterpolation() [2/5]

AMIInterpolation ( const bool requireMatch = true,
const bool reverseTarget = false,
const scalar lowWeightCorrection = -1 )
explicit

◆ AMIInterpolation() [3/5]

AMIInterpolation ( const AMIInterpolation & fineAMI,
const labelList & sourceRestrictAddressing,
const labelList & neighbourRestrictAddressing )

◆ AMIInterpolation() [4/5]

AMIInterpolation ( const AMIInterpolation & ami)

◆ AMIInterpolation() [5/5]

AMIInterpolation ( Istream & is)

Construct from Istream.

Note: does not transfer src(tgt)PatchPts, tsrc(tgt)Patch0_

Definition at line 927 of file AMIInterpolation.C.

References cache_, comm_, lowWeightCorrection_, Foam::readBool(), Foam::readLabel(), requireMatch_, reverseTarget_, singlePatchProc_, srcAddress_, srcCentroids_, srcMagSf_, srcMapPtr_, srcWeights_, srcWeightsSum_, tgtAddress_, tgtCentroids_, tgtMagSf_, tgtMapPtr_, tgtWeights_, tgtWeightsSum_, and upToDate_.

Here is the call graph for this function:

◆ ~AMIInterpolation()

virtual ~AMIInterpolation ( )
virtualdefault

Destructor.

References comm(), srcAddress(), srcMagSf(), srcWeights(), srcWeightsSum(), and tgtMap().

Here is the call graph for this function:

Member Function Documentation

◆ operator=()

void operator= ( const AMIInterpolation & )
protecteddelete

No copy assignment.

References AMIInterpolation(), comm(), and pts.

Here is the call graph for this function:

◆ createTree()

Foam::autoPtr< Foam::indexedOctree< Foam::AMIInterpolation::treeType > > createTree ( const primitivePatch & patch) const
protected

Reset the octree for the patch face search.

Definition at line 76 of file AMIInterpolation.C.

References boundBox::inflate(), Foam::New(), and indexedOctreeBase::perturbTol().

Here is the call graph for this function:

◆ calcDistribution()

Foam::label calcDistribution ( const primitivePatch & srcPatch,
const primitivePatch & tgtPatch,
const label comm,
autoPtr< UPstream::communicator > & geomComm ) const
protected

Calculate if patches are on multiple processors. Allocates local communicator and returns -1 or processor containing all faces.

Definition at line 97 of file AMIInterpolation.C.

References UPstream::allGatherValues(), comm(), DebugInFunction, Foam::endl(), Foam::flatOutput(), forAll, autoPtr< T >::good(), UPstream::master(), UPstream::masterNo(), UPstream::nProcs(), UPstream::parRun(), Foam::Pout, DynamicList< T, SizeMin >::push_back(), autoPtr< T >::reset(), UPstream::sameProcs(), UList< T >::size(), UList< T >::test(), and useLocalComm_.

Referenced by calculate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ projectPointsToSurface()

void projectPointsToSurface ( const searchableSurface & surf,
pointField & pts ) const
protected

Project points to surface.

Definition at line 241 of file AMIInterpolation.C.

References Foam::abort(), addProfiling, DebugInfo, Foam::endl(), Foam::FatalError, FatalErrorInFunction, searchableSurface::findNearest(), forAll, pi(), and pts.

Referenced by calculate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ srcPatch0()

const Foam::primitivePatch & srcPatch0 ( ) const
inlineprotected

Return the original src patch with optionally updated points.

Definition at line 22 of file AMIInterpolationI.H.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and tsrcPatch0_.

Referenced by faceAreaWeightAMI2D::calculate(), faceAreaWeightAMI::calculate(), nearestFaceAMI::calculate(), and advancingFrontAMI::createExtendedTgtPatch().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tgtPatch0()

const Foam::primitivePatch & tgtPatch0 ( ) const
inlineprotected

Return the original tgt patch with optionally updated points.

Definition at line 35 of file AMIInterpolationI.H.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and ttgtPatch0_.

Referenced by faceAreaWeightAMI2D::calculate(), faceAreaWeightAMI::calculate(), nearestFaceAMI::calculate(), advancingFrontAMI::createExtendedTgtPatch(), and advancingFrontAMI::nonConformalCorrection().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ normaliseWeights() [1/2]

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 )
staticprotected

Normalise the (area) weights - suppresses numerical error in weights calculation.

NOTE: if area weights are incorrect by 'a significant amount' normalisation may stabilise the solution, but will introduce numerical error!

Definition at line 281 of file AMIInterpolation.C.

References addProfiling, comm(), Foam::endl(), forAll, Foam::gAverage(), Foam::gMinMax(), Foam::indent(), Foam::Info, limits, UPstream::msgType(), Foam::nl, List< T >::resize_nocopy(), Foam::returnReduce(), Foam::returnReduceOr(), s(), UList< T >::size(), and Foam::sum().

Referenced by agglomerate(), faceAreaWeightAMI2D::calculate(), faceAreaWeightAMI::calculate(), and normaliseWeights().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TypeName()

TypeName ( "AMIInterpolation" )

Runtime type information.

◆ declareRunTimeSelectionTable() [1/2]

declareRunTimeSelectionTable ( autoPtr ,
AMIInterpolation ,
dict ,
(const dictionary &dict, const bool reverseTarget) ,
(dict, reverseTarget)  )

Selection table for dictionary construction.

References AMIInterpolation(), dict, and reverseTarget().

Here is the call graph for this function:

◆ declareRunTimeSelectionTable() [2/2]

declareRunTimeSelectionTable ( autoPtr ,
AMIInterpolation ,
component ,
(const bool requireMatch, const bool reverseTarget, const scalar lowWeightCorrection) ,
(requireMatch, reverseTarget, lowWeightCorrection)  )

Selection table for component-wise construction.

References AMIInterpolation(), Foam::component(), dict, lowWeightCorrection(), requireMatch(), and reverseTarget().

Here is the call graph for this function:

◆ New() [1/2]

Foam::autoPtr< Foam::AMIInterpolation > New ( const word & modelName,
const dictionary & dict,
const bool reverseTarget = false )
static

Selector for dictionary.

Definition at line 25 of file AMIInterpolationNew.C.

References DebugInfo, dict, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInLookup, Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName, and reverseTarget().

Referenced by regionModel::interRegionAMI().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ New() [2/2]

Foam::autoPtr< Foam::AMIInterpolation > New ( const word & modelName,
const bool requireMatch = true,
const bool reverseTarget = false,
const scalar lowWeightCorrection = -1 )
static

Selector for components.

Definition at line 50 of file AMIInterpolationNew.C.

References DebugInfo, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInLookup, Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName, lowWeightCorrection(), requireMatch(), and reverseTarget().

Here is the call graph for this function:

◆ clone()

virtual autoPtr< AMIInterpolation > clone ( ) const
inlinevirtual

Construct and return a clone.

Reimplemented in advancingFrontAMI, faceAreaWeightAMI2D, faceAreaWeightAMI, and nearestFaceAMI.

Definition at line 427 of file AMIInterpolation.H.

References autoPtr< T >::New().

Referenced by AMIInterpolation(), and append().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ agglomerate()

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 )
static

◆ upToDate() [1/3]

bool upToDate ( ) const
inlinenoexcept

Is up-to-date?

Definition at line 473 of file AMIInterpolation.H.

References Foam::noexcept, and upToDate_.

Referenced by upToDate(), and writeData().

Here is the caller graph for this function:

◆ upToDate() [2/3]

bool upToDate ( bool flag)
inlinenoexcept

Set as up-to-date, return the previous value.

Definition at line 478 of file AMIInterpolation.H.

References upToDate_.

◆ cache() [1/2]

const AMICache & cache ( ) const
inlinenoexcept

Return a reference to the AMI cache.

Definition at line 488 of file AMIInterpolation.H.

References cache_, and Foam::noexcept.

Referenced by AMIInterpolation().

Here is the caller graph for this function:

◆ cache() [2/2]

AMICache & cache ( )
inlinenoexcept

Definition at line 489 of file AMIInterpolation.H.

References cache_, and Foam::noexcept.

◆ distributed()

bool distributed ( ) const
inlinenoexcept

Distributed across processors (singlePatchProc == -1).

Definition at line 49 of file AMIInterpolationI.H.

References Foam::noexcept, and singlePatchProc_.

Referenced by append(), advancingFrontAMI::calculate(), calculate(), faceAreaWeightAMI2D::calculate(), faceAreaWeightAMI::calculate(), nearestFaceAMI::calculate(), checkSymmetricWeights(), interpolate(), advancingFrontAMI::nonConformalCorrection(), and writeData().

Here is the caller graph for this function:

◆ requireMatch()

◆ setRequireMatch()

bool setRequireMatch ( bool flag)
inlinenoexcept

Set the require match flag, return the new value.

Definition at line 61 of file AMIInterpolationI.H.

References requireMatch_.

◆ mustMatchFaces()

bool mustMatchFaces ( ) const
inline

Return true if requireMatch and but not lowWeightCorrection.

Definition at line 68 of file AMIInterpolationI.H.

References applyLowWeightCorrection(), and requireMatch_.

Referenced by faceAreaWeightAMI::calcAddressing(), and faceAreaWeightAMI2D::calculate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reverseTarget()

◆ lowWeightCorrection()

◆ applyLowWeightCorrection()

bool applyLowWeightCorrection ( ) const
inline

Return true if employing a 'lowWeightCorrection'.

Definition at line 86 of file AMIInterpolationI.H.

References lowWeightCorrection_.

Referenced by mustMatchFaces().

Here is the caller graph for this function:

◆ singlePatchProc()

Foam::label singlePatchProc ( ) const
inlinenoexcept

The processor holding all faces (both sides), or -1 if distributed.

Definition at line 92 of file AMIInterpolationI.H.

References Foam::noexcept, and singlePatchProc_.

Referenced by reset(), and writeData().

Here is the caller graph for this function:

◆ comm() [1/2]

◆ comm() [2/2]

Foam::label comm ( label communicator)
inlinenoexcept

Set (non-local) communicator for parallel operations.

Returns
old value

Definition at line 111 of file AMIInterpolationI.H.

References comm_.

◆ cacheActive()

bool cacheActive ( ) const
inline

Return true if caching is active.

Definition at line 119 of file AMIInterpolationI.H.

References cache_.

◆ srcMagSf() [1/2]

const Foam::List< Foam::scalar > & srcMagSf ( ) const
inline

Return const access to source patch face areas.

Definition at line 125 of file AMIInterpolationI.H.

References srcMagSf_.

Referenced by agglomerate(), AMIInterpolation(), writeData(), and ~AMIInterpolation().

Here is the caller graph for this function:

◆ srcMagSf() [2/2]

Foam::List< Foam::scalar > & srcMagSf ( )
inline

Return access to source patch face areas.

Definition at line 131 of file AMIInterpolationI.H.

References srcMagSf_.

◆ srcAddress() [1/2]

const Foam::labelListList & srcAddress ( ) const
inline

◆ srcAddress() [2/2]

Foam::labelListList & srcAddress ( )
inline

Return access to source patch addressing.

Definition at line 143 of file AMIInterpolationI.H.

References srcAddress_.

◆ srcWeights() [1/2]

const Foam::scalarListList & srcWeights ( ) const
inline

◆ srcWeights() [2/2]

Foam::scalarListList & srcWeights ( )
inline

Return access to source patch weights.

Definition at line 155 of file AMIInterpolationI.H.

References srcWeights_.

◆ srcWeightsSum() [1/2]

const Foam::scalarField & srcWeightsSum ( ) const
inline

Return const access to normalisation factor of source patch weights (i.e. the sum before normalisation).

Definition at line 161 of file AMIInterpolationI.H.

References srcWeightsSum_.

Referenced by AMICache::addToCache(), agglomerate(), interpolate(), writeData(), AMIWeights::writeWeightFields(), and ~AMIInterpolation().

Here is the caller graph for this function:

◆ srcWeightsSum() [2/2]

Foam::scalarField & srcWeightsSum ( )
inline

Return access to normalisation factor of source patch weights (i.e. the sum before normalisation).

Definition at line 167 of file AMIInterpolationI.H.

References srcWeightsSum_.

◆ srcCentroids() [1/2]

const Foam::pointListList & srcCentroids ( ) const
inline

Return const access to source patch face centroids.

Definition at line 173 of file AMIInterpolationI.H.

References srcCentroids_.

Referenced by faceAreaWeightAMI::operator=(), and writeData().

Here is the caller graph for this function:

◆ srcCentroids() [2/2]

Foam::pointListList & srcCentroids ( )
inline

Return access to source patch face centroids.

Definition at line 179 of file AMIInterpolationI.H.

References srcCentroids_.

◆ srcMap()

const Foam::mapDistribute & srcMap ( ) const
inline

Source map - valid only if singlePatchProc = -1 This gets source data into a form to be consumed by tgtAddress, tgtWeights.

Definition at line 185 of file AMIInterpolationI.H.

References srcMapPtr_.

Referenced by AMICache::addToCache(), mappedPatchFieldBase< Type >::distribute(), and writeData().

Here is the caller graph for this function:

◆ hasSrcMap()

const Foam::mapDistribute * hasSrcMap ( ) const
inlinenoexcept

Pointer to the source map (if distributed). Can be checked as a bool.

Definition at line 192 of file AMIInterpolationI.H.

References Foam::noexcept, and srcMapPtr_.

Referenced by AMICache::addToCache().

Here is the caller graph for this function:

◆ tgtMagSf() [1/2]

const Foam::List< Foam::scalar > & tgtMagSf ( ) const
inline

Return const access to target patch face areas.

Definition at line 198 of file AMIInterpolationI.H.

References tgtMagSf_.

Referenced by AMIInterpolation(), and writeData().

Here is the caller graph for this function:

◆ tgtMagSf() [2/2]

Foam::List< Foam::scalar > & tgtMagSf ( )
inline

Return access to target patch face areas.

Definition at line 204 of file AMIInterpolationI.H.

References tgtMagSf_.

◆ tgtAddress() [1/2]

const Foam::labelListList & tgtAddress ( ) const
inline

Return const access to target patch addressing.

Definition at line 210 of file AMIInterpolationI.H.

References tgtAddress_.

Referenced by AMICache::addToCache(), AMIInterpolation(), mappedPatchFieldBase< Type >::distribute(), interpolate(), faceAreaWeightAMI::operator=(), reset(), and writeData().

Here is the caller graph for this function:

◆ tgtAddress() [2/2]

Foam::labelListList & tgtAddress ( )
inline

Return access to target patch addressing.

Definition at line 216 of file AMIInterpolationI.H.

References tgtAddress_.

◆ tgtWeights() [1/2]

const Foam::scalarListList & tgtWeights ( ) const
inline

Return const access to target patch weights.

Definition at line 222 of file AMIInterpolationI.H.

References tgtWeights_.

Referenced by AMICache::addToCache(), AMIInterpolation(), mappedPatchFieldBase< Type >::distribute(), faceAreaWeightAMI::operator=(), reset(), and writeData().

Here is the caller graph for this function:

◆ tgtWeights() [2/2]

Foam::scalarListList & tgtWeights ( )
inline

Return access to target patch weights.

Definition at line 228 of file AMIInterpolationI.H.

References tgtWeights_.

◆ tgtWeightsSum() [1/2]

const Foam::scalarField & tgtWeightsSum ( ) const
inline

Return const access to normalisation factor of target patch weights (i.e. the sum before normalisation).

Definition at line 234 of file AMIInterpolationI.H.

References tgtWeightsSum_.

Referenced by AMICache::addToCache(), writeData(), and AMIWeights::writeWeightFields().

Here is the caller graph for this function:

◆ tgtWeightsSum() [2/2]

Foam::scalarField & tgtWeightsSum ( )
inline

Return access to normalisation factor of target patch weights (i.e. the sum before normalisation).

Definition at line 240 of file AMIInterpolationI.H.

References tgtWeightsSum_.

◆ tgtMap()

const Foam::mapDistribute & tgtMap ( ) const
inline

Target map - valid only if singlePatchProc=-1. This gets target data into a form to be consumed by srcAddress, srcWeights.

Definition at line 246 of file AMIInterpolationI.H.

References tgtMapPtr_.

Referenced by AMICache::addToCache(), agglomerate(), mappedPatchFieldBase< Type >::distribute(), writeData(), and ~AMIInterpolation().

Here is the caller graph for this function:

◆ hasTgtMap()

const Foam::mapDistribute * hasTgtMap ( ) const
inlinenoexcept

Pointer to the target map (if distributed). Can be checked as a bool.

Definition at line 253 of file AMIInterpolationI.H.

References Foam::noexcept, and tgtMapPtr_.

Referenced by AMICache::addToCache().

Here is the caller graph for this function:

◆ calculate()

◆ reset()

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.

Definition at line 1086 of file AMIInterpolation.C.

References DebugInFunction, Foam::endl(), forAll, singlePatchProc(), singlePatchProc_, srcAddress(), srcAddress_, srcMapPtr_, srcWeights(), srcWeights_, srcWeightsSum_, Foam::sum(), tgtAddress(), tgtAddress_, tgtMapPtr_, tgtWeights(), tgtWeights_, tgtWeightsSum_, and upToDate_.

Here is the call graph for this function:

◆ append()

void append ( const primitivePatch & srcPatch,
const primitivePatch & tgtPatch )

Append additional addressing and weights.

Definition at line 1126 of file AMIInterpolation.C.

References addProfiling, UList< T >::begin(), clone(), comm(), distributed(), forAll, Foam::max(), List< T >::push_back(), UList< T >::size(), srcAddress_, srcMagSf_, srcMapPtr_, srcWeights_, srcWeightsSum_, tgtAddress_, tgtMagSf_, tgtMapPtr_, tgtWeights_, and tgtWeightsSum_.

Here is the call graph for this function:

◆ normaliseWeights() [2/2]

void normaliseWeights ( const bool conformal,
const bool output )

Normalise the weights.

Definition at line 1320 of file AMIInterpolation.C.

References comm(), lowWeightCorrection_, normaliseWeights(), srcAddress_, srcMagSf_, srcWeights_, srcWeightsSum_, tgtAddress_, tgtMagSf_, tgtWeights_, and tgtWeightsSum_.

Here is the call graph for this function:

◆ weightedSum() [1/2]

template<class Type, class CombineOp>
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 )
static

Weighted sum of contributions. Note: cop operates on single Type only.

Definition at line 28 of file AMIInterpolationTemplates.C.

References fld(), forAll, and lowWeightCorrection().

Referenced by cyclicAMIPolyPatch::interpolate(), cyclicACMIGAMGInterfaceField::updateInterfaceMatrix(), and cyclicAMIGAMGInterfaceField::updateInterfaceMatrix().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ weightedSum() [2/2]

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).

Definition at line 77 of file AMIInterpolationTemplates.C.

References fld(), lowWeightCorrection_, srcAddress_, srcWeights_, srcWeightsSum_, tgtAddress_, tgtWeights_, tgtWeightsSum_, and Foam::weightedSum().

Here is the call graph for this function:

◆ interpolate()

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

◆ interpolateToTarget() [1/9]

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.

Definition at line 326 of file AMIInterpolationTemplates.C.

References addProfiling, b, fld(), and Foam::interpolate().

Referenced by interpolateToTarget(), interpolateToTarget(), interpolateToTarget(), interpolateToTarget(), interpolateToTarget(), interpolateToTarget(), interpolateToTarget(), interpolateToTarget(), and cyclicAMIPolyPatch::interpolateUntransformed().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ interpolateToSource() [1/9]

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.

Definition at line 367 of file AMIInterpolationTemplates.C.

References addProfiling, b, fld(), and Foam::interpolate().

Referenced by interpolateToSource(), interpolateToSource(), interpolateToSource(), interpolateToSource(), interpolateToSource(), interpolateToSource(), interpolateToSource(), interpolateToSource(), cyclicAMIPolyPatch::interpolateUntransformed(), regionModel::mapRegionPatchField(), regionModel::mapRegionPatchField(), and regionModel::mapRegionPatchInternalField().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ interpolateToSource() [2/9]

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.

References fld(), and interpolateToSource().

Here is the call graph for this function:

◆ interpolateToSource() [3/9]

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.

References interpolateToSource().

Here is the call graph for this function:

◆ interpolateToTarget() [2/9]

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.

References fld(), and interpolateToTarget().

Here is the call graph for this function:

◆ interpolateToTarget() [3/9]

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.

References interpolateToTarget().

Here is the call graph for this function:

◆ interpolateToSource() [4/9]

template<class Type>
tmp< Field< Type > > interpolateToSource ( const Field< Type > & fld,
const UList< Type > & defaultValues = UList< Type >::null() ) const

Interpolate from target to source.

References fld(), and interpolateToSource().

Here is the call graph for this function:

◆ interpolateToSource() [5/9]

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.

References interpolateToSource().

Here is the call graph for this function:

◆ interpolateToTarget() [4/9]

template<class Type>
tmp< Field< Type > > interpolateToTarget ( const Field< Type > & fld,
const UList< Type > & defaultValues = UList< Type >::null() ) const

Interpolate from source to target.

References fld(), and interpolateToTarget().

Here is the call graph for this function:

◆ interpolateToTarget() [5/9]

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.

References addToCache(), checkSymmetricWeights(), interpolateToTarget(), Foam::log(), n, os(), restoreCache(), srcAddress(), srcPointFace(), tgtPointFace(), write(), writeData(), and writeFaceConnectivity().

Here is the call graph for this function:

◆ srcPointFace()

Foam::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.

Definition at line 1354 of file AMIInterpolation.C.

References PointHit< PointType >::distance(), PointHit< PointType >::eligibleMiss(), f(), PointHit< PointType >::hit(), n, PointHit< PointType >::point(), PrimitivePatch< FaceList, PointField >::points(), PointHit< PointType >::setDistance(), tgtAddress_, and intersection::VISIBLE.

Referenced by interpolateToTarget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tgtPointFace()

Foam::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.

Definition at line 1402 of file AMIInterpolation.C.

References PointHit< PointType >::distance(), PointHit< PointType >::eligibleMiss(), f(), PointHit< PointType >::hit(), n, PointHit< PointType >::point(), PrimitivePatch< FaceList, PointField >::points(), PointHit< PointType >::setDistance(), srcAddress_, and intersection::VISIBLE.

Referenced by interpolateToTarget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ restoreCache()

bool restoreCache ( const point & refPt)

Restore AMI weights and addressing from the cache.

Definition at line 65 of file AMIInterpolation.C.

References cache_, DebugInfo, Foam::endl(), and upToDate_.

Referenced by interpolateToTarget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addToCache()

void addToCache ( const point & refPt)

Add AMI weights and addressing to the cache.

Definition at line 57 of file AMIInterpolation.C.

References cache_, DebugInfo, and Foam::endl().

Referenced by interpolateToTarget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ checkSymmetricWeights()

bool checkSymmetricWeights ( const bool log) const

Check if src addresses are present in tgt addresses and viceversa.

Definition at line 1451 of file AMIInterpolation.C.

References distributed(), Foam::endl(), forAll, found, Log, Foam::log(), Foam::nl, UPstream::parRun(), srcAddress_, and tgtAddress_.

Referenced by interpolateToTarget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeFaceConnectivity()

void writeFaceConnectivity ( const primitivePatch & srcPatch,
const primitivePatch & tgtPatch,
const labelListList & srcAddress ) const

Write face connectivity as OBJ file.

Definition at line 1514 of file AMIInterpolation.C.

References Foam::endl(), PrimitivePatch< FaceList, PointField >::faceCentres(), forAll, UPstream::myProcNo(), Foam::name(), os(), srcAddress(), and Foam::meshTools::writeOBJ().

Referenced by interpolateToTarget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ write()

void write ( Ostream & os) const
virtual

Write AMI as a dictionary.

Reimplemented in advancingFrontAMI, faceAreaWeightAMI2D, faceAreaWeightAMI, and nearestFaceAMI.

Definition at line 1546 of file AMIInterpolation.C.

References cache_, lowWeightCorrection_, os(), requireMatch_, reverseTarget_, and Foam::type().

Referenced by interpolateToTarget(), advancingFrontAMI::write(), and nearestFaceAMI::write().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeData()

bool writeData ( Ostream & os) const
virtual

Write AMI raw.

Definition at line 1569 of file AMIInterpolation.C.

References cache_, comm(), distributed(), lowWeightCorrection(), os(), requireMatch(), reverseTarget(), singlePatchProc(), token::SPACE, srcAddress(), srcCentroids(), srcMagSf(), srcMap(), srcWeights(), srcWeightsSum(), tgtAddress(), tgtCentroids_, tgtMagSf(), tgtMap(), tgtWeights(), tgtWeightsSum(), and upToDate().

Referenced by interpolateToTarget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ upToDate() [3/3]

bool & upToDate ( )
inlinenoexcept

Non-const access to the up-to-date flag.

Deprecated
Prefer the upToDate(bool) setter (JAN-2023)

Definition at line 956 of file AMIInterpolation.H.

References Foam::noexcept, upToDate(), and upToDate_.

Here is the call graph for this function:

◆ interpolateToSource() [6/9]

template<class Type, class CombineOp>
Foam::tmp< Foam::Field< Type > > interpolateToSource ( const Field< Type > & fld,
const CombineOp & cop,
const UList< Type > & defaultValues ) const

Definition at line 409 of file AMIInterpolationTemplates.C.

References fld(), interpolateToSource(), Foam::New(), srcAddress_, and Foam::Zero.

Here is the call graph for this function:

◆ interpolateToSource() [7/9]

template<class Type, class CombineOp>
Foam::tmp< Foam::Field< Type > > interpolateToSource ( const tmp< Field< Type > > & tFld,
const CombineOp & cop,
const UList< Type > & defaultValues ) const

Definition at line 431 of file AMIInterpolationTemplates.C.

References interpolateToSource().

Here is the call graph for this function:

◆ interpolateToTarget() [6/9]

template<class Type, class CombineOp>
Foam::tmp< Foam::Field< Type > > interpolateToTarget ( const Field< Type > & fld,
const CombineOp & cop,
const UList< Type > & defaultValues ) const

Definition at line 443 of file AMIInterpolationTemplates.C.

References fld(), interpolateToTarget(), Foam::New(), tgtAddress_, and Foam::Zero.

Here is the call graph for this function:

◆ interpolateToTarget() [7/9]

template<class Type, class CombineOp>
Foam::tmp< Foam::Field< Type > > interpolateToTarget ( const tmp< Field< Type > > & tFld,
const CombineOp & cop,
const UList< Type > & defaultValues ) const

Definition at line 465 of file AMIInterpolationTemplates.C.

References interpolateToTarget().

Here is the call graph for this function:

◆ interpolateToSource() [8/9]

template<class Type>
Foam::tmp< Foam::Field< Type > > interpolateToSource ( const Field< Type > & fld,
const UList< Type > & defaultValues ) const

Definition at line 477 of file AMIInterpolationTemplates.C.

References fld(), and interpolateToSource().

Here is the call graph for this function:

◆ interpolateToSource() [9/9]

template<class Type>
Foam::tmp< Foam::Field< Type > > interpolateToSource ( const tmp< Field< Type > > & tFld,
const UList< Type > & defaultValues ) const

Definition at line 488 of file AMIInterpolationTemplates.C.

References interpolateToSource().

Here is the call graph for this function:

◆ interpolateToTarget() [8/9]

template<class Type>
Foam::tmp< Foam::Field< Type > > interpolateToTarget ( const Field< Type > & fld,
const UList< Type > & defaultValues ) const

Definition at line 499 of file AMIInterpolationTemplates.C.

References fld(), and interpolateToTarget().

Here is the call graph for this function:

◆ interpolateToTarget() [9/9]

template<class Type>
Foam::tmp< Foam::Field< Type > > interpolateToTarget ( const tmp< Field< Type > > & tFld,
const UList< Type > & defaultValues ) const

Definition at line 510 of file AMIInterpolationTemplates.C.

References interpolateToTarget().

Here is the call graph for this function:

Member Data Documentation

◆ cacheIntersections_

bool cacheIntersections_ = false
static

Flag to store face-to-face intersection triangles; default = false.

Definition at line 79 of file AMIInterpolation.H.

Referenced by faceAreaWeightAMI::calcInterArea(), and faceAreaWeightAMI::overlaps().

◆ useLocalComm_

int useLocalComm_
static

Control use of local communicator for AMI communication.

localComm : 0 : all processors (backwards compatible) localComm : 1 : only processors with patch faces localComm : 2 : like 1 but always include master (for messages)

Definition at line 88 of file AMIInterpolation.H.

Referenced by calcDistribution(), and registerOptSwitch().

◆ cacheThetaTolerance_

scalar cacheThetaTolerance_
static

Tolerance used when caching the AMI to identify e.g. if the current rotation angle has already been captured.

Definition at line 94 of file AMIInterpolation.H.

◆ requireMatch_

◆ reverseTarget_

const bool reverseTarget_
protected

Flag to indicate that the two patches are co-directional and that the orientation of the target patch should be reversed.

Definition at line 116 of file AMIInterpolation.H.

Referenced by AMIInterpolation(), AMIInterpolation(), AMIInterpolation(), AMIInterpolation(), AMIInterpolation(), faceAreaWeightAMI::calcInterArea(), advancingFrontAMI::isCandidate(), faceAreaWeightAMI::overlaps(), reverseTarget(), and write().

◆ lowWeightCorrection_

const scalar lowWeightCorrection_
protected

◆ singlePatchProc_

label singlePatchProc_
protected

Index of processor that holds all of both sides. The value is -1 for distributed cases.

Definition at line 127 of file AMIInterpolation.H.

Referenced by AMIInterpolation(), AMIInterpolation(), AMIInterpolation(), AMIInterpolation(), AMIInterpolation(), calculate(), distributed(), reset(), and singlePatchProc().

◆ comm_

label comm_
protected

Communicator to use for parallel operations.

Definition at line 132 of file AMIInterpolation.H.

Referenced by AMIInterpolation(), AMIInterpolation(), AMIInterpolation(), AMIInterpolation(), AMIInterpolation(), calculate(), comm(), and comm().

◆ geomComm_

autoPtr<UPstream::communicator> geomComm_
protected

Communicator to use for geometry calculations. Not valid (-1) on processors that do not have faces.

Definition at line 138 of file AMIInterpolation.H.

Referenced by AMIInterpolation(), AMIInterpolation(), calculate(), and comm().

◆ srcMagSf_

◆ srcAddress_

◆ srcWeights_

◆ srcWeightsSum_

◆ srcCentroids_

◆ srcPatchPts_

pointField srcPatchPts_
protected

Source patch points if input points are manipulated, e.g. projected.

Definition at line 172 of file AMIInterpolation.H.

Referenced by AMIInterpolation(), AMIInterpolation(), and calculate().

◆ tsrcPatch0_

refPtr<primitivePatch> tsrcPatch0_
protected

Source patch using manipulated input points.

Definition at line 177 of file AMIInterpolation.H.

Referenced by calculate(), advancingFrontAMI::srcPatch(), and srcPatch0().

◆ srcMapPtr_

◆ tgtMagSf_

◆ tgtAddress_

◆ tgtWeights_

◆ tgtWeightsSum_

◆ tgtCentroids_

pointListList tgtCentroids_
protected

Centroid of source faces per target face.

Definition at line 210 of file AMIInterpolation.H.

Referenced by AMIInterpolation(), AMIInterpolation(), AMIInterpolation(), AMIInterpolation(), calculate(), and writeData().

◆ tgtPatchPts_

pointField tgtPatchPts_
protected

Target patch points if input points are manipulated, e.g. projected.

Definition at line 216 of file AMIInterpolation.H.

Referenced by AMIInterpolation(), AMIInterpolation(), and calculate().

◆ ttgtPatch0_

refPtr<primitivePatch> ttgtPatch0_
protected

Target patch using manipulated input points.

Definition at line 221 of file AMIInterpolation.H.

Referenced by calculate(), advancingFrontAMI::tgtPatch(), and tgtPatch0().

◆ tgtMapPtr_

◆ upToDate_

◆ cache_


The documentation for this class was generated from the following files: