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

Detailed Description

template<int MinElementDim, typename LocalAssemblerInterface, template< typename, int > class LocalAssemblerImplementation, int GlobalDim, typename... ConstructorArgs>
class ProcessLib::LocalAssemblerFactoryForDimGreaterEqualN< MinElementDim, LocalAssemblerInterface, LocalAssemblerImplementation, 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 31 of file LocalAssemblerFactoryForDimGreaterEqualN.h.

#include <LocalAssemblerFactoryForDimGreaterEqualN.h>

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

Classes

struct  IsElementEnabled
 

Public Member Functions

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

Private Types

using Base = GenericLocalAssemblerFactory< LocalAssemblerInterface, ConstructorArgs... >
 

Additional Inherited Members

- Public Types inherited from ProcessLib::GenericLocalAssemblerFactory< LocalAssemblerInterface, ConstructorArgs... >
using LocAsmIntfPtr = std::unique_ptr< LocalAssemblerInterface >
 
using LocAsmBuilder = std::function< LocAsmIntfPtr(MeshLib::Element const &e, std::size_t const local_matrix_size, ConstructorArgs &&...)>
 
- Protected Member Functions inherited from ProcessLib::GenericLocalAssemblerFactory< LocalAssemblerInterface, ConstructorArgs... >
 GenericLocalAssemblerFactory (NumLib::LocalToGlobalIndexMap const &dof_table)
 
- Protected Attributes inherited from ProcessLib::GenericLocalAssemblerFactory< LocalAssemblerInterface, ConstructorArgs... >
std::unordered_map< std::type_index, LocAsmBuilder_builders
 Mapping of element types to local assembler builders. More...
 

Member Typedef Documentation

◆ Base

template<int MinElementDim, typename LocalAssemblerInterface , template< typename, int > class LocalAssemblerImplementation, int GlobalDim, typename... ConstructorArgs>
using ProcessLib::LocalAssemblerFactoryForDimGreaterEqualN< MinElementDim, LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs >::Base = GenericLocalAssemblerFactory<LocalAssemblerInterface, ConstructorArgs...>
private

Definition at line 35 of file LocalAssemblerFactoryForDimGreaterEqualN.h.

Constructor & Destructor Documentation

◆ LocalAssemblerFactoryForDimGreaterEqualN()

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

Definition at line 53 of file LocalAssemblerFactoryForDimGreaterEqualN.h.

56  : Base{dof_table}
57  {
58  using EnabledElementTraits =
59  decltype(BaseLib::TMP::filter<EnabledElementTraitsLagrange>(
60  std::declval<IsElementEnabled>()));
61 
62  BaseLib::TMP::foreach<EnabledElementTraits>(
63  [this, integration_order]<typename ET>(ET*)
64  {
65  using MeshElement = typename ET::Element;
66  using ShapeFunction = typename ET::ShapeFunction;
67  Base::_builders[std::type_index(typeid(MeshElement))] =
68  LocalAssemblerBuilderFactory<
69  ShapeFunction,
70  LocalAssemblerInterface,
71  LocalAssemblerImplementation,
72  GlobalDim,
73  ConstructorArgs...>::create(integration_order);
74  });
75  }
GenericLocalAssemblerFactory< LocalAssemblerInterface, 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: