version 0.4.1
Ikarus::ScalarManipulator< Wrapper, Assembler > Struct Template Reference

Base class for a wrapper to a scalar assembler. More...

#include <ikarus/assembler/assemblermanipulatorbuildingblocks.hh>

Public Types

using WrappedAssembler = Wrapper
 
using FEC = typename Assembler::FEContainer
 
using DV = typename Assembler::DirichletValuesType
 
using FERequirement = typename Assembler::FERequirement
 
using ScalarType = typename Assembler::ScalarType
 
using Interface = ScalarAssembler< WrappedAssembler, FEC, DV, ScalarType >
 
using FunctionType = std::function< void(const Assembler &, const FERequirement &, ScalarAffordance, ScalarType &)>
 

Public Member Functions

template<typename F >
requires Concepts::IsFunctorWithArgs<F, const Assembler&, const FERequirement&, ScalarAffordance, ScalarType&>
void bind (F &&f)
 A helper function to add functions that can be used to manipulate the assembled quantity. More...
 

Public Attributes

friend Interface
 
std::vector< FunctionTypesfs
 

Protected Member Functions

ScalarTypegetScalarImpl (const FERequirement &feRequirements, ScalarAffordance affordance)
 

Detailed Description

template<typename Wrapper, typename Assembler>
struct Ikarus::ScalarManipulator< Wrapper, Assembler >
Template Parameters
WrapperType of the wrapper to an assembler
AssemblerType of the assembler

Member Typedef Documentation

◆ DV

template<typename Wrapper , typename Assembler >
using Ikarus::ScalarManipulator< Wrapper, Assembler >::DV = typename Assembler::DirichletValuesType

◆ FEC

template<typename Wrapper , typename Assembler >
using Ikarus::ScalarManipulator< Wrapper, Assembler >::FEC = typename Assembler::FEContainer

◆ FERequirement

template<typename Wrapper , typename Assembler >
using Ikarus::ScalarManipulator< Wrapper, Assembler >::FERequirement = typename Assembler::FERequirement

◆ FunctionType

template<typename Wrapper , typename Assembler >
using Ikarus::ScalarManipulator< Wrapper, Assembler >::FunctionType = std::function<void(const Assembler&, const FERequirement&, ScalarAffordance, ScalarType&)>

◆ Interface

template<typename Wrapper , typename Assembler >
using Ikarus::ScalarManipulator< Wrapper, Assembler >::Interface = ScalarAssembler<WrappedAssembler, FEC, DV, ScalarType>

◆ ScalarType

template<typename Wrapper , typename Assembler >
using Ikarus::ScalarManipulator< Wrapper, Assembler >::ScalarType = typename Assembler::ScalarType

◆ WrappedAssembler

template<typename Wrapper , typename Assembler >
using Ikarus::ScalarManipulator< Wrapper, Assembler >::WrappedAssembler = Wrapper

Member Function Documentation

◆ bind()

template<typename Wrapper , typename Assembler >
template<typename F >
requires Concepts::IsFunctorWithArgs<F, const Assembler&, const FERequirement&, ScalarAffordance, ScalarType&>
void Ikarus::ScalarManipulator< Wrapper, Assembler >::bind ( F &&  f)
inline
Template Parameters
FType of the function
Parameters
fA function that manipulates the assembled quantity.

◆ getScalarImpl()

template<typename Wrapper , typename Assembler >
ScalarType & Ikarus::ScalarManipulator< Wrapper, Assembler >::getScalarImpl ( const FERequirement feRequirements,
ScalarAffordance  affordance 
)
inlineprotected

Member Data Documentation

◆ Interface

template<typename Wrapper , typename Assembler >
friend Ikarus::ScalarManipulator< Wrapper, Assembler >::Interface

◆ sfs

template<typename Wrapper , typename Assembler >
std::vector<FunctionType> Ikarus::ScalarManipulator< Wrapper, Assembler >::sfs

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