Go to the documentation of this file.
67 template<
class T,
int SizeMin>
class DynamicList;
86 label mostConcaveAngle
107 const splitMode
mode,
137 constexpr
face() noexcept = default;
140 inline explicit
face(const label sz);
149 inline explicit
face(std::initializer_list<label> list);
219 inline label
which(
const label pointLabel)
const;
223 inline label
thisLabel(
const label i)
const;
226 inline label
nextLabel(
const label i)
const;
229 inline label
prevLabel(
const label i)
const;
279 const scalar tol = 0.0
314 const scalar tol = SMALL
333 inline label
nEdges() const noexcept;
398 template<
int SizeMin>
448 inline
unsigned hash_code(
unsigned seed=0)
const
450 return Foam::Hasher(this->cdata(), this->size_bytes(), seed);
503 face result(
x.size());
507 result[i] =
x[i] + offset;
516 inline bool operator==(
const face& a,
const face&
b);
517 inline bool operator!=(
const face& a,
const face&
b);
static const char *const typeName
face reverseFace() const
Return face with reverse direction.
unsigned operator()(const face &obj, unsigned seed=0) const
pointHit nearestPoint(const point &p, const UList< point > &meshPoints) const
Return nearest point to face.
A class for managing temporary objects.
Describes the interaction of a face and a point. It carries the info of a successful hit and (if succ...
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
unsigned Hasher(const void *data, size_t len, unsigned seed=0)
Bob Jenkins's 96-bit mixer hashing function (lookup3)
scalar mag(const UList< point > &p) const
Magnitude of face area.
tensor inertia(const UList< point > &p, const point &refPt=vector::zero, scalar density=1.0) const
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
Symmetric hashing functor for face.
label thisLabel(const label i) const
static bool sameVertices(const face &a, const face &b)
Return true if the faces have the same vertices.
label longestEdge(const UList< point > &pts) const
Find the longest edge on a face.
label nTriangles() const
Number of triangles after splitting.
Foam::edge edge(const label edgei) const
Return i-th face edge (forward walk order).
unsigned operator()(const face &obj, unsigned seed=0) const
Foam::edge faceEdge(label edgei) const
Identical to edge()
#define forAll(list, i)
Loop across all elements in list.
label nEdges() const noexcept
Return number of edges.
static int compare(const face &a, const face &b)
Compare faces.
Foam::edge rcEdge(const label edgei) const
Return i-th face edge in reverse walk order.
mode_t mode(const fileName &name, const bool followLink=true)
Return the file mode, normally following symbolic links.
bool operator!=(const eddy &a, const eddy &b)
vector unitNormal(const UList< point > &p) const
The unit normal.
label trianglesQuads(const UList< point > &points, label &triI, label &quadI, faceList &triFaces, faceList &quadFaces) const
Split into triangles and quads.
Hash function class. The default definition is for primitives. Non-primitives used to hash entries on...
point centre(const UList< point > &points) const
Centre point of face.
label which(const label pointLabel) const
Find local index on face for the point label, same as find()
const dimensionedScalar b
Wien displacement law constant: default SI units: [m.K].
tmp< faMatrix< Type > > operator==(const faMatrix< Type > &, const faMatrix< Type > &)
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
pointHit ray(const point &p, const vector &n, const UList< point > &meshPoints, const intersection::algorithm alg=intersection::FULL_RAY, const intersection::direction dir=intersection::VECTOR) const
Type average(const UList< point > &meshPoints, const Field< Type > &fld) const
Calculate average value at centroid of face.
Offset operator for ListListOps::combineOffset()
proxType
The proximity classifications.
vector areaNormal(const UList< point > &p) const
The area normal - with magnitude equal to area of face.
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().z()<< ' ';}gmvFile<< nl;for(const word &name :lagrangianScalarNames){ IOField< scalar > fld(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
pointHit intersection(const point &p, const vector &q, const point &ctr, const UList< point > &meshPoints, const intersection::algorithm alg, const scalar tol=0.0) const
Fast intersection with a ray.
void flip()
Flip the face in-place.
edgeList edges() const
Return list of edges in forward walk order.
scalar areaInContact(const UList< point > &meshPoints, const scalarField &v) const
Return area in contact, given the displacement in vertices.
label triangles(const UList< point > &points, label &triI, faceList &triFaces) const
Split into triangles using existing points.
edgeList rcEdges() const
Return list of edges in reverse walk order.
label prevLabel(const label i) const
Previous vertex on face.
static unsigned symmhash_code(const UList< label > &f, unsigned seed=0)
The symmetric hash value for face.
Hashing functor for face.
label nextLabel(const label i) const
Next vertex on face.
label nTrianglesQuads(const UList< point > &points, label &nTris, label &nQuads) const
Number of triangles and quads after splitting.
A triangular face using a FixedList of labels corresponding to mesh vertices.
unsigned hash_code(unsigned seed=0) const
The hash value for face.
A 1D vector of objects of type <T> with a fixed length <N>.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
pointField points(const UList< point > &pts) const
Return the points corresponding to this face.
const dimensionedScalar e
Elementary charge.
FOAM_DEPRECATED_FOR(2018-12, "areaNormal() or unitNormal()") vector normal(const UList< point > &p) const
Legacy name for areaNormal()
scalar contactSphereDiameter(const point &p, const vector &n, const UList< point > &meshPoints) const
Return contact sphere diameter.
label collapse()
Collapse face by removing duplicate point labels.
static const Vector< scalar > zero
int sign(const point &p, const UList< point > &points, const scalar tol=SMALL) const
A face is a list of labels corresponding to mesh vertices.
Forwards for various types of face lists.
constexpr face() noexcept=default
Default construct.
const Vector< label > N(dict.get< Vector< label >>("N"))
int edgeDirection(const Foam::edge &e) const
Test the edge direction on the face.
pointHit nearestPointClassify(const point &p, const UList< point > &meshPoints, label &nearType, label &nearLabel) const
Return nearest point to face and classify it:
scalar sweptVol(const UList< point > &oldPoints, const UList< point > &newPoints) const
Return the volume swept out by the face when its points move.