All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
faceAreaWeightAMI Class Reference

Face area weighted Arbitrary Mesh Interface (AMI) method. More...

Inheritance diagram for faceAreaWeightAMI:
Collaboration diagram for faceAreaWeightAMI:

Public Member Functions

 TypeName ("faceAreaWeightAMI")
 Runtime type information. More...
 
 faceAreaWeightAMI (const primitivePatch &srcPatch, const primitivePatch &tgtPatch, const scalarField &srcMagSf, const scalarField &tgtMagSf, const faceAreaIntersect::triangulationMode &triMode, const bool reverseTarget=false, const bool requireMatch=true, const bool restartUncoveredSourceFace=true)
 Construct from components. More...
 
 faceAreaWeightAMI (const faceAreaWeightAMI &)=delete
 Disallow default bitwise copy construction. More...
 
virtual ~faceAreaWeightAMI ()
 Destructor. More...
 
virtual void calculate (labelListList &srcAddress, scalarListList &srcWeights, labelListList &tgtAddress, scalarListList &tgtWeights, label srcFacei=-1, label tgtFacei=-1)
 Update addressing and weights. More...
 
void operator= (const faceAreaWeightAMI &)=delete
 Disallow default bitwise assignment. More...
 
- Public Member Functions inherited from AMIMethod
 TypeName ("AMIMethod")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, AMIMethod, components,(const primitivePatch &srcPatch, const primitivePatch &tgtPatch, const scalarField &srcMagSf, const scalarField &tgtMagSf, const faceAreaIntersect::triangulationMode &triMode, const bool reverseTarget, const bool requireMatch),(srcPatch, tgtPatch, srcMagSf, tgtMagSf, triMode, reverseTarget, requireMatch))
 Declare runtime constructor selection table. More...
 
 AMIMethod (const primitivePatch &srcPatch, const primitivePatch &tgtPatch, const scalarField &srcMagSf, const scalarField &tgtMagSf, const faceAreaIntersect::triangulationMode &triMode, const bool reverseTarget, const bool requireMatch)
 Construct from components. More...
 
 AMIMethod (const AMIMethod &)=delete
 Disallow default bitwise copy construction. More...
 
virtual ~AMIMethod ()
 Destructor. More...
 
const labelListsrcNonOverlap () const
 Labels of faces that are not overlapped by any target faces. More...
 
virtual bool conformal () const
 Flag to indicate that interpolation patches are conformal. More...
 
void operator= (const AMIMethod &)=delete
 Disallow default bitwise assignment. More...
 

Protected Member Functions

virtual void calcAddressing (List< DynamicList< label >> &srcAddress, List< DynamicList< scalar >> &srcWeights, List< DynamicList< label >> &tgtAddress, List< DynamicList< scalar >> &tgtWeights, label srcFacei, label tgtFacei)
 Calculate addressing and weights using temporary storage. More...
 
virtual bool processSourceFace (const label srcFacei, const label tgtStartFacei, DynamicList< label > &nbrFaces, DynamicList< label > &visitedFaces, List< DynamicList< label >> &srcAddr, List< DynamicList< scalar >> &srcWght, List< DynamicList< label >> &tgtAddr, List< DynamicList< scalar >> &tgtWght)
 Determine overlap contributions for source face srcFacei. More...
 
virtual void restartUncoveredSourceFace (List< DynamicList< label >> &srcAddr, List< DynamicList< scalar >> &srcWght, List< DynamicList< label >> &tgtAddr, List< DynamicList< scalar >> &tgtWght)
 Attempt to re-evaluate source faces that have not been included. More...
 
virtual void setNextFaces (label &startSeedI, label &srcFacei, label &tgtFacei, const boolList &mapFlag, labelList &seedFaces, const DynamicList< label > &visitedFaces, bool errorOnNotFound=true) const
 Set the source and target seed faces. More...
 
virtual scalar minWeight () const
 The minimum weight below which connections are discarded. More...
 
virtual scalar interArea (const label srcFacei, const label tgtFacei) const
 Area of intersection between source and target faces. More...
 
- Protected Member Functions inherited from AMIMethod
void checkPatches () const
 Check AMI patch coupling. More...
 
bool initialise (labelListList &srcAddress, scalarListList &srcWeights, labelListList &tgtAddress, scalarListList &tgtWeights, label &srcFacei, label &tgtFacei)
 Initialise and return true if all ok. More...
 
void writeIntersectionOBJ (const scalar area, const face &f1, const face &f2, const pointField &f1Points, const pointField &f2Points) const
 Write triangle intersection to OBJ file. More...
 
void resetTree ()
 Reset the octree for the target patch face search. More...
 
label findTargetFace (const label srcFacei) const
 Find face on target patch that overlaps source face. More...
 
void appendNbrFaces (const label facei, const primitivePatch &patch, const DynamicList< label > &visitedFaces, DynamicList< label > &faceIDs) const
 Add faces neighbouring facei to the ID list. More...
 
virtual scalar maxWalkAngle () const
 The maximum edge angle that the walk will cross. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from AMIMethod
static autoPtr< AMIMethodNew (const word &methodName, const primitivePatch &srcPatch, const primitivePatch &tgtPatch, const scalarField &srcMagSf, const scalarField &tgtMagSf, const faceAreaIntersect::triangulationMode &triMode, const bool reverseTarget, const bool requireMatch)
 Selector. More...
 
- Protected Types inherited from AMIMethod
typedef treeDataPrimitivePatch< primitivePatchtreeType
 Local typedef to octree tree-type. More...
 
- Protected Attributes inherited from AMIMethod
const primitivePatchsrcPatch_
 Reference to source patch. More...
 
const primitivePatchtgtPatch_
 Reference to target patch. More...
 
const bool reverseTarget_
 Flag to indicate that the two patches are co-directional and. More...
 
const bool requireMatch_
 Flag to indicate that the two patches must be matched/an overlap. More...
 
const scalarFieldsrcMagSf_
 Source face areas. More...
 
const scalarFieldtgtMagSf_
 Target face areas. More...
 
labelList srcNonOverlap_
 Labels of faces that are not overlapped by any target faces. More...
 
autoPtr< indexedOctree< treeType > > treePtr_
 Octree used to find face seeds. More...
 
const faceAreaIntersect::triangulationMode triMode_
 Face triangulation mode. More...
 

Detailed Description

Face area weighted Arbitrary Mesh Interface (AMI) method.

Source files

Definition at line 48 of file faceAreaWeightAMI.H.

Constructor & Destructor Documentation

◆ faceAreaWeightAMI() [1/2]

faceAreaWeightAMI ( const primitivePatch srcPatch,
const primitivePatch tgtPatch,
const scalarField srcMagSf,
const scalarField tgtMagSf,
const faceAreaIntersect::triangulationMode triMode,
const bool  reverseTarget = false,
const bool  requireMatch = true,
const bool  restartUncoveredSourceFace = true 
)

Construct from components.

Definition at line 473 of file faceAreaWeightAMI.C.

Referenced by faceAreaWeightAMI::minWeight().

Here is the caller graph for this function:

◆ faceAreaWeightAMI() [2/2]

faceAreaWeightAMI ( const faceAreaWeightAMI )
delete

Disallow default bitwise copy construction.

◆ ~faceAreaWeightAMI()

~faceAreaWeightAMI ( )
virtual

Destructor.

Definition at line 500 of file faceAreaWeightAMI.C.

References faceAreaWeightAMI::calculate().

Here is the call graph for this function:

Member Function Documentation

◆ calcAddressing()

void calcAddressing ( List< DynamicList< label >> &  srcAddress,
List< DynamicList< scalar >> &  srcWeights,
List< DynamicList< label >> &  tgtAddress,
List< DynamicList< scalar >> &  tgtWeights,
label  srcFacei,
label  tgtFacei 
)
protectedvirtual

Calculate addressing and weights using temporary storage.

Definition at line 41 of file faceAreaWeightAMI.C.

References DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), and faceAreaWeightAMI::processSourceFace().

Referenced by partialFaceAreaWeightAMI::calculate().

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

◆ processSourceFace()

bool processSourceFace ( const label  srcFacei,
const label  tgtStartFacei,
DynamicList< label > &  nbrFaces,
DynamicList< label > &  visitedFaces,
List< DynamicList< label >> &  srcAddr,
List< DynamicList< scalar >> &  srcWght,
List< DynamicList< label >> &  tgtAddr,
List< DynamicList< scalar >> &  tgtWght 
)
protectedvirtual

Determine overlap contributions for source face srcFacei.

Definition at line 118 of file faceAreaWeightAMI.C.

References DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::clear(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::remove(), faceAreaWeightAMI::setNextFaces(), and List< T >::size().

Referenced by faceAreaWeightAMI::calcAddressing().

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

◆ restartUncoveredSourceFace()

void restartUncoveredSourceFace ( List< DynamicList< label >> &  srcAddr,
List< DynamicList< scalar >> &  srcWght,
List< DynamicList< label >> &  tgtAddr,
List< DynamicList< scalar >> &  tgtWght 
)
protectedvirtual

◆ setNextFaces()

void setNextFaces ( label startSeedI,
label srcFacei,
label tgtFacei,
const boolList mapFlag,
labelList seedFaces,
const DynamicList< label > &  visitedFaces,
bool  errorOnNotFound = true 
) const
protectedvirtual

Set the source and target seed faces.

Definition at line 193 of file faceAreaWeightAMI.C.

References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, faceAreaWeightAMI::interArea(), Foam::Pout, and List< T >::size().

Referenced by faceAreaWeightAMI::processSourceFace().

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

◆ minWeight()

Foam::scalar minWeight ( ) const
protectedvirtual

The minimum weight below which connections are discarded.

Definition at line 464 of file faceAreaWeightAMI.C.

References faceAreaWeightAMI::faceAreaWeightAMI(), and faceAreaIntersect::tolerance().

Here is the call graph for this function:

◆ interArea()

Foam::scalar interArea ( const label  srcFacei,
const label  tgtFacei 
) const
protectedvirtual

Area of intersection between source and target faces.

Reimplemented in sweptFaceAreaWeightAMI.

Definition at line 307 of file faceAreaWeightAMI.C.

References faceAreaIntersect::calc(), Foam::endl(), face::mag(), Foam::mag(), n, faceAreaWeightAMI::restartUncoveredSourceFace(), and WarningInFunction.

Referenced by sweptFaceAreaWeightAMI::interArea(), and faceAreaWeightAMI::setNextFaces().

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

◆ TypeName()

TypeName ( "faceAreaWeightAMI"  )

Runtime type information.

◆ calculate()

void calculate ( labelListList srcAddress,
scalarListList srcWeights,
labelListList tgtAddress,
scalarListList tgtWeights,
label  srcFacei = -1,
label  tgtFacei = -1 
)
virtual

Update addressing and weights.

Implements AMIMethod.

Reimplemented in partialFaceAreaWeightAMI.

Definition at line 507 of file faceAreaWeightAMI.C.

References Foam::endl(), forAll, Foam::Pout, and List< T >::transfer().

Referenced by faceAreaWeightAMI::~faceAreaWeightAMI().

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

◆ operator=()

void operator= ( const faceAreaWeightAMI )
delete

Disallow default bitwise assignment.


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