18 std::size_t
const face_id,
27 std::array<double, 3>{{1 - wp[0], wp[0], 0.0}}};
30 std::array<double, 3>{{0.0, 1 - wp[0], 0.0}}};
32 OGS_FATAL(
"Invalid face id '{:d}' for the tri.", face_id);
37 std::size_t
const face_id,
48 std::array<double, 3>{{1.0 - wp[0], 1.0, 0.0}}};
51 std::array<double, 3>{{0.0, 1.0 - wp[0], 0.0}}};
53 OGS_FATAL(
"Invalid face id '{:d}' for the quad.", face_id);
58 std::size_t
const face_id,
65 std::array<double, 3>{{wp[1], wp[0], -1.0}}};
68 std::array<double, 3>{{wp[0], -1.0, wp[1]}}};
73 std::array<double, 3>{{-wp[0], -1.0, wp[1]}}};
76 std::array<double, 3>{{-1.0, -wp[0], -wp[1]}}};
80 OGS_FATAL(
"Invalid face id '{:d}' for the hexahedron.", face_id);
85 std::size_t
const face_id,
92 std::array<double, 3>{{wp[1], wp[0], -1.0}}};
95 std::array<double, 3>{{wp[0] / 2.0 + 0.5, 0.0, wp[1]}}};
98 {0.5 - wp[0] / 2.0, 0.5 + wp[0] / 2.0, wp[1]}}};
101 std::array<double, 3>{{0, -wp[0] / 2.0 + 0.5, wp[1]}}};
105 OGS_FATAL(
"Invalid face id '{:d}' for the prism.", face_id);
110 std::size_t
const face_id,
117 std::array<double, 3>{{2 * wp[0] - 1, -1.0, 2 * wp[1] - 1}}};
120 std::array<double, 3>{{1.0, 2 * wp[0] - 1, 2 * wp[1] - 1}}};
123 std::array<double, 3>{{1 - 2 * wp[0], 1.0, 2 * wp[1] - 1}}};
126 std::array<double, 3>{{-1.0, 2 * wp[1] - 1, 2 * wp[0] - 1}}};
129 std::array<double, 3>{{-wp[0], wp[1], -1.0}}};
131 OGS_FATAL(
"Invalid face id '{:d}' for the pyramid.", face_id);
136 std::size_t
const face_id,
147 std::array<double, 3>{{1 - wp[0] - wp[1], wp[0], wp[1]}}};
151 OGS_FATAL(
"Invalid face id '{:d}' for the tetrahedron.", face_id);
156 std::size_t
const bulk_element_id,
157 std::size_t
const bulk_face_id,
160 auto const* element = mesh.
getElement(bulk_element_id);
163 Quad const& quad(*
dynamic_cast<Quad const*
>(element));
168 Tri const& tri = *
static_cast<Tri const*
>(element);
171 OGS_FATAL(
"Wrong cell type '{:s}' or functionality not yet implemented.",
176 std::size_t bulk_element_id,
177 std::size_t bulk_face_id,
180 auto const* element = mesh.
getElement(bulk_element_id);
183 Hex const& hex = *
static_cast<Hex const*
>(element);
188 Prism const& prism = *
static_cast<Prism const*
>(element);
198 Tet const& tet = *
static_cast<Tet const*
>(element);
201 OGS_FATAL(
"Wrong cell type '{:s}' or functionality not yet implemented.",
const Element * getElement(std::size_t idx) const
Get the element with the given index.
MathLib::Point3d getBulkElementPoint(Tri const &, std::size_t const face_id, MathLib::WeightedPoint1D const &wp)
TemplateElement< MeshLib::TetRule4 > Tet
std::string CellType2String(const CellType t)
Given a MeshElemType this returns the appropriate string.
TemplateElement< MeshLib::PrismRule6 > Prism
TemplateElement< MeshLib::PyramidRule5 > Pyramid
TemplateElement< MeshLib::QuadRule4 > Quad