OGS
ProcessLib::LargeDeformation::detail Namespace Reference

Functions

template<typename Result , typename Class , typename... Args>
constexpr bool areEvalArgumentTypesUnique (Result(Class::*)(Args...))
 
template<int GlobalDim, template< typename, int > class LocalAssemblerImplementation, typename LocalAssemblerInterface , IntegrationMethodProviderOrIntegrationOrder ProviderOrOrder, typename... ExtraCtorArgs>
void createLocalAssemblers (NumLib::LocalToGlobalIndexMap const &dof_table, std::vector< MeshLib::Element * > const &mesh_elements, std::vector< std::unique_ptr< LocalAssemblerInterface > > &local_assemblers, ProviderOrOrder const &provider_or_order, ExtraCtorArgs &&... extra_ctor_args)
 

Function Documentation

◆ areEvalArgumentTypesUnique()

template<typename Result , typename Class , typename... Args>
bool ProcessLib::LargeDeformation::detail::areEvalArgumentTypesUnique ( Result(Class::*  )(Args...))
constexpr

Definition at line 19 of file Invoke.h.

20{
21 using namespace boost::mp11;
22 return mp_is_set<
23 mp_transform<std::remove_cvref_t, mp_list<Args...>>>::value;
24}

References areEvalArgumentTypesUnique().

Referenced by ProcessLib::LargeDeformation::areEvalArgumentTypesUnique(), and areEvalArgumentTypesUnique().

◆ createLocalAssemblers()

template<int GlobalDim, template< typename, int > class LocalAssemblerImplementation, typename LocalAssemblerInterface , IntegrationMethodProviderOrIntegrationOrder ProviderOrOrder, typename... ExtraCtorArgs>
void ProcessLib::LargeDeformation::detail::createLocalAssemblers ( NumLib::LocalToGlobalIndexMap const & dof_table,
std::vector< MeshLib::Element * > const & mesh_elements,
std::vector< std::unique_ptr< LocalAssemblerInterface > > & local_assemblers,
ProviderOrOrder const & provider_or_order,
ExtraCtorArgs &&... extra_ctor_args )

Definition at line 30 of file CreateLocalAssemblers.h.

36{
37 DBUG("Create local assemblers.");
38
39 auto const& integration_method_provider =
40 getIntegrationMethodProvider(provider_or_order);
41
42 using IntMethProv =
43 std::remove_cvref_t<decltype(integration_method_provider)>;
44 using LocAsmFactory = ProcessLib::LocalAssemblerFactorySD<
45 LocalAssemblerInterface, LocalAssemblerImplementation, IntMethProv,
46 GlobalDim, ExtraCtorArgs...>;
47
48 LocAsmFactory factory(dof_table, integration_method_provider);
49 local_assemblers.resize(mesh_elements.size());
50
51 DBUG("Calling local assembler builder for all mesh elements.");
53 factory, mesh_elements, local_assemblers,
54 std::forward<ExtraCtorArgs>(extra_ctor_args)...);
55}
void DBUG(fmt::format_string< Args... > fmt, Args &&... args)
Definition Logging.h:30
static void transformDereferenced(F const &f, C const &c, Data &data, Args_ &&... args)

References DBUG(), and NumLib::SerialExecutor::transformDereferenced().