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 != j
g_i
models concept GridFunction