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

Detailed Description

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

Local assembler factory for Taylor-Hood elements.

Elements/shape functions must be of order greater than or equal to MinShapeFctOrder and of dimension greater than or equal to MinElementDim.

If MinShapeFctOrder is 1, local assemblers are instantiated also for linear mesh elements. In this case we don't have Taylor-Hood elements for linear mesh elements. Instead, on linear mesh elements all shape functions will have the same order (namely 1).

Definition at line 95 of file LocalAssemblerFactoryTaylorHood.h.

#include <LocalAssemblerFactoryTaylorHood.h>

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

Classes

struct  IsElementEnabled
 

Public Member Functions

 LocalAssemblerFactoryTaylorHood (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 = ProcessLib::GenericLocalAssemblerFactory< LocalAssemblerInterface, IntegrationMethodProvider, ConstructorArgs... >
 
template<typename ShapeFunction , typename LowerOrderShapeFunction >
using LocAsmBuilderFactory = LocalAssemblerBuilderFactoryTaylorHood< ShapeFunction, LowerOrderShapeFunction, LocalAssemblerInterface, LocalAssemblerImplementation, IntegrationMethodProvider, GlobalDim, ConstructorArgs... >
 

Additional Inherited Members

- Public Types inherited from ProcessLib::GenericLocalAssemblerFactory< LocalAssemblerInterface, IntegrationMethodProvider, ConstructorArgs... >
using LocAsmIntfPtr = std::unique_ptr< LocalAssemblerInterface >
 
using LocAsmBuilder = std::function< LocAsmIntfPtr(MeshLib::Element const &e, std::size_t const local_matrix_size, IntegrationMethodProvider const &integration_method_provider, ConstructorArgs &&...)>
 
- 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 MinShapeFctOrder, int MinElementDim, typename LocalAssemblerInterface , template< typename, typename, int > class LocalAssemblerImplementation, NumLib::IntegrationMethodProvider IntegrationMethodProvider, int GlobalDim, typename... ConstructorArgs>
using ProcessLib::LocalAssemblerFactoryTaylorHood< MinShapeFctOrder, MinElementDim, LocalAssemblerInterface, LocalAssemblerImplementation, IntegrationMethodProvider, GlobalDim, ConstructorArgs >::Base = ProcessLib::GenericLocalAssemblerFactory<LocalAssemblerInterface, IntegrationMethodProvider, ConstructorArgs...>
private

Definition at line 100 of file LocalAssemblerFactoryTaylorHood.h.

◆ LocAsmBuilderFactory

template<int MinShapeFctOrder, int MinElementDim, typename LocalAssemblerInterface , template< typename, typename, int > class LocalAssemblerImplementation, NumLib::IntegrationMethodProvider IntegrationMethodProvider, int GlobalDim, typename... ConstructorArgs>
template<typename ShapeFunction , typename LowerOrderShapeFunction >
using ProcessLib::LocalAssemblerFactoryTaylorHood< MinShapeFctOrder, MinElementDim, LocalAssemblerInterface, LocalAssemblerImplementation, IntegrationMethodProvider, GlobalDim, ConstructorArgs >::LocAsmBuilderFactory = LocalAssemblerBuilderFactoryTaylorHood<ShapeFunction, LowerOrderShapeFunction, LocalAssemblerInterface, LocalAssemblerImplementation, IntegrationMethodProvider, GlobalDim, ConstructorArgs...>
private

Definition at line 106 of file LocalAssemblerFactoryTaylorHood.h.

Constructor & Destructor Documentation

◆ LocalAssemblerFactoryTaylorHood()

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

Definition at line 135 of file LocalAssemblerFactoryTaylorHood.h.

138 : Base{dof_table, integration_method_provider}
139 {
140 using EnabledElementTraits =
141 decltype(BaseLib::TMP::filter<EnabledElementTraitsLagrange>(
142 std::declval<IsElementEnabled>()));
143
144 BaseLib::TMP::foreach<EnabledElementTraits>(
145 [this]<typename ET>(ET*)
146 {
147 using MeshElement = typename ET::Element;
148 using ShapeFunction = typename ET::ShapeFunction;
149 using LowerOrderShapeFunction =
150 typename ET::LowerOrderShapeFunction;
151
152 Base::_builders[std::type_index(typeid(MeshElement))] =
153 LocAsmBuilderFactory<ShapeFunction,
154 LowerOrderShapeFunction>::
155 template create<MeshElement>();
156 });
157 }
LocalAssemblerBuilderFactoryTaylorHood< ShapeFunction, LowerOrderShapeFunction, LocalAssemblerInterface, LocalAssemblerImplementation, IntegrationMethodProvider, GlobalDim, ConstructorArgs... > LocAsmBuilderFactory
ProcessLib::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: