Data Structures | Public Member Functions | Static Private Member Functions | Static Private Attributes
tetOverlapVolume Class Reference

Calculates the overlap volume of two cells using tetrahedral decomposition. More...

Data Structures

class  hasOverlapOp
 tetPoints combining : check for overlap More...
 
class  sumMomentOp
 tetPoints handling : sum resulting volumes More...
 
class  sumOverlapMomentOp
 tetPoints combining : sum overlap volume More...
 
class  sumOverlapOp
 tetPoints combining : sum overlap volume More...
 

Public Member Functions

 ClassName ("tetOverlapVolume")
 Runtime type information. More...
 
 tetOverlapVolume ()
 Null constructor. More...
 
labelList overlappingCells (const polyMesh &meshA, const polyMesh &meshB, const label cellBI) const
 Return a list of cells in meshA which overlaps with cellBI in. More...
 
bool cellCellOverlapMinDecomp (const primitiveMesh &meshA, const label cellAI, const primitiveMesh &meshB, const label cellBI, const treeBoundBox &cellBbB, const scalar threshold=0.0) const
 Return true if olverlap volume is greater than threshold. More...
 
scalar cellCellOverlapVolumeMinDecomp (const primitiveMesh &meshA, const label cellAI, const primitiveMesh &meshB, const label cellBI, const treeBoundBox &cellBbB) const
 Calculates the overlap volume. More...
 
Tuple2< scalar, pointcellCellOverlapMomentMinDecomp (const primitiveMesh &meshA, const label cellAI, const primitiveMesh &meshB, const label cellBI, const treeBoundBox &cellBbB) const
 Calculates the overlap volume and moment. More...
 

Static Private Member Functions

template<class tetPointsOp >
static void tetTetOverlap (const tetPoints &tetA, const tetPoints &tetB, tetPointsOp &insideOp)
 Tet overlap calculation. More...
 
template<class tetsOp >
static void cellCellOverlapMinDecomp (const primitiveMesh &meshA, const label cellAI, const primitiveMesh &meshB, const label cellBI, const treeBoundBox &cellBbB, tetsOp &combineTetsOp)
 Cell overlap calculation. More...
 
static treeBoundBox pyrBb (const pointField &points, const face &f, const point &fc)
 Return a const treeBoundBox. More...
 

Static Private Attributes

static scalar minTetVolume_ = SMALL*SMALL
 Minimum tet volume to skip test. More...
 

Detailed Description

Calculates the overlap volume of two cells using tetrahedral decomposition.

Source files

Definition at line 54 of file tetOverlapVolume.H.

Constructor & Destructor Documentation

◆ tetOverlapVolume()

Null constructor.

Definition at line 51 of file tetOverlapVolume.C.

Member Function Documentation

◆ tetTetOverlap()

void tetTetOverlap ( const tetPoints tetA,
const tetPoints tetB,
tetPointsOp &  insideOp 
)
staticprivate

Tet overlap calculation.

Definition at line 33 of file tetOverlapVolumeTemplates.C.

References tetrahedron::mag(), tetrahedron::sliceWithPlane(), and tetPoints::tet().

Here is the call graph for this function:

◆ cellCellOverlapMinDecomp() [1/2]

void cellCellOverlapMinDecomp ( const primitiveMesh meshA,
const label  cellAI,
const primitiveMesh meshB,
const label  cellBI,
const treeBoundBox cellBbB,
tetsOp &  combineTetsOp 
)
staticprivate

Cell overlap calculation.

Definition at line 99 of file tetOverlapVolumeTemplates.C.

References tetPoints::bounds(), primitiveMesh::cellCentres(), primitiveMesh::cells(), primitiveMesh::faceOwner(), primitiveMesh::faces(), forAll, treeBoundBox::overlaps(), primitiveMesh::points(), and List::size().

Referenced by meshToMeshMethod::intersect().

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

◆ pyrBb()

Foam::treeBoundBox pyrBb ( const pointField points,
const face f,
const point fc 
)
staticprivate

Return a const treeBoundBox.

Definition at line 58 of file tetOverlapVolume.C.

References f(), forAll, boundBox::max(), Foam::max(), boundBox::min(), Foam::min(), and points.

Here is the call graph for this function:

◆ ClassName()

ClassName ( "tetOverlapVolume"  )

Runtime type information.

◆ overlappingCells()

Foam::labelList overlappingCells ( const polyMesh meshA,
const polyMesh meshB,
const label  cellBI 
) const

Return a list of cells in meshA which overlaps with cellBI in.

meshB

Definition at line 154 of file tetOverlapVolume.C.

References primitiveMesh::cellPoints(), polyMesh::cellTree(), indexedOctree::findBox(), and polyMesh::points().

Referenced by meshToMesh0::calculateCellToCellAddressing().

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

◆ cellCellOverlapMinDecomp() [2/2]

bool cellCellOverlapMinDecomp ( const primitiveMesh meshA,
const label  cellAI,
const primitiveMesh meshB,
const label  cellBI,
const treeBoundBox cellBbB,
const scalar  threshold = 0.0 
) const

Return true if olverlap volume is greater than threshold.

Definition at line 78 of file tetOverlapVolume.C.

References tetOverlapVolume::hasOverlapOp::ok_.

◆ cellCellOverlapVolumeMinDecomp()

Foam::scalar cellCellOverlapVolumeMinDecomp ( const primitiveMesh meshA,
const label  cellAI,
const primitiveMesh meshB,
const label  cellBI,
const treeBoundBox cellBbB 
) const

Calculates the overlap volume.

Definition at line 103 of file tetOverlapVolume.C.

References tetOverlapVolume::sumOverlapOp::iop_, and tetrahedron::sumVolOp::vol_.

Referenced by meshToMesh0::calculateInverseVolumeWeights(), and meshToMeshMethod::interVol().

Here is the caller graph for this function:

◆ cellCellOverlapMomentMinDecomp()

Foam::Tuple2< Foam::scalar, Foam::point > cellCellOverlapMomentMinDecomp ( const primitiveMesh meshA,
const label  cellAI,
const primitiveMesh meshB,
const label  cellBI,
const treeBoundBox cellBbB 
) const

Calculates the overlap volume and moment.

Definition at line 129 of file tetOverlapVolume.C.

References tetOverlapVolume::sumOverlapMomentOp::iop_, and tetOverlapVolume::sumMomentOp::vol_.

Referenced by meshToMeshMethod::interVolAndCentroid().

Here is the caller graph for this function:

Field Documentation

◆ minTetVolume_

Foam::scalar minTetVolume_ = SMALL*SMALL
staticprivate

Minimum tet volume to skip test.

Definition at line 59 of file tetOverlapVolume.H.


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