15#ifndef OGS_MAX_ELEMENT_DIM
16static_assert(
false,
"The macro OGS_MAX_ELEMENT_DIM is undefined.");
19#ifndef OGS_MAX_ELEMENT_ORDER
20static_assert(
false,
"The macro OGS_MAX_ELEMENT_ORDER is undefined.");
28#ifdef OGS_ENABLE_ELEMENT_SIMPLEX
35#ifdef OGS_ENABLE_ELEMENT_CUBOID
42#ifdef OGS_ENABLE_ELEMENT_PRISM
49#ifdef OGS_ENABLE_ELEMENT_PYRAMID
65using ZeroOrOneD = std::tuple<MeshLib::Point, MeshLib::Line, MeshLib::Line3>;
71 std::tuple<MeshLib::Tri, MeshLib::Tri6, MeshLib::Tet, MeshLib::Tet10>;
73using Prisms = std::tuple<MeshLib::Prism, MeshLib::Prism15>;
75using Pyramids = std::tuple<MeshLib::Pyramid, MeshLib::Pyramid13>;
77using Triangles = std::tuple<MeshLib::Tri, MeshLib::Tri6>;
79using Quads = std::tuple<MeshLib::Quad, MeshLib::Quad8, MeshLib::Quad9>;
85template <
typename Elements,
typename Element>
93 using Element =
typename ElementTraits::Element;
95 if constexpr (ElementTraits::ShapeFunction::ORDER > OGS_MAX_ELEMENT_ORDER)
99 if constexpr (Element::dimension > OGS_MAX_ELEMENT_DIM)
constexpr bool contains()
Returns if Type is contained in the given List of types.
decltype(auto) filter(Pred pred)
TemplateElement< MeshLib::QuadRule9 > Quad9
TemplateElement< MeshLib::QuadRule8 > Quad8
TemplateElement< MeshLib::QuadRule4 > Quad
TemplateElement< MeshLib::HexRule8 > Hex
std::tuple< MeshLib::Quad, MeshLib::Quad8, MeshLib::Quad9 > Quads
std::tuple< MeshLib::Prism, MeshLib::Prism15 > Prisms
constexpr bool isElementEnabledImpl(bool is_group_enabled)
std::tuple< MeshLib::Quad, MeshLib::Quad8, MeshLib::Quad9, MeshLib::Hex, MeshLib::Hex20 > Cuboids
std::tuple< MeshLib::Pyramid, MeshLib::Pyramid13 > Pyramids
std::tuple< MeshLib::Tri, MeshLib::Tri6, MeshLib::Tet, MeshLib::Tet10 > Simplices
static constexpr bool enable_element_type_tri
std::tuple< MeshLib::Point, MeshLib::Line, MeshLib::Line3 > ZeroOrOneD
static constexpr bool enable_element_type_cuboid
auto constexpr isElementEnabled
static constexpr bool enable_element_type_pyramid
static constexpr bool enable_element_type_simplex
std::tuple< MeshLib::Tri, MeshLib::Tri6 > Triangles
static constexpr bool enable_element_type_prism
static constexpr bool enable_element_type_quad
decltype(BaseLib::TMP::filter< NumLib::AllElementTraitsLagrange >( detail::isElementEnabled)) EnabledElementTraitsLagrange