74 integration_method_provider,
75 const unsigned shapefunction_order)
76 :
Base{dof_table, integration_method_provider}
78 if (shapefunction_order < 1 || 2 < shapefunction_order)
80 OGS_FATAL(
"The given shape function order {:d} is not supported",
84 if (shapefunction_order == 1)
87 using EnabledElementTraits =
89 std::declval<HasSuitableDimension>()));
92 [
this]<
typename ET>(ET*)
94 using MeshElement =
typename ET::Element;
97 using LowerOrderShapeFunction =
98 typename ET::LowerOrderShapeFunction;
99 Base::_builders[std::type_index(
typeid(MeshElement))] =
101 template create<MeshElement>();
104 else if (shapefunction_order == 2)
107 using EnabledElementTraits =
109 std::declval<Is2ndOrderElementOfSuitableDimension>()));
112 [
this]<
typename ET>(ET*)
114 using MeshElement =
typename ET::Element;
115 using ShapeFunction2ndOrder =
typename ET::ShapeFunction;
116 Base::_builders[std::type_index(
typeid(MeshElement))] =
118 template create<MeshElement>();