Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
bitpit::Reference3DElementInfo Class Referenceabstract

The Reference3DElementInfo class allows to define information about reference three-dimensional elements. More...

Inheritance diagram for bitpit::Reference3DElementInfo:
Inheritance graph
[legend]
Collaboration diagram for bitpit::Reference3DElementInfo:
Collaboration graph
[legend]

Public Member Functions

double evalEdgeLength (int edge, const std::array< double, 3 > *vertexCoords) const
 
double evalEdgePerimeter (const std::array< double, 3 > *vertexCoords) const
 
double evalFaceArea (int face, const std::array< double, 3 > *vertexCoords) const
 
double evalPointDistance (const std::array< double, 3 > &point, const std::array< double, 3 > *vertexCoords) const override
 
void evalPointProjection (const std::array< double, 3 > &point, const std::array< double, 3 > *vertexCoords, std::array< double, 3 > *projection, double *distance) const override
 
double evalSize (const std::array< double, 3 > *vertexCoords) const override
 
double evalSurfaceArea (const std::array< double, 3 > *vertexCoords) const
 
virtual double evalVolume (const std::array< double, 3 > *vertexCoords) const =0
 

Protected Member Functions

 Reference3DElementInfo (ElementType type, int nVertices, int nFaces)
 
- Protected Member Functions inherited from bitpit::ReferenceElementInfo
 ReferenceElementInfo (int _dimension, ElementType _type, int _nVertices, int _nFaces, int _nEdges)
 
 ReferenceElementInfo (ReferenceElementInfo const &)=delete
 
void initializeFaceEdges (const std::vector< const ReferenceElementInfo * > &facesInfo, const std::vector< const ReferenceElementInfo * > &edgesInfo)
 
ReferenceElementInfooperator= (ReferenceElementInfo const &)=delete
 

Additional Inherited Members

- Static Public Member Functions inherited from bitpit::ReferenceElementInfo
static BITPIT_PUBLIC_API const ReferenceElementInfogetInfo (ElementType type)
 
static bool hasInfo (ElementType type)
 
- Public Attributes inherited from bitpit::ReferenceElementInfo
int dimension
 
std::array< std::array< int, MAX_ELEM_VERTICES >, MAX_ELEM_EDGES > edgeConnectStorage
 
std::array< ElementType, MAX_ELEM_EDGES > edgeTypeStorage
 
std::array< std::array< int, MAX_ELEM_VERTICES >, MAX_ELEM_FACES > faceConnectStorage
 
std::array< std::array< int, MAX_ELEM_FACES >, MAX_ELEM_FACES > faceEdgeStorage
 
std::array< ElementType, MAX_ELEM_FACES > faceTypeStorage
 
int nEdges
 
int nFaces
 
int nVertices
 
ElementType type
 
- Static Public Attributes inherited from bitpit::ReferenceElementInfo
static BITPIT_PUBLIC_API const int MAX_ELEM_EDGES = 12
 
static BITPIT_PUBLIC_API const int MAX_ELEM_FACES = 6
 
static BITPIT_PUBLIC_API const int MAX_ELEM_VERTICES = 8
 

Detailed Description

The Reference3DElementInfo class allows to define information about reference three-dimensional elements.

The local numbering scheme of element vertices is shown below.

Definition at line 78 of file element_reference.hpp.

Constructor & Destructor Documentation

◆ Reference3DElementInfo()

bitpit::Reference3DElementInfo::Reference3DElementInfo ( ElementType type,
int nVertices,
int nFaces )
protected

Constructor

Parameters
typeis the type of element
nVerticesis the number of vertices
nFacesis the number of faces

Definition at line 217 of file element_reference.cpp.

Member Function Documentation

◆ evalEdgeLength()

double bitpit::Reference3DElementInfo::evalEdgeLength ( int edge,
const std::array< double, 3 > * vertexCoords ) const

Evaluates the length of the specified edge of a three-dimensional element with the given vertex coordinates.

Parameters
edgeis the edge
vertexCoordsare the coordinate of the vertices
Returns
The perimeter of the element.

Definition at line 311 of file element_reference.cpp.

◆ evalEdgePerimeter()

double bitpit::Reference3DElementInfo::evalEdgePerimeter ( const std::array< double, 3 > * vertexCoords) const

Evaluates the perimeter of a three-dimensional element with the specified vertex coordinates.

Parameters
vertexCoordsare the coordinate of the vertices
Returns
The perimeter of the element.

Definition at line 272 of file element_reference.cpp.

◆ evalFaceArea()

double bitpit::Reference3DElementInfo::evalFaceArea ( int face,
const std::array< double, 3 > * vertexCoords ) const

Evaluates the area of the specified face of a three-dimensional element with the given vertex coordinates.

Parameters
faceis the face
vertexCoordsare the coordinate of the vertices
Returns
The area of the specified face.

Definition at line 290 of file element_reference.cpp.

◆ evalPointDistance()

double bitpit::Reference3DElementInfo::evalPointDistance ( const std::array< double, 3 > & point,
const std::array< double, 3 > * vertexCoords ) const
overridevirtual

Evaluates the distance between the element and the specified point.

Parameters
[in]pointis the point
vertexCoordsare the coordinate of the vertices
Returns
The distance between the element and the specified point.

Implements bitpit::ReferenceElementInfo.

Definition at line 363 of file element_reference.cpp.

◆ evalPointProjection()

void bitpit::Reference3DElementInfo::evalPointProjection ( const std::array< double, 3 > & point,
const std::array< double, 3 > * vertexCoords,
std::array< double, 3 > * projection,
double * distance ) const
overridevirtual

Evaluates the projection of the point on the element.

Parameters
pointis the point
vertexCoordsare the coordinate of the vertices
[out]projectionon output contains the projection point
[out]distanceon output contains the distance between the point and the projection

Implements bitpit::ReferenceElementInfo.

Definition at line 332 of file element_reference.cpp.

◆ evalSize()

double bitpit::Reference3DElementInfo::evalSize ( const std::array< double, 3 > * vertexCoords) const
overridevirtual

Evaluates the characteristics size of an element with the specified vertex coordinates.

The characteristics size is evaluated as the volume divided by the area of the largest face.

Parameters
vertexCoordsare the coordinate of the vertices
Returns
The length of the line.

Implements bitpit::ReferenceElementInfo.

Reimplemented in bitpit::ReferenceTetraInfo, and bitpit::ReferenceVoxelInfo.

Definition at line 232 of file element_reference.cpp.

◆ evalSurfaceArea()

double bitpit::Reference3DElementInfo::evalSurfaceArea ( const std::array< double, 3 > * vertexCoords) const

Evaluates the surface area of a three-dimensional element with the specified vertex coordinates. The surface area is a measure of the total area that the surface of the object occupies.

Parameters
vertexCoordsare the coordinate of the vertices
Returns
The area of the element.

Definition at line 255 of file element_reference.cpp.

◆ evalVolume()

virtual double bitpit::Reference3DElementInfo::evalVolume ( const std::array< double, 3 > * vertexCoords) const
pure virtual

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