20namespace BoundaryConditionAndSourceTerm
24template <
int GlobalDim,
25 template <
typename ,
typename ,
27 class LocalAssemblerImplementation,
30 NumLib::LocalToGlobalIndexMap const& dof_table,
31 std::vector<MeshLib::Element*> const& mesh_elements,
32 std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers,
33 ExtraCtorArgs&&... extra_ctor_args)
36 GlobalDim == 1 || GlobalDim == 2 || GlobalDim == 3,
37 "Meshes with dimension greater than three are not supported.");
41 LocalAssemblerImplementation, GlobalDim,
44 DBUG(
"Create local assemblers.");
46 LocAsmFactory factory(dof_table);
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)...);
66template <
template <
typename ,
typename ,
68 class LocalAssemblerImplementation,
71 const unsigned dimension,
72 std::vector<MeshLib::Element*> const& mesh_elements,
74 std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers,
75 ExtraCtorArgs&&... extra_ctor_args)
77 DBUG(
"Create local assemblers.");
83 LocalAssemblerImplementation>(
84 dof_table, mesh_elements, local_assemblers,
85 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
89 LocalAssemblerImplementation>(
90 dof_table, mesh_elements, local_assemblers,
91 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
95 LocalAssemblerImplementation>(
96 dof_table, mesh_elements, local_assemblers,
97 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
101 "Meshes with dimension greater than three are not supported.");
void DBUG(char const *fmt, Args const &... args)
void createLocalAssemblersPython(NumLib::LocalToGlobalIndexMap const &dof_table, std::vector< MeshLib::Element * > const &mesh_elements, std::vector< std::unique_ptr< LocalAssemblerInterface > > &local_assemblers, ExtraCtorArgs &&... extra_ctor_args)
void createLocalAssemblersPython(const unsigned dimension, std::vector< MeshLib::Element * > const &mesh_elements, NumLib::LocalToGlobalIndexMap const &dof_table, std::vector< std::unique_ptr< LocalAssemblerInterface > > &local_assemblers, ExtraCtorArgs &&... extra_ctor_args)
static void transformDereferenced(F const &f, C const &c, Data &data, Args_ &&... args)