A Gridfunction that applies a functor to the evaluated Gridfunctions. More...
#include <FunctorGridFunction.hpp>
Public Types | |
| enum | { hasDerivative = false } |
| using | Range = decltype(std::declval< Functor >()(std::declval< typename GridFunctions::Range >()...)) |
| The result type of the functor when applied to the grid-functions. | |
| using | Domain = typename Impl::DomainType< GridFunctions... >::type |
| The argument type that can be applied to the grid-functions. | |
| using | EntitySet = typename Impl::EntitySetType< GridFunctions... >::type |
| The set of entities this grid-function binds to. | |
| using | LocalFunction = FunctorLocalFunction< RawRange(LocalDomain), Functor, LocalFct< GridFunctions >... > |
Public Member Functions | |
| template<class... GridFcts> | |
| FunctorGridFunction (Functor const &fct, GridFcts &&... gridFcts) | |
| Constructor. Stores copies of the functor and gridfunctions. | |
| Range | operator() (Domain const &x) const |
| Applies the functor to the evaluated gridfunctions. | |
| EntitySet const & | entitySet () const |
| Return the stored EntitySet of the first GridFunction. | |
| LocalFunction | makeLocalFunction () const |
Related Functions | |
(Note that these are not member functions.) | |
| template<class Functor , class... PreGridFcts> | |
| auto | invokeAtQP (Functor const &f, PreGridFcts &&... gridFcts) |
| Generator function for FunctorGridFunction. More... | |
| template<class Lhs , REQUIRES(Concepts::AnyGridFunction< Lhs >) > | |
| auto | operator- (Lhs &&lhs) |
| Applies Operation::Negate to GridFunctions. More... | |
| template<class Lhs , class Rhs , REQUIRES(Concepts::AnyGridFunction< Lhs, Rhs >) > | |
| auto | operator+ (Lhs &&lhs, Rhs &&rhs) |
| Applies Operation::Plus to GridFunctions. More... | |
| template<class Lhs , class Rhs , REQUIRES(Concepts::AnyGridFunction< Lhs, Rhs >) > | |
| auto | operator- (Lhs &&lhs, Rhs &&rhs) |
| Applies Operation::Minus to GridFunctions. More... | |
| template<class Lhs , class Rhs , REQUIRES(Concepts::AnyGridFunction< Lhs, Rhs >) > | |
| auto | operator* (Lhs &&lhs, Rhs &&rhs) |
| Applies Operation::Multiplies to GridFunctions. More... | |
| template<class Lhs , class Rhs , REQUIRES(Concepts::AnyGridFunction< Lhs, Rhs >) > | |
| auto | operator/ (Lhs &&lhs, Rhs &&rhs) |
| Applies Operation::Divides to GridFunctions. More... | |
| template<class Lhs , class Rhs , REQUIRES(Concepts::AnyGridFunction< Lhs, Rhs >) > | |
| auto | max (Lhs &&lhs, Rhs &&rhs) |
| Applies Operation::Max to GridFunctions. More... | |
| template<class Lhs , class Rhs , REQUIRES(Concepts::AnyGridFunction< Lhs, Rhs >) > | |
| auto | min (Lhs &&lhs, Rhs &&rhs) |
| Applies Operation::Min to GridFunctions. More... | |
| template<class Lhs , class Rhs , REQUIRES(Concepts::AnyGridFunction< Lhs, Rhs >) > | |
| auto | abs_max (Lhs &&lhs, Rhs &&rhs) |
| Applies Operation::AbsMax to GridFunctions. More... | |
| template<class Lhs , class Rhs , REQUIRES(Concepts::AnyGridFunction< Lhs, Rhs >) > | |
| auto | abs_min (Lhs &&lhs, Rhs &&rhs) |
| Applies Operation::AbsMin to GridFunctions. More... | |
| template<class V , class T , REQUIRES(Concepts::AnyGridFunction< V >) > | |
| auto | clamp (V &&v, T const &lo, T const &hi) |
| Applies Operation::Clamp to GridFunction. More... | |
| template<class T , REQUIRES(Concepts::AnyGridFunction< T >) > | |
| auto | sqr (T &&value) |
| Applies Operation::Sqr to GridFunction. More... | |
| template<int p, class T , REQUIRES(Concepts::AnyGridFunction< T >) > | |
| auto | pow (T &&value) |
| Applies Operation::Pow. More... | |
| template<class T , REQUIRES(Concepts::AnyGridFunction< T >) > | |
| auto | pow (T &&value, int p) |
| Applies Operation::Pow_ to GridFunction. More... | |
| template<std::size_t I, class T , REQUIRES(Concepts::AnyGridFunction< T >) > | |
| auto | get (T &&value) |
| Applies Operation::Get<I> to GridFunction. More... | |
| template<class T , REQUIRES(Concepts::AnyGridFunction< T >) > | |
| auto | get (T &&value, std::size_t i) |
| Applies Operation::Get_ to GridFunction. More... | |
| template<class Vec , REQUIRES(Concepts::AnyGridFunction< Vec >) > | |
| auto | sum (Vec &&vec) |
| Applies a sum() functor to a vector-valued GridFunction. More... | |
| template<class Vec , REQUIRES(Concepts::AnyGridFunction< Vec >) > | |
| auto | unary_dot (Vec &&vec) |
| Applies Operation::UnaryDot to a vector-valued GridFunction. More... | |
| template<class Vec , REQUIRES(Concepts::AnyGridFunction< Vec >) > | |
| auto | one_norm (Vec &&vec) |
| Applies a one_norm() functor to a vector-valued GridFunction. More... | |
| template<class Vec , REQUIRES(Concepts::AnyGridFunction< Vec >) > | |
| auto | two_norm (Vec &&vec) |
| Applies Operation::TwoNorm to a vector-valued GridFunction. More... | |
| template<int p, class Vec , REQUIRES(Concepts::AnyGridFunction< Vec >) > | |
| auto | p_norm (Vec &&vec) |
| Applies a p_norm() functor to a vector-valued GridFunction. More... | |
| template<class Vec , REQUIRES(Concepts::AnyGridFunction< Vec >) > | |
| auto | infty_norm (Vec &&vec) |
| Applies a infty_norm() functor to a vector-valued GridFunction. More... | |
| template<class Mat , REQUIRES(Concepts::AnyGridFunction< Mat >) > | |
| auto | trans (Mat &&mat) |
| Applies Operation::Trans to a matrix-valued GridFunction. More... | |
| template<class Lhs , class Rhs , REQUIRES(Concepts::AnyGridFunction< Lhs, Rhs >) > | |
| auto | dot (Lhs &&lhs, Rhs &&rhs) |
| Applies Operation::Dot to two vector-valued GridFunctions. More... | |
| template<class Lhs , class Rhs , REQUIRES(Concepts::AnyGridFunction< Lhs, Rhs >) > | |
| auto | distance (Lhs &&lhs, Rhs &&rhs) |
| Applies a distance-functor to two vector-valued GridFunctions. More... | |
| template<class Lhs , class Rhs , REQUIRES(Concepts::AnyGridFunction< Lhs, Rhs >) > | |
| auto | outer (Lhs &&lhs, Rhs &&rhs) |
| Applies an outer() functor to two vector-valued GridFunctions. More... | |
A Gridfunction that applies a functor to the evaluated Gridfunctions.
Composition of GridFunctions g_i by applying a functor f locally, i.e. locally it is evaluated \( f(g_0(x), g_1(x), ...) \)
| Functor | The type of the outer functor f |
| GridFunctions... | The GridFunction types of g_i |
Requirements:
arity(f) == sizeof...(GridFunctions)arity(g_i) == arity(g_j) for i != jg_i models concept GridFunction