Loading...
Searching...
No Matches
Dune::Functions::LocalFunction< Range(Domain), LocalContext, DerivativeTraits, bufferSize > Class Template Reference
Functions » Function interface wrappers

Class storing local functions using type erasure. More...

`#include <dune/functions/common/localfunction.hh>`

Inheritance diagram for Dune::Functions::LocalFunction< Range(Domain), LocalContext, DerivativeTraits, bufferSize >:

## Public Member Functions

template<class F, disableCopyMove< LocalFunction, F > = 0>
| LocalFunction (F &&f)
| Construct from function.
| LocalFunction ()=default
Range | operator() (const Domain &x) const
| Evaluation of wrapped function.
void | bind (const LocalContext &context)
| Bind function to a local context.
void | unbind ()
| Unbind from local context.
bool | bound () const
| Return if the local function is bound to a grid element.
const LocalContext & | localContext () const
| Obtain local context this LocalFunction is bound to.

## Friends

DerivativeInterface | derivative (const LocalFunction &t)
| Get derivative of wrapped function.

## Detailed Description

template<class Range, class Domain, class LocalContext, template< class > class DerivativeTraits, size_t bufferSize>
class Dune::Functions::LocalFunction< Range(Domain), LocalContext, DerivativeTraits, bufferSize >

Class storing local functions using type erasure.

Template Parameters

  Range | Range type
  Domain | Domain type
  LocalContext | Type of local context where this function is defined on
  DerivativeTraits | Traits class to determine range of derivative.
  bufferSize | Size of stack buffer for small object optimization (defaults to 56)

This models the Concept::LocalFunction<Range(Domain), LocalContext, DerivativeTraits> concept. Objects of this type are returned as local functions by the GridFunction wrapper. Notice that the DerivativeTraits type used here should normally be LocalDerivativeTraits<E,GDE> where GDE is the DerivativeTraits type of the corresponding global function. Small object optimization is used to store the given function. If its size exceed `bufferSize`, memory will be allocated dynamically.

## Constructor & Destructor Documentation

## LocalFunction() [1/2]

template<class Range, class Domain, class LocalContext, template< class > class DerivativeTraits, size_t bufferSize>
template<class F, disableCopyMove< LocalFunction, F > = 0>

Dune::Functions::LocalFunction< Range(Domain), LocalContext, DerivativeTraits, bufferSize >::LocalFunction | ( | F && | f | ) |

inline

Construct from function.

Template Parameters

  F | Function type

Parameters

  f | Function of type F

Calling derivative(DifferentiableFunction) will result in an exception if the passed function does provide a free derivative() function found via ADL.

## LocalFunction() [2/2]

template<class Range, class Domain, class LocalContext, template< class > class DerivativeTraits, size_t bufferSize>

Dune::Functions::LocalFunction< Range(Domain), LocalContext, DerivativeTraits, bufferSize >::LocalFunction | ( |  | ) |

default

## Member Function Documentation

## bind()

template<class Range, class Domain, class LocalContext, template< class > class DerivativeTraits, size_t bufferSize>

void Dune::Functions::LocalFunction< Range(Domain), LocalContext, DerivativeTraits, bufferSize >::bind | ( | const LocalContext & | context | ) |

inline

Bind function to a local context.

You must bind a LocalFunction to a local context before you can evaluate it.

## bound()

template<class Range, class Domain, class LocalContext, template< class > class DerivativeTraits, size_t bufferSize>

bool Dune::Functions::LocalFunction< Range(Domain), LocalContext, DerivativeTraits, bufferSize >::bound | ( |  | ) | const

inline

Return if the local function is bound to a grid element.

## localContext()

template<class Range, class Domain, class LocalContext, template< class > class DerivativeTraits, size_t bufferSize>

const LocalContext & Dune::Functions::LocalFunction< Range(Domain), LocalContext, DerivativeTraits, bufferSize >::localContext | ( |  | ) | const

inline

Obtain local context this LocalFunction is bound to.

## operator()()

template<class Range, class Domain, class LocalContext, template< class > class DerivativeTraits, size_t bufferSize>

Range Dune::Functions::LocalFunction< Range(Domain), LocalContext, DerivativeTraits, bufferSize >::operator() | ( | const Domain & | x | ) | const

inline

Evaluation of wrapped function.

## unbind()

template<class Range, class Domain, class LocalContext, template< class > class DerivativeTraits, size_t bufferSize>

void Dune::Functions::LocalFunction< Range(Domain), LocalContext, DerivativeTraits, bufferSize >::unbind | ( |  | ) |

inline

Unbind from local context.

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

- localfunction.hh