FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net.
            Fast, secure and Free Open Source software downloads

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

#include <OpenFOAM/face.H>


Detailed Description

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

Source files

Definition at line 71 of file face.H.

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.

Static Public Member Functions

static int  compare (const face &, const face &)
 compare faces

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)
Istream &  operator>> (Istream &, face &)

Constructor & Destructor Documentation

face (  ) [inline]

Construct null.

Definition at line 44 of file faceI.H.

face ( label   s  ) [inline, explicit]

Construct given size.

Definition at line 48 of file faceI.H.

face ( const UList< label > &   lst  ) [inline, explicit]

Construct from list of labels.

Definition at line 54 of file faceI.H.

face ( const labelList &   lst  ) [inline, explicit]

Construct from list of labels.

Definition at line 60 of file faceI.H.

face ( const Xfer< labelList > &   lst  ) [inline, explicit]

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< Cmpt >::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 octreeDataFace::intersects(), treeDataCell::intersects(), and octreeDataFaceList::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, Foam::mag(), face::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(), MeshedSurface< Face >::triangulate(), triSurfaceTools::triangulate(), boundaryMesh::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: