AMDiS  0.1
The Adaptive Multi-Dimensional Simulation Toolbox
FunctorGridFunction< Functor, GridFunctions > Class Template Reference

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...
 

Detailed Description

template<class Functor, class... GridFunctions>
class AMDiS::FunctorGridFunction< Functor, GridFunctions >

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), ...) \)

Template Parameters
FunctorThe 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

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