29 NumLib::LocalToGlobalIndexMap const& dof_table,
30 const unsigned shapefunction_order,
31 std::vector<MeshLib::Element*> const& mesh_elements,
32 std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers,
34 ExtraCtorArgs&&... extra_ctor_args)
38 LocalAssemblerImplementation, GlobalDim,
41 DBUG(
"Create local assemblers.");
47 local_assemblers.resize(mesh_elements.size());
49 DBUG(
"Calling local assembler builder for all mesh elements.");
51 factory, mesh_elements, local_assemblers,
52 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
70 const unsigned dimension,
71 std::vector<MeshLib::Element*> const& mesh_elements,
73 const unsigned shapefunction_order,
74 std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers,
76 ExtraCtorArgs&&... extra_ctor_args)
78 DBUG(
"Create local assemblers.");
83 detail::createLocalAssemblers<0, LocalAssemblerImplementation>(
84 dof_table, shapefunction_order, mesh_elements, local_assemblers,
86 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
89 detail::createLocalAssemblers<1, LocalAssemblerImplementation>(
90 dof_table, shapefunction_order, mesh_elements, local_assemblers,
92 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
95 detail::createLocalAssemblers<2, LocalAssemblerImplementation>(
96 dof_table, shapefunction_order, mesh_elements, local_assemblers,
98 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
101 detail::createLocalAssemblers<3, LocalAssemblerImplementation>(
102 dof_table, shapefunction_order, mesh_elements, local_assemblers,
104 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
108 "Meshes with dimension greater than three are not supported.");
void createLocalAssemblers(NumLib::LocalToGlobalIndexMap const &dof_table, const unsigned shapefunction_order, std::vector< MeshLib::Element * > const &mesh_elements, std::vector< std::unique_ptr< LocalAssemblerInterface > > &local_assemblers, NumLib::IntegrationOrder const integration_order, ExtraCtorArgs &&... extra_ctor_args)
void createLocalAssemblers(const unsigned dimension, std::vector< MeshLib::Element * > const &mesh_elements, NumLib::LocalToGlobalIndexMap const &dof_table, const unsigned shapefunction_order, std::vector< std::unique_ptr< LocalAssemblerInterface > > &local_assemblers, NumLib::IntegrationOrder const integration_order, ExtraCtorArgs &&... extra_ctor_args)