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 100 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
 
template<typename ShapeFunction , typename LowerOrderShapeFunction >
using LocAsmBuilderFactory
 

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 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
private
Initial value:
IntegrationMethodProvider,
ConstructorArgs...>

Definition at line 105 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
private
Initial value:
LocalAssemblerBuilderFactoryTaylorHood<ShapeFunction,
LowerOrderShapeFunction,
LocalAssemblerInterface,
LocalAssemblerImplementation,
IntegrationMethodProvider,
GlobalDim,
ConstructorArgs...>

Definition at line 111 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 140 of file LocalAssemblerFactoryTaylorHood.h.

143 : Base{dof_table, integration_method_provider}
144 {
145 using EnabledElementTraits =
146 decltype(BaseLib::TMP::filter<EnabledElementTraitsLagrange>(
147 std::declval<IsElementEnabled>()));
148
149 BaseLib::TMP::foreach<EnabledElementTraits>(
150 [this]<typename ET>(ET*)
151 {
152 using MeshElement = typename ET::Element;
153 using ShapeFunction = typename ET::ShapeFunction;
154 using LowerOrderShapeFunction =
155 typename ET::LowerOrderShapeFunction;
156
157 Base::_builders[std::type_index(typeid(MeshElement))] =
158 LocAsmBuilderFactory<ShapeFunction,
159 LowerOrderShapeFunction>::
160 template create<MeshElement>();
161 });
162 }
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: