The Reference3DElementInfo class allows to define information about reference three-dimensional elements. More...
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) |
ReferenceElementInfo & | operator= (ReferenceElementInfo const &)=delete |
Additional Inherited Members | |
Static Public Member Functions inherited from bitpit::ReferenceElementInfo | |
static BITPIT_PUBLIC_API const ReferenceElementInfo & | getInfo (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 |
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.
|
protected |
Constructor
type | is the type of element |
nVertices | is the number of vertices |
nFaces | is the number of faces |
Definition at line 217 of file element_reference.cpp.
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.
edge | is the edge |
vertexCoords | are the coordinate of the vertices |
Definition at line 311 of file element_reference.cpp.
double bitpit::Reference3DElementInfo::evalEdgePerimeter | ( | const std::array< double, 3 > * | vertexCoords | ) | const |
Evaluates the perimeter of a three-dimensional element with the specified vertex coordinates.
vertexCoords | are the coordinate of the vertices |
Definition at line 272 of file element_reference.cpp.
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.
face | is the face |
vertexCoords | are the coordinate of the vertices |
Definition at line 290 of file element_reference.cpp.
|
overridevirtual |
Evaluates the distance between the element and the specified point.
[in] | point | is the point |
vertexCoords | are the coordinate of the vertices |
Implements bitpit::ReferenceElementInfo.
Definition at line 363 of file element_reference.cpp.
|
overridevirtual |
Evaluates the projection of the point on the element.
point | is the point | |
vertexCoords | are the coordinate of the vertices | |
[out] | projection | on output contains the projection point |
[out] | distance | on output contains the distance between the point and the projection |
Implements bitpit::ReferenceElementInfo.
Definition at line 332 of file element_reference.cpp.
|
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.
vertexCoords | are the coordinate of the vertices |
Implements bitpit::ReferenceElementInfo.
Reimplemented in bitpit::ReferenceTetraInfo, and bitpit::ReferenceVoxelInfo.
Definition at line 232 of file element_reference.cpp.
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.
vertexCoords | are the coordinate of the vertices |
Definition at line 255 of file element_reference.cpp.
|
pure virtual |