23 OGS_FATAL(
"Invalid face id '{:d}' for a line.", face_id);
40 auto const r = 0.5 * (wp[0] + 1);
51 OGS_FATAL(
"Invalid face id '{:d}' for the tri.", face_id);
79 OGS_FATAL(
"Invalid face id '{:d}' for the quad.", face_id);
109 OGS_FATAL(
"Invalid face id '{:d}' for the hexahedron.", face_id);
119 auto const r = wp[0];
120 auto const s = wp[1];
130 auto const r01 = 0.5 * (r + 1);
136 auto const r01 = 0.5 * (r + 1);
142 auto const r01 = 0.5 * (r + 1);
149 OGS_FATAL(
"Invalid face id '{:d}' for the prism.", face_id);
159 auto const r = wp[0];
160 auto const s = wp[1];
163 auto const z = 2 * s - 1;
164 auto const w = s == 1 ? -1 : 2 * r / (1 - s) - 1;
179 OGS_FATAL(
"Invalid face id '{:d}' for the pyramid.", face_id);
189 auto const r = wp[0];
190 auto const s = wp[1];
191 auto const t = 1 - r - s;
204 OGS_FATAL(
"Invalid face id '{:d}' for the tetrahedron.", face_id);
214 std::size_t
const bulk_face_id,
223 switch (bulk_element_cell_type)
227 return getBulkElementPointHex(bulk_face_id, point_on_face);
229 return getBulkElementPointPrism(bulk_face_id, point_on_face);
231 return getBulkElementPointPyramid(bulk_face_id, point_on_face);
233 return getBulkElementPointTet(bulk_face_id, point_on_face);
236 return getBulkElementPointQuad(bulk_face_id, point_on_face);
238 return getBulkElementPointTri(bulk_face_id, point_on_face);
241 return getBulkElementPointLine(bulk_face_id);
244 "Wrong cell type '{:s}' or functionality not yet implemented.",
constexpr std::size_t getDimension() const
The point dimension, i.e., the number of its coordinates.
MathLib::Point3d getBulkElementPoint(MeshLib::CellType const bulk_element_cell_type, std::size_t const bulk_face_id, MathLib::WeightedPoint const &point_on_face)
CellType
Types of mesh elements supported by OpenGeoSys.
std::string CellType2String(const CellType t)
Given a MeshElemType this returns the appropriate string.
MathLib::Point3d getBulkElementPointLine(std::size_t const face_id)
MathLib::Point3d getBulkElementPointTri(std::size_t const face_id, MathLib::WeightedPoint const &wp)
MathLib::Point3d getBulkElementPointTet(std::size_t const face_id, MathLib::WeightedPoint const &wp)
MathLib::Point3d getBulkElementPointQuad(std::size_t const face_id, MathLib::WeightedPoint const &wp)
MathLib::Point3d getBulkElementPointPrism(std::size_t const face_id, MathLib::WeightedPoint const &wp)
MathLib::Point3d getBulkElementPointHex(std::size_t const face_id, MathLib::WeightedPoint const &wp)
MathLib::Point3d getBulkElementPointPyramid(std::size_t const face_id, MathLib::WeightedPoint const &wp)