18template <
int MinElementDim,
20 template <
typename ,
int >
21 class LocalAssemblerImplementation,
22 NumLib::IntegrationMethodProvider IntegrationMethodProvider,
24 typename... ConstructorArgs>
27 IntegrationMethodProvider,
31 IntegrationMethodProvider,
36 template <
typename ElementTraits>
39 if constexpr (GlobalDim < ElementTraits::ShapeFunction::DIM)
44 return ElementTraits::Element::dimension >= MinElementDim;
51 IntegrationMethodProvider
const& integration_method_provider)
52 :
Base{dof_table, integration_method_provider}
54 using EnabledElementTraits =
56 std::declval<IsElementEnabled>()));
59 [
this]<
typename ET>(ET*)
61 using MeshElement =
typename ET::Element;
67 LocalAssemblerImplementation,
68 IntegrationMethodProvider,
70 ConstructorArgs...>::template create<MeshElement>();
76template <
typename LocalAssemblerInterface,
77 template <
typename ,
int >
78 class LocalAssemblerImplementation,
79 NumLib::IntegrationMethodProvider IntegrationMethodProvider,
81 typename... ConstructorArgs>
84 LocalAssemblerInterface,
85 LocalAssemblerImplementation,
86 IntegrationMethodProvider,
91template <typename LocalAssemblerInterface,
92 template <typename , int >
93 class LocalAssemblerImplementation,
94 NumLib::IntegrationMethodProvider IntegrationMethodProvider,
96 typename... ConstructorArgs>
99 LocalAssemblerInterface,
100 LocalAssemblerImplementation,
101 IntegrationMethodProvider,
LocalAssemblerFactoryForDimGreaterEqualN(NumLib::LocalToGlobalIndexMap const &dof_table, IntegrationMethodProvider const &integration_method_provider)
GenericLocalAssemblerFactory< LocalAssemblerInterface, IntegrationMethodProvider, ConstructorArgs... > Base
void foreach(Function &&f)
decltype(auto) filter(Pred pred)
LocalAssemblerFactoryForDimGreaterEqualN< 2, LocalAssemblerInterface, LocalAssemblerImplementation, IntegrationMethodProvider, GlobalDim, ConstructorArgs... > LocalAssemblerFactorySD
Mechanics processes in OGS are defined in 2D and 3D only.
LocalAssemblerFactoryForDimGreaterEqualN< 1, LocalAssemblerInterface, LocalAssemblerImplementation, IntegrationMethodProvider, GlobalDim, ConstructorArgs... > LocalAssemblerFactory
By default processes in OGS are defined in 1D, 2D and 3D.
std::unordered_map< std::type_index, LocAsmBuilder > _builders
GenericLocalAssemblerFactory(NumLib::LocalToGlobalIndexMap const &dof_table, IntegrationMethodProvider const &integration_method_provider)
constexpr bool operator()(ElementTraits *) const