FreeFOAM The Cross-Platform CFD Toolkit
face Class Reference

A face is a list of labels corresponding to mesh vertices. More...

#include <OpenFOAM/face.H>


Detailed Description

+ Inheritance diagram for face:
+ Collaboration diagram for face:

List of all members.

Public Member Functions

 face ()
 Construct null.
 face (label)
 Construct given size.
 face (const UList< label > &)
 Construct from list of labels.
 face (const labelList &)
 Construct from list of labels.
 face (const Xfer< labelList > &)
 Construct by transferring the parameter contents.
 face (const triFace &)
 Copy construct from triFace.
 face (Istream &)
 Construct from Istream.
label collapse ()
 Collapse face by removing duplicate point labels.
pointField points (const pointField &meshPoints) const
 Return the points corresponding to this face.
point centre (const pointField &) const
 Centre point of face.
template<class Type >
Type average (const pointField &, const Field< Type > &) const
 Calculate average value at centroid of face.
scalar mag (const pointField &) const
 Scalar magnitude.
vector normal (const pointField &) const
 Vector normal; magnitude is equal to area of face.
face reverseFace () const
 Return face with reverse direction.
label which (const label globalIndex) const
 Navigation through face vertices.
label nextLabel (const label i) const
 Next vertex on face.
label prevLabel (const label i) const
 Previous vertex on face.
scalar sweptVol (const pointField &oldPoints, const pointField &newPoints) const
 Return the volume swept out by the face when its points move.
pointHit ray (const point &p, const vector &n, const pointField &meshPoints, const intersection::algorithm alg=intersection::FULL_RAY, const intersection::direction dir=intersection::VECTOR) const
 Return potential intersection with face with a ray starting.
pointHit intersection (const point &p, const vector &q, const point &ctr, const pointField &meshPoints, const intersection::algorithm alg, const scalar tol=0.0) const
 Fast intersection with a ray.
pointHit nearestPoint (const point &p, const pointField &meshPoints) const
 Return nearest point to face.
scalar contactSphereDiameter (const point &p, const vector &n, const pointField &meshPoints) const
 Return contact sphere diameter.
scalar areaInContact (const pointField &points, const scalarField &v) const
 Return area in contact, given the displacement in vertices.
label nEdges () const
 Return number of edges.
edgeList edges () const
 Return edges in face point ordering, i.e. edges()[0] is edge.
edge faceEdge (const label n) const
 Return n-th face edge.
int edgeDirection (const edge &) const
 Return the edge direction on the face.
label nTriangles () const
 Number of triangles after splitting.
label nTriangles (const pointField &points) const
 Number of triangles after splitting.
label triangles (const pointField &points, label &triI, faceList &triFaces) const
 Split into triangles using existing points.
template<unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
label triangles (const pointField &points, DynamicList< face, SizeInc, SizeMult, SizeDiv > &triFaces) const
 Split into triangles using existing points.
label nTrianglesQuads (const pointField &points, label &nTris, label &nQuads) const
 Number of triangles and quads after splitting.
label trianglesQuads (const pointField &points, label &triI, label &quadI, faceList &triFaces, faceList &quadFaces) const
 Split into triangles and quads.
- Public Member Functions inherited from List< T >
 List ()
 Null constructor.
 List (const label)
 Construct with given size.
 List (const label, const T &)
 Construct with given size and value for all elements.
 List (const List< T > &)
 Copy constructor.
 List (const Xfer< List< T > > &)
 Construct by transferring the parameter contents.
 List (List< T > &, bool reUse)
 Construct as copy or re-use as specified.
 List (const UList< T > &, const unallocLabelList &mapAddressing)
 Construct as subset.
template<class InputIterator >
 List (InputIterator first, InputIterator last)
 Construct given start and end iterators.
template<unsigned Size>
 List (const FixedList< T, Size > &)
 Construct as copy of FixedList<T, Size>
 List (const PtrList< T > &)
 Construct as copy of PtrList<T>
 List (const SLList< T > &)
 Construct as copy of SLList<T>
 List (const IndirectList< T > &)
 Construct as copy of IndirectList<T>
 List (const UIndirectList< T > &)
 Construct as copy of UIndirectList<T>
 List (const BiIndirectList< T > &)
 Construct as copy of BiIndirectList<T>
 List (Istream &)
 Construct from Istream.
autoPtr< List< T > > clone () const
 Clone.
 ~List ()
label size () const
 Return the number of elements in the UList.
void resize (const label)
 Reset size of List.
void resize (const label, const T &)
 Reset size of List and value for new elements.
void setSize (const label)
 Reset size of List.
void setSize (const label, const T &)
 Reset size of List and value for new elements.
void clear ()
 Clear the list, i.e. set size to zero.
void append (const UList< T > &)
 Append a List at the end of this list.
void append (const UIndirectList< T > &)
 Append a UIndirectList at the end of this list.
void transfer (List< T > &)
 Transfer the contents of the argument List into this list.
template<unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
void transfer (DynamicList< T, SizeInc, SizeMult, SizeDiv > &)
 Transfer the contents of the argument List into this list.
void transfer (SortableList< T > &)
 Transfer the contents of the argument List into this list.
Xfer< List< T > > xfer ()
 Transfer contents to the Xfer container.
TnewElmt (const label)
 Return subscript-checked element of UList.
void operator= (const UList< T > &)
 Assignment from UList operator. Takes linear time.
void operator= (const List< T > &)
 Assignment operator. Takes linear time.
void operator= (const SLList< T > &)
 Assignment from SLList operator. Takes linear time.
void operator= (const IndirectList< T > &)
 Assignment from IndirectList operator. Takes linear time.
void operator= (const UIndirectList< T > &)
 Assignment from UIndirectList operator. Takes linear time.
void operator= (const BiIndirectList< T > &)
 Assignment from BiIndirectList operator. Takes linear time.
void operator= (const T &)
 Assignment of all entries to the given value.
- Public Member Functions inherited from UList< T >
 UList ()
 Null constructor.
 UList (T *__restrict__ v, label size)
 Construct from components.
label fcIndex (const label i) const
 Return the forward circular index, i.e. the next index.
label rcIndex (const label i) const
 Return the reverse circular index, i.e. the previous index.
label byteSize () const
 Return the binary size in number of characters of the UList.
const Tcdata () const
 Return a const pointer to the first data element,.
Tdata ()
 Return a pointer to the first data element,.
void checkStart (const label start) const
 Check start is within valid range (0 ... size-1).
void checkSize (const label size) const
 Check size is within valid range (0 ... size).
void checkIndex (const label i) const
 Check index i is within valid range (0 ... size-1).
void writeEntry (Ostream &) const
 Write the UList as a dictionary entry.
void writeEntry (const word &keyword, Ostream &) const
 Write the UList as a dictionary entry with keyword.
void assign (const UList< T > &)
 Assign elements to those from UList.
Toperator[] (const label)
 Return element of UList.
const Toperator[] (const label) const
 Return element of constant UList.
 operator const Foam::List< T > & () const
 Allow cast to a const List<T>&.
iterator begin ()
 Return an iterator to begin traversing the UList.
iterator end ()
 Return an iterator to end traversing the UList.
const_iterator cbegin () const
 Return const_iterator to begin traversing the constant UList.
const_iterator cend () const
 Return const_iterator to end traversing the constant UList.
const_iterator begin () const
 Return const_iterator to begin traversing the constant UList.
const_iterator end () const
 Return const_iterator to end traversing the constant UList.
reverse_iterator rbegin ()
 Return reverse_iterator to begin reverse traversing the UList.
reverse_iterator rend ()
 Return reverse_iterator to end reverse traversing the UList.
const_reverse_iterator crbegin () const
 Return const_reverse_iterator to begin reverse traversing the UList.
const_reverse_iterator crend () const
 Return const_reverse_iterator to end reverse traversing the UList.
const_reverse_iterator rbegin () const
 Return const_reverse_iterator to begin reverse traversing the UList.
const_reverse_iterator rend () const
 Return const_reverse_iterator to end reverse traversing the UList.
label max_size () const
 Return size of the largest possible UList.
bool empty () const
 Return true if the UList is empty (ie, size() is zero).
void swap (UList< T > &)
 Swap two ULists of the same type in constant time.
bool operator== (const UList< T > &) const
 Equality operation on ULists of the same type.
bool operator!= (const UList< T > &) const
 The opposite of the equality operation. Takes linear time.
bool operator< (const UList< T > &) const
 Compare two ULists lexicographically. Takes linear time.
bool operator> (const UList< T > &) const
 Compare two ULists lexicographically. Takes linear time.
bool operator<= (const UList< T > &) const
 Return true if !(a > b). Takes linear time.
bool operator>= (const UList< T > &) const
 Return true if !(a < b). Takes linear time.
template<>
const bool & operator[] (const label i) const

Static Public Member Functions

static int compare (const face &, const face &)
 compare faces
- Static Public Member Functions inherited from List< T >
static const List< T > & null ()
 Return a null List.

Static Public Attributes

static const char *const typeName = "face"

Friends

bool operator== (const face &a, const face &b)
bool operator!= (const face &a, const face &b)
Istreamoperator>> (Istream &, face &)

Additional Inherited Members

- Public Types inherited from List< T >
typedef SubList< TsubList
 Declare type of subList.
- Public Types inherited from UList< T >
typedef T value_type
 Type of values the UList contains.
typedef Treference
 Type that can be used for storing into.
typedef const Tconst_reference
 Type that can be used for storing into.
typedef label difference_type
 The type that can represent the difference between any two.
typedef label size_type
 The type that can represent the size of a UList.
typedef Titerator
 Random access iterator for traversing UList.
typedef const Tconst_iterator
 Random access iterator for traversing UList.
typedef Treverse_iterator
 Reverse iterator for reverse traversal of UList.
typedef const Tconst_reverse_iterator
 Reverse iterator for reverse traversal of constant UList.
- Protected Member Functions inherited from List< T >
void size (const label)
 Override size to be inconsistent with allocated storage.

Constructor & Destructor Documentation

face ( )
inline

Construct null.

Definition at line 44 of file faceI.H.

face ( label  s)
inlineexplicit

Construct given size.

Definition at line 48 of file faceI.H.

face ( const UList< label > &  lst)
inlineexplicit

Construct from list of labels.

Definition at line 54 of file faceI.H.

face ( const labelList lst)
inlineexplicit

Construct from list of labels.

Definition at line 60 of file faceI.H.

face ( const Xfer< labelList > &  lst)
inlineexplicit

Construct by transferring the parameter contents.

Definition at line 66 of file faceI.H.

face ( const triFace f)

Copy construct from triFace.

Definition at line 292 of file face.C.

face ( Istream is)
inline

Construct from Istream.

Definition at line 72 of file faceI.H.


Member Function Documentation

Foam::label collapse ( )

Collapse face by removing duplicate point labels.

return the collapsed size

Definition at line 453 of file face.C.

References setSize().

Referenced by face::compare(), and STARCD::readCells().

Foam::pointField points ( const pointField meshPoints) const
inline

Return the points corresponding to this face.

Definition at line 80 of file faceI.H.

References forAll, and p.

Foam::point centre ( const pointField meshPoints) const
Type average ( const pointField meshPoints,
const Field< Type > &  f 
) const

Calculate average value at centroid of face.

Definition at line 51 of file faceTemplates.C.

References Foam::mag(), and nPoints.

Foam::scalar mag ( const pointField p) const
inline

Scalar magnitude.

Definition at line 97 of file faceI.H.

References Foam::mag().

Referenced by face::areaInContact().

Foam::vector normal ( const pointField p) const

Vector normal; magnitude is equal to area of face.

Definition at line 541 of file face.C.

References nPoints, and Vector< scalar >::zero.

Referenced by faceTriangulation::faceTriangulation(), and octreeDataFaceList::getSampleType().

Foam::face reverseFace ( ) const

Return face with reverse direction.

Definition at line 600 of file face.C.

References f(), List< T >::size(), and Foam::xferMove().

Referenced by faceMesh::flip(), and removeCells::setRefinement().

Foam::label which ( const label  globalIndex) const

Navigation through face vertices.

Which vertex on face (face index given a global index)

Definition at line 619 of file face.C.

References f(), and forAll.

Foam::label prevLabel ( const label  i) const
inline

Previous vertex on face.

Definition at line 124 of file faceI.H.

Foam::scalar sweptVol ( const pointField oldPoints,
const pointField newPoints 
) const

Return the volume swept out by the face when its points move.

Definition at line 638 of file face.C.

References nPoints.

Foam::pointHit ray ( const point p,
const vector n,
const pointField meshPoints,
const intersection::algorithm  alg = intersection::FULL_RAY,
const intersection::direction  dir = intersection::VECTOR 
) const

Return potential intersection with face with a ray starting.

at p, direction n (does not need to be normalized) Does face-center decomposition and returns triangle intersection point closest to p. Face-center is calculated from point average. For a hit, the distance is signed. Positive number represents the point in front of triangle In case of miss the point is the nearest point on the face and the distance is the distance between the intersection point and the original point. The half-ray or full-ray intersection and the contact sphere adjustment of the projection vector is set by the intersection parameters

Definition at line 46 of file faceIntersection.C.

References Foam::average(), PointHit< Point >::distance(), PointHit< Point >::eligibleMiss(), f(), PointHit< Point >::hit(), PointHit< Point >::hitPoint(), Foam::mag(), PointHit< Point >::missPoint(), nPoints, points, PointHit< Point >::setDistance(), PointHit< Point >::setHit(), PointHit< Point >::setMiss(), and PointHit< Point >::setPoint().

Referenced by octreeDataFaceList::intersects(), treeDataCell::intersects(), and octreeDataFace::intersects().

Foam::pointHit intersection ( const point p,
const vector q,
const point ctr,
const pointField meshPoints,
const intersection::algorithm  alg,
const scalar  tol = 0.0 
) const

Fast intersection with a ray.

Does face-center decomposition and returns triangle intersection point closest to p. See triangle::intersection for details.

Definition at line 133 of file faceIntersection.C.

References PointHit< Point >::distance(), f(), forAll, PointHit< Point >::hit(), PointHit< Point >::hitPoint(), Foam::mag(), PointHit< Point >::setDistance(), PointHit< Point >::setHit(), and PointHit< Point >::setPoint().

Foam::scalar contactSphereDiameter ( const point p,
const vector n,
const pointField meshPoints 
) const

Return contact sphere diameter.

Definition at line 34 of file faceContactSphere.C.

References Foam::mag(), and p.

Foam::scalar areaInContact ( const pointField points,
const scalarField v 
) const

Return area in contact, given the displacement in vertices.

Definition at line 36 of file faceAreaInContact.C.

References forAll, face::mag(), Foam::mag(), List< T >::setSize(), and List< T >::size().

Foam::label nEdges ( ) const
inline

Return number of edges.

Definition at line 103 of file faceI.H.

Foam::edgeList edges ( ) const

Return edges in face point ordering, i.e. edges()[0] is edge.

between [0] and [1]

Definition at line 693 of file face.C.

References e, and List< T >::size().

Referenced by Foam::polyMeshZipUpCells().

Foam::edge faceEdge ( const label  n) const
inline

Return n-th face edge.

Definition at line 110 of file faceI.H.

int edgeDirection ( const edge e) const

Return the edge direction on the face.

  • 0: edge not found on the face

+1: forward (counter-clockwise) on the face

  • -1: reverse (clockwise) on the face

Definition at line 713 of file face.C.

References edge::end(), forAll, and edge::start().

Foam::label nTriangles ( ) const
inline
Foam::label nTriangles ( const pointField points) const

Number of triangles after splitting.

Definition at line 757 of file face.C.

Foam::label triangles ( const pointField points,
label &  triI,
faceList triFaces 
) const

Split into triangles using existing points.

Result in triFaces[triI..triI+nTri]. Splits intelligently to maximize triangle quality. Returns number of faces created.

Definition at line 764 of file face.C.

Referenced by STARCDsurfaceFormat< Face >::read(), boundaryMesh::triangulate(), MeshedSurface< Face >::triangulate(), triSurfaceTools::triangulate(), boundaryMesh::triangulateLocal(), and STARCD::writeSurface().

Foam::label triangles ( const pointField points,
DynamicList< face, SizeInc, SizeMult, SizeDiv > &  triFaces 
) const

Split into triangles using existing points.

Append to DynamicList. Returns number of faces created.

Definition at line 33 of file faceTemplates.C.

References DynamicList< T, SizeInc, SizeMult, SizeDiv >::setSize(), and List< T >::size().

Foam::label nTrianglesQuads ( const pointField points,
label &  nTris,
label &  nQuads 
) const

Number of triangles and quads after splitting.

Returns the sum of both

Definition at line 778 of file face.C.

Foam::label trianglesQuads ( const pointField points,
label &  triI,
label &  quadI,
faceList triFaces,
faceList quadFaces 
) const

Split into triangles and quads.

Results in triFaces (starting at triI) and quadFaces (starting at quadI). Returns number of new faces created.

Definition at line 792 of file face.C.

int compare ( const face a,
const face b 
)
static

compare faces

0: different +1: identical -1: same face, but different orientation

Definition at line 305 of file face.C.

References b, face::collapse(), forAll, and List< T >::size().

Referenced by Foam::operator!=(), and Foam::operator==().


Friends And Related Function Documentation

bool operator== ( const face a,
const face b 
)
friend
bool operator!= ( const face a,
const face b 
)
friend
Istream& operator>> ( Istream ,
face  
)
friend

Member Data Documentation

const char *const typeName = "face"
static

Definition at line 131 of file face.H.


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