dune-functions 2.9.0
|
Composition of grid functions with another function. More...
#include <dune/functions/gridfunctions/composedgridfunction.hh>
Public Types | |
using | EntitySet = typename InnerFunction< 0 >::EntitySet |
using | Element = typename EntitySet::Element |
using | Domain = typename EntitySet::GlobalCoordinate |
using | LocalDomain = typename EntitySet::LocalCoordinate |
using | Range = decltype(std::declval< OF >()(std::declval< IF >()(std::declval< Domain >())...)) |
Public Member Functions | |
template<class OFT , class... IFT, disableCopyMove< ComposedGridFunction, OFT > = 0, std::enable_if_t<(sizeof...(IFT) > 0), int > = 0> | |
ComposedGridFunction (OFT &&outerFunction, IFT &&... innerFunctions) | |
Create ComposedGridFunction. More... | |
Range | operator() (const Domain &x) const |
Evaluation of the composed grid function in coordinates x More... | |
const EntitySet & | entitySet () const |
Return the EntitySet associated to this composed grid-function. More... | |
Protected Member Functions | |
InnerLocalFunctions | innerLocalFunctions () const |
Protected Attributes | |
OuterFunction | outerFunction_ |
InnerFunctions | innerFunctions_ |
Friends | |
Traits::DerivativeInterface | derivative (const ComposedGridFunction &t) |
Not implemented. More... | |
LocalFunction | localFunction (const ComposedGridFunction &cgf) |
Create a local-function of this composed grid-function. More... | |
Related Functions | |
(Note that these are not member functions.) | |
template<class OF , class... IF> | |
auto | makeComposedGridFunction (OF &&outerFunction, IF &&... innerFunction) |
Create a ComposedGridFunction that composes grid-functions with another function. More... | |
Composition of grid functions with another function.
For given inner grid functions g0, ..., gn
and an outer function f
this creates a grid function representing f(g0(x), ..., gn(x))
. The only assumption made, is that the range types of the inner functions can be passed to the outer ones, and that all grid functions are defined on the same EntitySet.
Notice that all functions are captured by value. To store references you can pass std::ref()
.
OF | Type of outer function. std::reference_wrapper is supported. |
IF | Types of inner outer functions. std::reference_wrapper is supported. |
using Dune::Functions::ComposedGridFunction< OF, IF >::Domain = typename EntitySet::GlobalCoordinate |
using Dune::Functions::ComposedGridFunction< OF, IF >::Element = typename EntitySet::Element |
using Dune::Functions::ComposedGridFunction< OF, IF >::EntitySet = typename InnerFunction<0>::EntitySet |
using Dune::Functions::ComposedGridFunction< OF, IF >::LocalDomain = typename EntitySet::LocalCoordinate |
using Dune::Functions::ComposedGridFunction< OF, IF >::Range = decltype(std::declval<OF>()(std::declval<IF>()(std::declval<Domain>())...)) |
|
inline |
Create ComposedGridFunction.
Outer and inner functions will be captured by value. To store references you can pass std::ref()
.
outerFunction | The outer function to be composed with the grid functions. |
innerFunctions | The inner grid functions |
|
inline |
Return the EntitySet associated to this composed grid-function.
It is implicitly assumed that all inner-functions can be bound to the same set of entities. Thus, the EntitySet is either of the EntitySets of the inner-function, e.g., the one from the first inner-function.
Requirements:
|
inlineprotected |
|
inline |
Evaluation of the composed grid function in coordinates x
|
friend |
Not implemented.
|
friend |
Create a local-function of this composed grid-function.
The LocalFunction is defined by composition of the outer-function with the corresponding local-functions of the inner-functions.
|
protected |
|
protected |