22 std::vector<MeshLib::Element*> const& mesh_elements,
24 std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers,
25 ProviderOrOrder const& provider_or_order,
26 ExtraCtorArgs&&... extra_ctor_args)
29 GlobalDim == 1 || GlobalDim == 2 || GlobalDim == 3,
30 "Meshes with dimension greater than three are not supported.");
32 DBUG(
"Create local assemblers.");
34 auto const& integration_method_provider =
35 getIntegrationMethodProvider(provider_or_order);
37 using IntegrationMethodProvider =
38 std::remove_cvref_t<
decltype(integration_method_provider)>;
41 IntegrationMethodProvider, GlobalDim, ExtraCtorArgs...>;
43 LocAsmFac factory(dof_table, integration_method_provider);
44 local_assemblers.resize(mesh_elements.size());
46 DBUG(
"Calling local assembler builder for all mesh elements.");
48 factory, mesh_elements, local_assemblers,
49 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
69 const unsigned dimension,
70 std::vector<MeshLib::Element*> const& mesh_elements,
72 std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers,
73 ProviderOrOrder const& provider_or_order,
74 ExtraCtorArgs&&... extra_ctor_args)
76 DBUG(
"Create local assemblers.");
82 mesh_elements, dof_table, local_assemblers, provider_or_order,
83 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
87 mesh_elements, dof_table, local_assemblers, provider_or_order,
88 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
92 mesh_elements, dof_table, local_assemblers, provider_or_order,
93 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
97 "Meshes with dimension greater than three are not supported.");
void createLocalAssemblers(std::vector< MeshLib::Element * > const &mesh_elements, NumLib::LocalToGlobalIndexMap const &dof_table, std::vector< std::unique_ptr< LocalAssemblerInterface > > &local_assemblers, ProviderOrOrder const &provider_or_order, ExtraCtorArgs &&... extra_ctor_args)
LocalAssemblerFactoryForDimGreaterEqualN< 1, LocalAssemblerInterface, LocalAssemblerImplementation, IntegrationMethodProvider, GlobalDim, ConstructorArgs... > LocalAssemblerFactory
By default processes in OGS are defined in 1D, 2D and 3D.