Go to the documentation of this file.
36 #ifndef tetOverlapVolume_H
37 #define tetOverlapVolume_H
79 scalar tetVol = t.
mag();
80 vol_.first() += tetVol;
104 tetTetOverlap<tetPointRef::sumVolOp>(
A, B,
iop_);
125 tetTetOverlap<tetPointRef::sumVolOp>(
A, B,
iop_);
145 tetTetOverlap<sumMomentOp>(
A, B,
iop_);
154 template<
class tetPo
intsOp>
159 tetPointsOp& insideOp
163 template<
class tetsOp>
171 tetsOp& combineTetsOp
214 const scalar threshold = 0.0
bool operator()(const tetPoints &A, const tetPoints &B)
Overlap two tets.
static treeBoundBox pyrBb(const pointField &points, const face &f, const point &fc)
Return a const treeBoundBox.
tetPoints combining : sum overlap volume
Tuple2< scalar, point > vol_
scalar cellCellOverlapVolumeMinDecomp(const primitiveMesh &meshA, const label cellAI, const primitiveMesh &meshB, const label cellBI, const treeBoundBox &cellBbB) const
Calculates the overlap volume.
Standard boundBox + extra functionality for use in octree.
static void tetTetOverlap(const tetPoints &tetA, const tetPoints &tetB, tetPointsOp &insideOp)
Tet overlap calculation.
tetPointRef::sumVolOp iop_
hasOverlapOp(const scalar threshold)
tetPoints combining : sum overlap volume
static scalar minTetVolume_
Minimum tet volume to skip test.
Mesh consisting of general polyhedral cells.
simpleMatrix< scalar > A(Nc)
ClassName("tetOverlapVolume")
Runtime type information.
void operator()(const tetPoints &tet)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
bool operator()(const tetPoints &A, const tetPoints &B)
Overlap two tets.
Pre-declare SubField and related Field type.
labelList overlappingCells(const polyMesh &meshA, const polyMesh &meshB, const label cellBI) const
Return a list of cells in meshA which overlaps with cellBI in.
static void cellCellOverlapMinDecomp(const primitiveMesh &meshA, const label cellAI, const primitiveMesh &meshB, const label cellBI, const treeBoundBox &cellBbB, tetsOp &combineTetsOp)
Cell overlap calculation.
Tuple2< scalar, point > cellCellOverlapMomentMinDecomp(const primitiveMesh &meshA, const label cellAI, const primitiveMesh &meshB, const label cellBI, const treeBoundBox &cellBbB) const
Calculates the overlap volume and moment.
tetPointRef tet() const
Return the tetrahedron.
tetOverlapVolume()
Null constructor.
Tet storage. Null constructable (unfortunately tetrahedron<point, point> is not)
bool operator()(const tetPoints &A, const tetPoints &B)
Overlap two tets.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
tetPoints combining : check for overlap
Point centre() const
Return centre (centroid)
tetPoints handling : sum resulting volumes
A face is a list of labels corresponding to mesh vertices.
tetPointRef::sumVolOp iop_
A 2-tuple for storing two objects of different types.
Calculates the overlap volume of two cells using tetrahedral decomposition.
scalar mag() const
Return volume.
A class representing the concept of 0 used to avoid unnecessary manipulations for objects that are kn...
Cell-face mesh analysis engine.