OGS
ProcessLib::BoundaryConditionAndSourceTerm::LocalAssemblerFactory< LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs > Class Template Referencefinal

Detailed Description

template<typename LocalAssemblerInterface, template< typename, int > class LocalAssemblerImplementation, int GlobalDim, typename... ConstructorArgs>
class ProcessLib::BoundaryConditionAndSourceTerm::LocalAssemblerFactory< LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs >

Definition at line 19 of file LocalAssemblerFactory.h.

#include <LocalAssemblerFactory.h>

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

Classes

struct  HasSuitableDimension
struct  Is2ndOrderElementOfSuitableDimension

Public Member Functions

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

Private Types

using Base
template<typename ShapeFunction>
using LocAsmBuilderFactory

Additional Inherited Members

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

Member Typedef Documentation

◆ Base

template<typename LocalAssemblerInterface, template< typename, int > class LocalAssemblerImplementation, int GlobalDim, typename... ConstructorArgs>
using ProcessLib::BoundaryConditionAndSourceTerm::LocalAssemblerFactory< LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs >::Base
private

◆ LocAsmBuilderFactory

template<typename LocalAssemblerInterface, template< typename, int > class LocalAssemblerImplementation, int GlobalDim, typename... ConstructorArgs>
template<typename ShapeFunction>
using ProcessLib::BoundaryConditionAndSourceTerm::LocalAssemblerFactory< LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs >::LocAsmBuilderFactory
private

Constructor & Destructor Documentation

◆ LocalAssemblerFactory()

template<typename LocalAssemblerInterface, template< typename, int > class LocalAssemblerImplementation, int GlobalDim, typename... ConstructorArgs>
ProcessLib::BoundaryConditionAndSourceTerm::LocalAssemblerFactory< LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs >::LocalAssemblerFactory ( NumLib::LocalToGlobalIndexMap const & dof_table,
NumLib::DefaultIntegrationMethodProvider const & integration_method_provider,
const unsigned shapefunction_order )
inline

Definition at line 65 of file LocalAssemblerFactory.h.

70 {
72 {
73 OGS_FATAL("The given shape function order {:d} is not supported",
75 }
76
77 if (shapefunction_order == 1)
78 {
79 // 1st order is enabled on all elements with suitable dimension
83
85 [this]<typename ET>(ET*)
86 {
87 using MeshElement = typename ET::Element;
88 // this will use linear shape functions on higher order
89 // elements and the linear shape function on linear elements
95 });
96 }
97 else if (shapefunction_order == 2)
98 {
99 // 2nd order only on 2nd order elements
103
105 [this]<typename ET>(ET*)
106 {
107 using MeshElement = typename ET::Element;
112 });
113 }
114 }
#define OGS_FATAL(...)
Definition Error.h:19
void foreach(Function &&f)
Definition TMP.h:150
decltype(auto) filter(Pred pred)
Definition TMP.h:71

References ProcessLib::GenericLocalAssemblerFactory< LocalAssemblerInterface, NumLib::DefaultIntegrationMethodProvider, ConstructorArgs... >::_builders, BaseLib::TMP::filter(), BaseLib::TMP::foreach(), and OGS_FATAL.


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