Go to the documentation of this file.
63 template<
class Po
int,
class Po
intRef>
class tetrahedron;
65 template<
class Po
int,
class Po
intRef>
72 template<
class Po
int,
class Po
intRef>
85 template<
class Po
int,
class Po
intRef>
144 template<
class TetOp>
151 template<
class AboveTetOp,
class BelowTetOp>
199 inline const Point&
a()
const;
201 inline const Point&
b()
const;
203 inline const Point&
c()
const;
205 inline const Point&
d()
const;
225 inline scalar
mag()
const;
263 template<
class AboveTetOp,
class BelowTetOp>
311 friend Ostream& operator<< <Point, PointRef>
bool inside(const point &pt) const
Return true if point is inside tetrahedron.
Simple random number generator.
pointHit nearestPoint(const point &p) const
Return nearest point to p on tetrahedron. Is p itself.
Forward declarations of the specialisations of Field<T> for scalar, vector and tensor.
static void tetSliceWithPlane(const plane &pl, const tetPoints &tet, AboveTetOp &aboveOp, BelowTetOp &belowOp)
This class describes the interaction of a face and a point. It carries the info of a successful hit a...
void operator()(const tetPoints &)
Point circumCentre() const
Return circum-centre.
tetrahedron(const Point &a, const Point &b, const Point &c, const Point &d)
Construct from points.
void gradNiGradNi(tensorField &buffer) const
Geometric class that creates a 2D plane and can return the intersection point between a line and the ...
A triangle primitive used to calculate face normals and swept volumes.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void gradNiDotGradNj(scalarField &buffer) const
static point planeIntersection(const FixedList< scalar, 4 > &, const tetPoints &, const label, const label)
Pre-declare SubField and related Field type.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
pointHit containmentSphere(const scalar tol) const
Return (min)containment sphere, i.e. the smallest sphere with.
void operator()(const tetPoints &)
triPointRef tri(const label faceI) const
Return i-th face.
scalar circumRadius() const
Return circum-radius.
scalar quality() const
Return quality: Ratio of tetrahedron and circum-sphere.
void gradNiSquared(scalarField &buffer) const
Fill buffer with shape function products.
tetrahedron< point, const point & > tetPointRef
Tet storage. Null constructable (unfortunately tetrahedron<point, point> is not)
const Point & a() const
Return vertices.
void tetOverlap(const tetrahedron< Point, PointRef > &tetB, tetIntersectionList &insideTets, label &nInside, tetIntersectionList &outsideTets, label &nOutside) const
Decompose tet into tets inside and outside other tet.
void gradNiGradNj(tensorField &buffer) const
vector Sa() const
Return face normal.
Point randomPoint(Random &rndGen) const
Return a random point in the tetrahedron from a.
tetIntersectionList & tets_
A 1D vector of objects of type <T> with a fixed size <Size>.
Point centre() const
Return centre (centroid)
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
FixedList< tetPoints, 200 > tetIntersectionList
Storage type for tets originating from intersecting tets.
storeOp(tetIntersectionList &, label &)
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
scalar barycentric(const point &pt, List< scalar > &bary) const
Calculate the barycentric coordinates of the given.
scalar mag() const
Return volume.
cachedRandom rndGen(label(0), -1)
void sliceWithPlane(const plane &pl, AboveTetOp &aboveOp, BelowTetOp &belowOp) const
Decompose tet into tets above and below plane.
void operator()(const tetPoints &)
static void decomposePrism(const FixedList< point, 6 > &points, TetOp &op)