33 template <
template <
typename ,
41 template <typename , typename ,
43 class LocalAssemblerImplementation,
44 typename LocalAssemblerInterface, typename... ExtraCtorArgs>
46 std::vector<MeshLib::Element*> const& mesh_elements,
48 std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers,
50 ExtraCtorArgs&&... extra_ctor_args)
53 LocalAssemblerImplementation,
54 GlobalDim, ExtraCtorArgs...>;
56 DBUG(
"Create local assemblers.");
58 LocAsmFac factory(dof_table, integration_order);
59 local_assemblers.resize(mesh_elements.size());
61 DBUG(
"Calling local assembler builder for all mesh elements.");
63 factory, mesh_elements, local_assemblers,
64 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
69 template <
int GlobalDim,
70 template <
typename ,
typename ,
72 class LocalAssemblerImplementation,
73 typename LocalAssemblerInterface, typename... ExtraCtorArgs>
75 std::vector<MeshLib::Element*> const& mesh_elements,
77 std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers,
79 ExtraCtorArgs&&... extra_ctor_args)
82 LocalAssemblerImplementation,
84 mesh_elements, dof_table, local_assemblers, integration_order,
85 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
88 template <
int GlobalDim,
89 template <
typename ,
typename ,
91 class LocalAssemblerImplementation,
92 typename LocalAssemblerInterface, typename... ExtraCtorArgs>
94 std::vector<MeshLib::Element*> const& mesh_elements,
96 std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers,
98 ExtraCtorArgs&&... extra_ctor_args)
103 mesh_elements, dof_table, local_assemblers, integration_order,
104 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
void DBUG(fmt::format_string< Args... > fmt, Args &&... args)
void createLocalAssemblersTaylorHood(std::vector< MeshLib::Element * > const &mesh_elements, NumLib::LocalToGlobalIndexMap const &dof_table, std::vector< std::unique_ptr< LocalAssemblerInterface >> &local_assemblers, NumLib::IntegrationOrder const integration_order, ExtraCtorArgs &&... extra_ctor_args)
LocalAssemblerFactoryTaylorHood< 1, 2, LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs... > LocalAssemblerFactoryHM
HM processes in OGS are defined for linear and higher order elements.
LocalAssemblerFactoryForDimGreaterEqualN< 1, LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs... > LocalAssemblerFactory
By default processes in OGS are defined in 1D, 2D and 3D.
void createLocalAssemblersHM(std::vector< MeshLib::Element * > const &mesh_elements, NumLib::LocalToGlobalIndexMap const &dof_table, std::vector< std::unique_ptr< LocalAssemblerInterface >> &local_assemblers, NumLib::IntegrationOrder const integration_order, ExtraCtorArgs &&... extra_ctor_args)
void createLocalAssemblersStokes(std::vector< MeshLib::Element * > const &mesh_elements, NumLib::LocalToGlobalIndexMap const &dof_table, std::vector< std::unique_ptr< LocalAssemblerInterface >> &local_assemblers, NumLib::IntegrationOrder const integration_order, ExtraCtorArgs &&... extra_ctor_args)
LocalAssemblerFactoryTaylorHood< 2, 2, LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs... > LocalAssemblerFactoryStokes
Stokes flow in OGS is defined for higher order elements only.
static void transformDereferenced(F const &f, C const &c, Data &data, Args_ &&... args)