OGS
ProcessLib::LocalAssemblerBuilderFactory< ShapeFunction, LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs > Class Template Reference

Detailed Description

template<typename ShapeFunction, typename LocalAssemblerInterface, template< typename, int > class LocalAssemblerImplementation, int GlobalDim, typename... ConstructorArgs>
class ProcessLib::LocalAssemblerBuilderFactory< ShapeFunction, LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs >

Definition at line 82 of file GenericLocalAssemblerFactory.h.

#include <GenericLocalAssemblerFactory.h>

Static Public Member Functions

static LocAsmBuilder create (NumLib::IntegrationOrder const integration_order)
 

Private Types

using GLAF = GenericLocalAssemblerFactory< LocalAssemblerInterface, ConstructorArgs... >
 
using LocAsmIntfPtr = typename GLAF::LocAsmIntfPtr
 
using LocAsmBuilder = typename GLAF::LocAsmBuilder
 
using IntegrationMethod = typename NumLib::GaussLegendreIntegrationPolicy< typename ShapeFunction::MeshElement >::IntegrationMethod
 
using LocAsmImpl = LocalAssemblerImplementation< ShapeFunction, GlobalDim >
 

Private Member Functions

 LocalAssemblerBuilderFactory ()=delete
 

Member Typedef Documentation

◆ GLAF

template<typename ShapeFunction , typename LocalAssemblerInterface , template< typename, int > class LocalAssemblerImplementation, int GlobalDim, typename... ConstructorArgs>
using ProcessLib::LocalAssemblerBuilderFactory< ShapeFunction, LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs >::GLAF = GenericLocalAssemblerFactory<LocalAssemblerInterface, ConstructorArgs...>
private

Definition at line 84 of file GenericLocalAssemblerFactory.h.

◆ IntegrationMethod

template<typename ShapeFunction , typename LocalAssemblerInterface , template< typename, int > class LocalAssemblerImplementation, int GlobalDim, typename... ConstructorArgs>
using ProcessLib::LocalAssemblerBuilderFactory< ShapeFunction, LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs >::IntegrationMethod = typename NumLib::GaussLegendreIntegrationPolicy< typename ShapeFunction::MeshElement>::IntegrationMethod
private

Definition at line 89 of file GenericLocalAssemblerFactory.h.

◆ LocAsmBuilder

template<typename ShapeFunction , typename LocalAssemblerInterface , template< typename, int > class LocalAssemblerImplementation, int GlobalDim, typename... ConstructorArgs>
using ProcessLib::LocalAssemblerBuilderFactory< ShapeFunction, LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs >::LocAsmBuilder = typename GLAF::LocAsmBuilder
private

Definition at line 87 of file GenericLocalAssemblerFactory.h.

◆ LocAsmImpl

template<typename ShapeFunction , typename LocalAssemblerInterface , template< typename, int > class LocalAssemblerImplementation, int GlobalDim, typename... ConstructorArgs>
using ProcessLib::LocalAssemblerBuilderFactory< ShapeFunction, LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs >::LocAsmImpl = LocalAssemblerImplementation<ShapeFunction, GlobalDim>
private

Definition at line 92 of file GenericLocalAssemblerFactory.h.

◆ LocAsmIntfPtr

template<typename ShapeFunction , typename LocalAssemblerInterface , template< typename, int > class LocalAssemblerImplementation, int GlobalDim, typename... ConstructorArgs>
using ProcessLib::LocalAssemblerBuilderFactory< ShapeFunction, LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs >::LocAsmIntfPtr = typename GLAF::LocAsmIntfPtr
private

Definition at line 86 of file GenericLocalAssemblerFactory.h.

Constructor & Destructor Documentation

◆ LocalAssemblerBuilderFactory()

template<typename ShapeFunction , typename LocalAssemblerInterface , template< typename, int > class LocalAssemblerImplementation, int GlobalDim, typename... ConstructorArgs>
ProcessLib::LocalAssemblerBuilderFactory< ShapeFunction, LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs >::LocalAssemblerBuilderFactory ( )
privatedelete

Member Function Documentation

◆ create()

template<typename ShapeFunction , typename LocalAssemblerInterface , template< typename, int > class LocalAssemblerImplementation, int GlobalDim, typename... ConstructorArgs>
static LocAsmBuilder ProcessLib::LocalAssemblerBuilderFactory< ShapeFunction, LocalAssemblerInterface, LocalAssemblerImplementation, GlobalDim, ConstructorArgs >::create ( NumLib::IntegrationOrder const  integration_order)
inlinestatic

Generates a function that creates a new local assembler of type LocAsmImpl.

Definition at line 99 of file GenericLocalAssemblerFactory.h.

101  {
102  return [integration_order](MeshLib::Element const& e,
103  std::size_t const local_matrix_size,
104  ConstructorArgs&&... args)
105  {
106  auto const& integration_method = NumLib::IntegrationMethodRegistry::
107  template getIntegrationMethod<
108  typename ShapeFunction::MeshElement>(integration_order);
109 
110  return std::make_unique<LocAsmImpl>(
111  e, local_matrix_size, integration_method,
112  std::forward<ConstructorArgs>(args)...);
113  };
114  }
GenericIntegrationMethod const & getIntegrationMethod(std::type_index const mesh_element_type, IntegrationOrder const order)

References NumLib::IntegrationMethodRegistry::getIntegrationMethod().


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