OGS
ProcessLib::LocalAssemblerFactoryForDimGreaterEqualN< MinElementDim, LocalAssemblerInterface, LocalAssemblerImplementation, IntegrationMethodProvider, GlobalDim, ConstructorArgs > Class Template Referencefinal

Detailed Description

template<int MinElementDim, typename LocalAssemblerInterface, template< typename, int > class LocalAssemblerImplementation, NumLib::IntegrationMethodProvider IntegrationMethodProvider, int GlobalDim, typename... ConstructorArgs>
class ProcessLib::LocalAssemblerFactoryForDimGreaterEqualN< MinElementDim, LocalAssemblerInterface, LocalAssemblerImplementation, IntegrationMethodProvider, GlobalDim, ConstructorArgs >

Creates local assemblers for mesh elements with dimension greater than or equal to MinElementDim.

This local assembler factory supports a single type of shape functions, i.e., all primary variables are discretized with the same shape function.

Definition at line 32 of file LocalAssemblerFactoryForDimGreaterEqualN.h.

#include <LocalAssemblerFactoryForDimGreaterEqualN.h>

Inheritance diagram for ProcessLib::LocalAssemblerFactoryForDimGreaterEqualN< MinElementDim, LocalAssemblerInterface, LocalAssemblerImplementation, IntegrationMethodProvider, GlobalDim, ConstructorArgs >:
[legend]
Collaboration diagram for ProcessLib::LocalAssemblerFactoryForDimGreaterEqualN< MinElementDim, LocalAssemblerInterface, LocalAssemblerImplementation, IntegrationMethodProvider, GlobalDim, ConstructorArgs >:
[legend]

Classes

struct  IsElementEnabled
 

Public Member Functions

 LocalAssemblerFactoryForDimGreaterEqualN (NumLib::LocalToGlobalIndexMap const &dof_table, IntegrationMethodProvider const &integration_method_provider)
 
- Public Member Functions inherited from ProcessLib::GenericLocalAssemblerFactory< LocalAssemblerInterface, IntegrationMethodProvider, ConstructorArgs... >
LocAsmIntfPtr operator() (std::size_t const id, MeshLib::Element const &mesh_item, ConstructorArgs &&... args) const
 

Private Types

using Base
 

Additional Inherited Members

- Public Types inherited from ProcessLib::GenericLocalAssemblerFactory< LocalAssemblerInterface, IntegrationMethodProvider, ConstructorArgs... >
using LocAsmIntfPtr
 
using LocAsmBuilder
 
- Protected Member Functions inherited from ProcessLib::GenericLocalAssemblerFactory< LocalAssemblerInterface, IntegrationMethodProvider, ConstructorArgs... >
 GenericLocalAssemblerFactory (NumLib::LocalToGlobalIndexMap const &dof_table, IntegrationMethodProvider const &integration_method_provider)
 
- Protected Attributes inherited from ProcessLib::GenericLocalAssemblerFactory< LocalAssemblerInterface, IntegrationMethodProvider, ConstructorArgs... >
std::unordered_map< std::type_index, LocAsmBuilder_builders
 Mapping of element types to local assembler builders.
 

Member Typedef Documentation

◆ Base

template<int MinElementDim, typename LocalAssemblerInterface , template< typename, int > class LocalAssemblerImplementation, NumLib::IntegrationMethodProvider IntegrationMethodProvider, int GlobalDim, typename... ConstructorArgs>
using ProcessLib::LocalAssemblerFactoryForDimGreaterEqualN< MinElementDim, LocalAssemblerInterface, LocalAssemblerImplementation, IntegrationMethodProvider, GlobalDim, ConstructorArgs >::Base
private
Initial value:
GenericLocalAssemblerFactory<LocalAssemblerInterface,
IntegrationMethodProvider,
ConstructorArgs...>
GenericLocalAssemblerFactory(NumLib::LocalToGlobalIndexMap const &dof_table, IntegrationMethodProvider const &integration_method_provider)

Definition at line 37 of file LocalAssemblerFactoryForDimGreaterEqualN.h.

Constructor & Destructor Documentation

◆ LocalAssemblerFactoryForDimGreaterEqualN()

template<int MinElementDim, typename LocalAssemblerInterface , template< typename, int > class LocalAssemblerImplementation, NumLib::IntegrationMethodProvider IntegrationMethodProvider, int GlobalDim, typename... ConstructorArgs>
ProcessLib::LocalAssemblerFactoryForDimGreaterEqualN< MinElementDim, LocalAssemblerInterface, LocalAssemblerImplementation, IntegrationMethodProvider, GlobalDim, ConstructorArgs >::LocalAssemblerFactoryForDimGreaterEqualN ( NumLib::LocalToGlobalIndexMap const & dof_table,
IntegrationMethodProvider const & integration_method_provider )
inlineexplicit

Definition at line 56 of file LocalAssemblerFactoryForDimGreaterEqualN.h.

59 : Base{dof_table, integration_method_provider}
60 {
61 using EnabledElementTraits =
62 decltype(BaseLib::TMP::filter<EnabledElementTraitsLagrange>(
63 std::declval<IsElementEnabled>()));
64
65 BaseLib::TMP::foreach<EnabledElementTraits>(
66 [this]<typename ET>(ET*)
67 {
68 using MeshElement = typename ET::Element;
69 using ShapeFunction = typename ET::ShapeFunction;
70 Base::_builders[std::type_index(typeid(MeshElement))] =
71 LocalAssemblerBuilderFactory<
72 ShapeFunction,
73 LocalAssemblerInterface,
74 LocalAssemblerImplementation,
75 IntegrationMethodProvider,
76 GlobalDim,
77 ConstructorArgs...>::template create<MeshElement>();
78 });
79 }
GenericLocalAssemblerFactory< LocalAssemblerInterface, IntegrationMethodProvider, ConstructorArgs... > Base
std::unordered_map< std::type_index, LocAsmBuilder > _builders
Mapping of element types to local assembler builders.

The documentation for this class was generated from the following file: