version 0.4.1
Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss > Class Template Reference

#include <ikarus/assembler/assemblermanipulatorfuser.hh>

Inheritance diagram for Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss >:
[legend]

Public Types

using WrappedAssembler = A
 
using CallBackTypes = std::tuple< typename ScalarAssemblerImpl::FunctionType, typename VectorAssemblerImpl::FunctionType, typename MatrixAssemblerImpl::FunctionType >
 

Public Member Functions

template<typename... Args>
requires (not std::is_same_v<std::remove_cvref_t<std::tuple_element_t<0, std::tuple<Args...>>>, AssemblerManipulator>)
 AssemblerManipulator (Args &&... args)
 Constructor that forwards arguments to the base assembler. More...
 

Protected Types

using ScalarAssemblerImpl = ScalarAss::template Implementation< AssemblerManipulator, A >
 
using VectorAssemblerImpl = VectorAss::template Implementation< AssemblerManipulator, A >
 
using MatrixAssemblerImpl = MatrixAss::template Implementation< AssemblerManipulator, A >
 
using ScalarAssemblerInterface = ScalarAss::template Interface< AssemblerManipulator, A, typename A::ScalarType >
 
using VectorAssemblerInterface = VectorAss::template Interface< AssemblerManipulator, A, typename A::VectorType >
 
using MatrixAssemblerInterface = MatrixAss::template Interface< AssemblerManipulator, A, typename A::MatrixType >
 

Protected Attributes

friend ScalarAssemblerImpl
 
friend VectorAssemblerImpl
 
friend MatrixAssemblerImpl
 
friend MatrixAssemblerInterface
 
friend ScalarAssemblerInterface
 
friend VectorAssemblerInterface
 

Member Typedef Documentation

◆ CallBackTypes

template<Concepts::FlatAssembler A, typename ScalarAss , typename VectorAss , typename MatrixAss >
using Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss >::CallBackTypes = std::tuple<typename ScalarAssemblerImpl::FunctionType, typename VectorAssemblerImpl::FunctionType, typename MatrixAssemblerImpl::FunctionType>

◆ MatrixAssemblerImpl

template<Concepts::FlatAssembler A, typename ScalarAss , typename VectorAss , typename MatrixAss >
using Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss >::MatrixAssemblerImpl = MatrixAss::template Implementation<AssemblerManipulator, A>
protected

◆ MatrixAssemblerInterface

template<Concepts::FlatAssembler A, typename ScalarAss , typename VectorAss , typename MatrixAss >
using Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss >::MatrixAssemblerInterface = MatrixAss::template Interface<AssemblerManipulator, A, typename A::MatrixType>
protected

◆ ScalarAssemblerImpl

template<Concepts::FlatAssembler A, typename ScalarAss , typename VectorAss , typename MatrixAss >
using Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss >::ScalarAssemblerImpl = ScalarAss::template Implementation<AssemblerManipulator, A>
protected

◆ ScalarAssemblerInterface

template<Concepts::FlatAssembler A, typename ScalarAss , typename VectorAss , typename MatrixAss >
using Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss >::ScalarAssemblerInterface = ScalarAss::template Interface<AssemblerManipulator, A, typename A::ScalarType>
protected

◆ VectorAssemblerImpl

template<Concepts::FlatAssembler A, typename ScalarAss , typename VectorAss , typename MatrixAss >
using Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss >::VectorAssemblerImpl = VectorAss::template Implementation<AssemblerManipulator, A>
protected

◆ VectorAssemblerInterface

template<Concepts::FlatAssembler A, typename ScalarAss , typename VectorAss , typename MatrixAss >
using Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss >::VectorAssemblerInterface = VectorAss::template Interface<AssemblerManipulator, A, typename A::VectorType>
protected

◆ WrappedAssembler

template<Concepts::FlatAssembler A, typename ScalarAss , typename VectorAss , typename MatrixAss >
using Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss >::WrappedAssembler = A

Constructor & Destructor Documentation

◆ AssemblerManipulator()

template<Concepts::FlatAssembler A, typename ScalarAss , typename VectorAss , typename MatrixAss >
template<typename... Args>
requires (not std::is_same_v<std::remove_cvref_t<std::tuple_element_t<0, std::tuple<Args...>>>, AssemblerManipulator>)
Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss >::AssemblerManipulator ( Args &&...  args)
inlineexplicit
Template Parameters
ArgsVariadic template parameter for constructor arguments
Parameters
argsArguments to be forwarded to the base assembler

Member Data Documentation

◆ MatrixAssemblerImpl

template<Concepts::FlatAssembler A, typename ScalarAss , typename VectorAss , typename MatrixAss >
friend Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss >::MatrixAssemblerImpl
protected

◆ MatrixAssemblerInterface

template<Concepts::FlatAssembler A, typename ScalarAss , typename VectorAss , typename MatrixAss >
friend Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss >::MatrixAssemblerInterface
protected

◆ ScalarAssemblerImpl

template<Concepts::FlatAssembler A, typename ScalarAss , typename VectorAss , typename MatrixAss >
friend Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss >::ScalarAssemblerImpl
protected

◆ ScalarAssemblerInterface

template<Concepts::FlatAssembler A, typename ScalarAss , typename VectorAss , typename MatrixAss >
friend Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss >::ScalarAssemblerInterface
protected

◆ VectorAssemblerImpl

template<Concepts::FlatAssembler A, typename ScalarAss , typename VectorAss , typename MatrixAss >
friend Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss >::VectorAssemblerImpl
protected

◆ VectorAssemblerInterface

template<Concepts::FlatAssembler A, typename ScalarAss , typename VectorAss , typename MatrixAss >
friend Ikarus::AssemblerManipulator< A, ScalarAss, VectorAss, MatrixAss >::VectorAssemblerInterface
protected

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