25template <
int MinElementDim,
26 typename LocalAssemblerInterface,
27 template <
typename ,
int >
28 class LocalAssemblerImplementation,
29 NumLib::IntegrationMethodProvider IntegrationMethodProvider,
31 typename... ConstructorArgs>
34 IntegrationMethodProvider,
38 IntegrationMethodProvider,
43 template <
typename ElementTraits>
46 if constexpr (GlobalDim < ElementTraits::ShapeFunction::DIM)
51 return ElementTraits::Element::dimension >= MinElementDim;
58 IntegrationMethodProvider
const& integration_method_provider)
59 :
Base{dof_table, integration_method_provider}
61 using EnabledElementTraits =
63 std::declval<IsElementEnabled>()));
66 [
this]<
typename ET>(ET*)
68 using MeshElement =
typename ET::Element;
69 using ShapeFunction =
typename ET::ShapeFunction;
70 Base::_builders[std::type_index(
typeid(MeshElement))] =
74 LocalAssemblerImplementation,
75 IntegrationMethodProvider,
77 ConstructorArgs...>::template create<MeshElement>();
83template <
typename LocalAssemblerInterface,
84 template <
typename ,
int >
85 class LocalAssemblerImplementation,
86 NumLib::IntegrationMethodProvider IntegrationMethodProvider,
88 typename... ConstructorArgs>
91 LocalAssemblerInterface,
92 LocalAssemblerImplementation,
93 IntegrationMethodProvider,
98template <typename LocalAssemblerInterface,
99 template <typename , int >
100 class LocalAssemblerImplementation,
101 NumLib::IntegrationMethodProvider IntegrationMethodProvider,
103 typename... ConstructorArgs>
106 LocalAssemblerInterface,
107 LocalAssemblerImplementation,
108 IntegrationMethodProvider,
LocalAssemblerFactoryForDimGreaterEqualN(NumLib::LocalToGlobalIndexMap const &dof_table, IntegrationMethodProvider const &integration_method_provider)
void foreach(Function &&f)
decltype(auto) filter(Pred pred)
constexpr bool operator()(ElementTraits *) const