Loading...
Searching...
No Matches
element_reference.cpp
56ReferenceElementInfo::ReferenceElementInfo(int _dimension, ElementType _type, int _nVertices, int _nFaces, int _nEdges)
152void ReferenceElementInfo::initializeFaceEdges(const std::vector<const ReferenceElementInfo *> &facesInfo,
272double Reference3DElementInfo::evalEdgePerimeter(const std::array<double, 3> *vertexCoords) const
290double Reference3DElementInfo::evalFaceArea(int face, const std::array<double, 3> *vertexCoords) const
293 const Reference2DElementInfo &faceInfo = static_cast<const Reference2DElementInfo &>(getInfo(faceType));
311double Reference3DElementInfo::evalEdgeLength(int edge, const std::array<double, 3> *vertexCoords) const
313 const ReferenceLineInfo &edgeInfo = static_cast<const ReferenceLineInfo &>(getInfo(ElementType::LINE));
332void Reference3DElementInfo::evalPointProjection(const std::array<double, 3> &point, const std::array<double, 3> *vertexCoords,
340 const Reference2DElementInfo &faceInfo = static_cast<const Reference2DElementInfo &>(getInfo(faceType));
363double Reference3DElementInfo::evalPointDistance(const std::array<double, 3> &point, const std::array<double, 3> *vertexCoords) const
370 const Reference2DElementInfo &faceInfo = static_cast<const Reference2DElementInfo &>(getInfo(faceType));
763 const ReferenceQuadInfo &quadInfo = static_cast<const ReferenceQuadInfo &>(getInfo(ElementType::QUAD));
764 const ReferencePyramidInfo &pyramidInfo = static_cast<const ReferencePyramidInfo &>(getInfo(ElementType::PYRAMID));
897 double volume = dotProduct(RA, crossProduct(DB, AC)) / 6. + dotProduct(AC, crossProduct(AD, AB)) / 12.;
1016 const ReferenceTriangleInfo &triaInfo = static_cast<const ReferenceTriangleInfo &>(getInfo(ElementType::TRIANGLE));
1017 const ReferenceQuadInfo &quadInfo = static_cast<const ReferenceQuadInfo &>(getInfo(ElementType::QUAD));
1018 const ReferenceTetraInfo &tetraInfo = static_cast<const ReferenceTetraInfo &>(getInfo(ElementType::TETRA));
1019 const ReferencePyramidInfo &pyramidInfo = static_cast<const ReferencePyramidInfo &>(getInfo(ElementType::PYRAMID));
1126double Reference2DElementInfo::evalFaceLength(int face, const std::array<double, 3> *vertexCoords) const
1128 const ReferenceLineInfo &sideInfo = static_cast<const ReferenceLineInfo &>(getInfo(ElementType::LINE));
1147void Reference2DElementInfo::evalPointProjection(const std::array<double, 3> &point, const std::array<double, 3> *vertexCoords,
1157 *distance = CGElem::distancePointPolygon(point, nVertices, ccwVertexCoords, *projection, projectionFlag);
1167double Reference2DElementInfo::evalPointDistance(const std::array<double, 3> &point, const std::array<double, 3> *vertexCoords) const
1347std::array<double, 3> ReferenceTriangleInfo::evalNormal(const std::array<double, 3> *vertexCoords, const std::array<double, 3> &point) const
1370void ReferenceTriangleInfo::evalPointProjection(const std::array<double, 3> &point, const std::array<double, 3> *vertexCoords,
1373 *projection = CGElem::projectPointTriangle(point, vertexCoords[0], vertexCoords[1], vertexCoords[2]);
1384double ReferenceTriangleInfo::evalPointDistance(const std::array<double, 3> &point, const std::array<double, 3> *vertexCoords) const
1386 return CGElem::distancePointTriangle(point, vertexCoords[0], vertexCoords[1], vertexCoords[2]);
1490std::array<double, 3> ReferencePixelInfo::evalNormal(const std::array<double, 3> *vertexCoords, const std::array<double, 3> &point) const
1636std::array<double, 3> ReferenceQuadInfo::evalNormal(const std::array<double, 3> *vertexCoords, const std::array<double, 3> &point) const
1778void ReferenceLineInfo::evalPointProjection(const std::array<double, 3> &point, const std::array<double, 3> *vertexCoords,
1784 *projection = CGElem::reconstructPointFromBarycentricSegment(vertexCoords[0], vertexCoords[1], lambda);
1794double ReferenceLineInfo::evalPointDistance(const std::array<double, 3> &point, const std::array<double, 3> *vertexCoords) const
1882std::array<double, 3> ReferenceVertexInfo::evalNormal(const std::array<double, 3> *vertexCoords,
1902void ReferenceVertexInfo::evalPointProjection(const std::array<double, 3> &point, const std::array<double, 3> *vertexCoords,
1916double ReferenceVertexInfo::evalPointDistance(const std::array<double, 3> &point, const std::array<double, 3> *vertexCoords) const
Reference0DElementInfo(ElementType type)
Definition element_reference.cpp:1816
Reference1DElementInfo(ElementType type)
Definition element_reference.cpp:1671
The Reference2DElementInfo class allows to define information about reference two-dimensional element...
Definition element_reference.hpp:187
virtual int getCCWOrderedVertex(int n) const
Definition element_reference.cpp:1197
virtual int getCCWOrderedFace(int n) const
Definition element_reference.cpp:1221
double evalPointDistance(const std::array< double, 3 > &point, const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:1167
double evalFaceLength(int face, const std::array< double, 3 > *vertexCoords) const
Definition element_reference.cpp:1126
double evalSize(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:1086
Reference2DElementInfo(ElementType type, int nVertices)
Definition element_reference.cpp:1071
void evalPointProjection(const std::array< double, 3 > &point, const std::array< double, 3 > *vertexCoords, std::array< double, 3 > *projection, double *distance) const override
Definition element_reference.cpp:1147
double evalPerimeter(const std::array< double, 3 > *vertexCoords) const
Definition element_reference.cpp:1108
void getCCWVertexCoords(const std::array< double, 3 > *vertexCoords, const std::array< double, 3 > **ccwVertexCoords, std::array< double, 3 > *ccwVertexCoordsStorage) const
Definition element_reference.cpp:1240
virtual bool areVerticesCCWOrdered() const
Definition element_reference.cpp:1184
virtual bool areFacesCCWOrdered() const
Definition element_reference.cpp:1208
double evalSurfaceArea(const std::array< double, 3 > *vertexCoords) const
Definition element_reference.cpp:255
double evalSize(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:232
double evalEdgePerimeter(const std::array< double, 3 > *vertexCoords) const
Definition element_reference.cpp:272
double evalFaceArea(int face, const std::array< double, 3 > *vertexCoords) const
Definition element_reference.cpp:290
Reference3DElementInfo(ElementType type, int nVertices, int nFaces)
Definition element_reference.cpp:217
double evalPointDistance(const std::array< double, 3 > &point, const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:363
void evalPointProjection(const std::array< double, 3 > &point, const std::array< double, 3 > *vertexCoords, std::array< double, 3 > *projection, double *distance) const override
Definition element_reference.cpp:332
double evalEdgeLength(int edge, const std::array< double, 3 > *vertexCoords) const
Definition element_reference.cpp:311
ReferenceElementInfo(int _dimension, ElementType _type, int _nVertices, int _nFaces, int _nEdges)
Definition element_reference.cpp:56
static bool hasInfo(ElementType type)
Definition element_reference.cpp:79
static BITPIT_PUBLIC_API const ReferenceElementInfo & getInfo(ElementType type)
Definition element_reference.cpp:108
void initializeFaceEdges(const std::vector< const ReferenceElementInfo * > &facesInfo, const std::vector< const ReferenceElementInfo * > &edgesInfo)
Definition element_reference.cpp:152
The ReferenceHexahedronInfo class defines the information about the reference hexahedron.
Definition element_reference.hpp:136
ReferenceHexahedronInfo()
Definition element_reference.cpp:657
double evalVolume(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:759
The ReferenceLineInfo class defines the information about the reference line.
Definition element_reference.hpp:304
std::array< double, 3 > evalNormal(const std::array< double, 3 > *vertexCoords, const std::array< double, 3 > &orientation={{0., 0., 1.}}, const std::array< double, 3 > &point={{0.5, 0.5, 0.5}}) const override
Definition element_reference.cpp:1755
void evalPointProjection(const std::array< double, 3 > &point, const std::array< double, 3 > *vertexCoords, std::array< double, 3 > *projection, double *distance) const override
Definition element_reference.cpp:1778
double evalLength(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:1735
double evalPointDistance(const std::array< double, 3 > &point, const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:1794
ReferenceLineInfo()
Definition element_reference.cpp:1689
double evalSize(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:1724
The ReferencePixelInfo class defines the information about the reference pixel.
Definition element_reference.hpp:242
bool areVerticesCCWOrdered() const override
Definition element_reference.cpp:1510
double evalSize(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:1451
int getCCWOrderedVertex(int n) const override
Definition element_reference.cpp:1523
std::array< double, 3 > evalNormal(const std::array< double, 3 > *vertexCoords, const std::array< double, 3 > &point={{0.5, 0.5, 0.5}}) const override
Definition element_reference.cpp:1490
bool areFacesCCWOrdered() const override
Definition element_reference.cpp:1536
ReferencePixelInfo()
Definition element_reference.cpp:1402
int getCCWOrderedFace(int n) const override
Definition element_reference.cpp:1549
double evalArea(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:1471
The ReferencePyramidInfo class defines the information about the reference pyramid.
Definition element_reference.hpp:153
ReferencePyramidInfo()
Definition element_reference.cpp:800
double evalVolume(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:889
The ReferenceQuadInfo class defines the information about the reference quadrangle.
Definition element_reference.hpp:270
ReferenceQuadInfo()
Definition element_reference.cpp:1569
double evalArea(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:1608
std::array< double, 3 > evalNormal(const std::array< double, 3 > *vertexCoords, const std::array< double, 3 > &point={{0.5, 0.5, 0.5}}) const override
Definition element_reference.cpp:1636
The ReferenceTetraInfo class defines the information about the reference tetrahedron.
Definition element_reference.hpp:98
double evalSize(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:483
double evalVolume(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:461
ReferenceTetraInfo()
Definition element_reference.cpp:394
The ReferenceTriangleInfo class defines the information about the reference triangle.
Definition element_reference.hpp:215
ReferenceTriangleInfo()
Definition element_reference.cpp:1270
double evalPointDistance(const std::array< double, 3 > &point, const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:1384
double evalArea(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:1328
void evalPointProjection(const std::array< double, 3 > &point, const std::array< double, 3 > *vertexCoords, std::array< double, 3 > *projection, double *distance) const override
Definition element_reference.cpp:1370
double evalSize(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:1310
std::array< double, 3 > evalNormal(const std::array< double, 3 > *vertexCoords, const std::array< double, 3 > &point={{0.5, 0.5, 0.5}}) const override
Definition element_reference.cpp:1347
The ReferenceVertexInfo class defines the information about the reference vertex.
Definition element_reference.hpp:346
std::array< double, 3 > evalNormal(const std::array< double, 3 > *vertexCoords, const std::array< double, 3 > &orientation={{1., 0., 0.}}) const override
Definition element_reference.cpp:1882
double evalPointDistance(const std::array< double, 3 > &point, const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:1916
double evalSize(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:1865
void evalPointProjection(const std::array< double, 3 > &point, const std::array< double, 3 > *vertexCoords, std::array< double, 3 > *projection, double *distance) const override
Definition element_reference.cpp:1902
ReferenceVertexInfo()
Definition element_reference.cpp:1834
The ReferenceVoxelInfo class defines the information about the reference voxel.
Definition element_reference.hpp:117
double evalSize(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:628
ReferenceVoxelInfo()
Definition element_reference.cpp:508
double evalVolume(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:607
The ReferenceWedgeInfo class defines the information about the reference wedge.
Definition element_reference.hpp:170
ReferenceWedgeInfo()
Definition element_reference.cpp:915
double evalVolume(const std::array< double, 3 > *vertexCoords) const override
Definition element_reference.cpp:1008
array3D projectPointTriangle(array3D const &, array3D const &, array3D const &, array3D const &)
Definition CG_elem.cpp:1050
array3D reconstructPointFromBarycentricSegment(array3D const &, array3D const &, std::array< double, 2 > const &)
Definition CG_elem.cpp:829
double distancePointTriangle(array3D const &, array3D const &, array3D const &, array3D const &)
Definition CG_elem.cpp:1411
double distancePointSegment(array3D const &, array3D const &, array3D const &)
Definition CG_elem.cpp:1383
double distancePointPolygon(array3D const &, std::vector< array3D > const &, array3D &, int &)
Definition CG_elem.cpp:1500
std::array< T, 3 > crossProduct(const std::array< T, 3 > &x, const std::array< T, 3 > &y)
Definition MathOperators_array.tpp:890
T dotProduct(const std::array< T, d > &x, const std::array< T, d > &y)
Definition MathOperators_array.tpp:851
The namespace 'mapping' contains structures for working with the MapperVolOctree class.
Definition volume_mapper.hpp:44
