Class template Dune::XT::Functions::FunctionInterface

Inherits from Dune::XT::Common::ParametricInterface.

template<size_t d, size_t r, size_t rC, class R>
class Dune::XT::Functions::FunctionInterface<d, r, rC, R> : public Common::ParametricInterface

Interface for functions (in the C^ infty sense) which can thus be evaluated in global coordinates.

auto function = …; auto grid_view = …; using E = XT::Grid::extract_entity_t<decltype(grid_view)>; auto grid_function = make_grid_function(function);

These functions do not depend on a grid, but only on the dimensions and fields of their domain and range. See in particular RangeReturnTypeSelector and DerivativeRangeReturnTypeSelector for the interpretation of a function and its derivatives, and GridFunctionInterface for functions which may have discontinuities between entities (as in: which are double-valued on intersections).

To turn a function into a function which is localizable w.r.t. a GridView of matching dimension (e.g., to visualize it or to use it in a discretization scheme), use make_grid_function to obtain a wrapped version of this function:

See also: RangeReturnTypeSelector, DerivativeRangeReturnTypeSelector, GridFunctionInterface, GridInterface, make_grid_function

Method Dune::XT::Functions::FunctionInterface::operator=

template<size_t d, size_t r, size_t rC, class R>
ThisType &Dune::XT::Functions::FunctionInterface<d, r, rC, R>::operator=(const ThisType&) = delete

No documentation provided.

Method Dune::XT::Functions::FunctionInterface::operator=

template<size_t d, size_t r, size_t rC, class R>
ThisType &Dune::XT::Functions::FunctionInterface<d, r, rC, R>::operator=(ThisType&&) = delete

No documentation provided.

Method Dune::XT::Functions::FunctionInterface::copy_as_function

template<size_t d, size_t r, size_t rC, class R>
int Dune::XT::Functions::FunctionInterface<d, r, rC, R>::copy_as_function() const

Returns a (shallow) copy of the function. actual implementation work is delegated to the private copy_as_function_impl combined with hiding copy_as_function in derived classes, this allows us the a unique_ptr with correct type at all levels of the polymorphic hierarchy

Note

This is intended to be cheap, so make sure to share resources (but in a thread-safe way)!

Method Dune::XT::Functions::FunctionInterface::copy_as_function_impl

template<size_t d, size_t r, size_t rC, class R>
virtual ThisType *Dune::XT::Functions::FunctionInterface<d, r, rC, R>::copy_as_function_impl() const = 0

No documentation provided.

Method Dune::XT::Functions::FunctionInterface::order

template<size_t d, size_t r, size_t rC, class R>
virtual int Dune::XT::Functions::FunctionInterface<d, r, rC, R>::order(const XT::Common::Parameter&) const = 0

No documentation provided.

Method Dune::XT::Functions::FunctionInterface::evaluate

template<size_t d, size_t r, size_t rC, class R>
int Dune::XT::Functions::FunctionInterface<d, r, rC, R>::evaluate(const int&, const Common::Parameter&) const

Method Dune::XT::Functions::FunctionInterface::jacobian

template<size_t d, size_t r, size_t rC, class R>
int Dune::XT::Functions::FunctionInterface<d, r, rC, R>::jacobian(const int&, const Common::Parameter&) const

No documentation provided.

Method Dune::XT::Functions::FunctionInterface::derivative

template<size_t d, size_t r, size_t rC, class R>
int Dune::XT::Functions::FunctionInterface<d, r, rC, R>::derivative(const int&, const int&, const Common::Parameter&) const

No documentation provided.

Method Dune::XT::Functions::FunctionInterface::static_id

template<size_t d, size_t r, size_t rC, class R>
static std::string Dune::XT::Functions::FunctionInterface<d, r, rC, R>::static_id()

No documentation provided.

Method Dune::XT::Functions::FunctionInterface::name

template<size_t d, size_t r, size_t rC, class R>
virtual std::string Dune::XT::Functions::FunctionInterface<d, r, rC, R>::name() const

No documentation provided.

Method Dune::XT::Functions::FunctionInterface::operator-

template<size_t d, size_t r, size_t rC, class R>
Functions::DifferenceFunction<ThisType, ThisType> Dune::XT::Functions::FunctionInterface<d, r, rC, R>::operator-(const ThisType &other) const

\ }

Operators emulating numeric types.

\ {

Method Dune::XT::Functions::FunctionInterface::operator+

template<size_t d, size_t r, size_t rC, class R>
Functions::SumFunction<ThisType, ThisType> Dune::XT::Functions::FunctionInterface<d, r, rC, R>::operator+(const ThisType &other) const

No documentation provided.

Constructor Dune::XT::Functions::FunctionInterface::FunctionInterface<d, r, rC, R>

template<>
template<size_t d, size_t r, size_t rC, class R>
explicit Dune::XT::Functions::FunctionInterface<d, r, rC, R>::FunctionInterface<d, r, rC, R>(const Common::ParameterType &param_type = {})

\ }

Constructor Dune::XT::Functions::FunctionInterface::FunctionInterface<d, r, rC, R>

template<>
template<size_t d, size_t r, size_t rC, class R>
Dune::XT::Functions::FunctionInterface<d, r, rC, R>::FunctionInterface<d, r, rC, R>(const ThisType &other)

No documentation provided.

Constructor Dune::XT::Functions::FunctionInterface::FunctionInterface<d, r, rC, R>

template<>
template<size_t d, size_t r, size_t rC, class R>
Dune::XT::Functions::FunctionInterface<d, r, rC, R>::FunctionInterface<d, r, rC, R>(ThisType&) = default

No documentation provided.

Destructor Dune::XT::Functions::FunctionInterface::~FunctionInterface<d, r, rC, R>

template<>
~FunctionInterface<domainDim, rangeDim, rangeDimCols, RangeField>() override = default

No documentation provided.

Variable Dune::XT::Functions::FunctionInterface::domain_dim

const int Dune::XT::Functions::FunctionInterface::domain_dim

No documentation provided.

Variable Dune::XT::Functions::FunctionInterface::range_dim

const int Dune::XT::Functions::FunctionInterface::range_dim

No documentation provided.

Variable Dune::XT::Functions::FunctionInterface::range_dim_cols

const int Dune::XT::Functions::FunctionInterface::range_dim_cols

No documentation provided.

Variable Dune::XT::Functions::FunctionInterface::d

const int Dune::XT::Functions::FunctionInterface::d

No documentation provided.

Variable Dune::XT::Functions::FunctionInterface::r

const int Dune::XT::Functions::FunctionInterface::r

No documentation provided.

Variable Dune::XT::Functions::FunctionInterface::rC

const int Dune::XT::Functions::FunctionInterface::rC

No documentation provided.

Type alias Dune::XT::Functions::FunctionInterface::ThisType

type Dune::XT::Functions::FunctionInterface::ThisType

No documentation provided.

Type alias Dune::XT::Functions::FunctionInterface::DomainFieldType

type Dune::XT::Functions::FunctionInterface::DomainFieldType

No documentation provided.

Type alias Dune::XT::Functions::FunctionInterface::RangeFieldType

type Dune::XT::Functions::FunctionInterface::RangeFieldType

No documentation provided.

Type alias Dune::XT::Functions::FunctionInterface::D

type Dune::XT::Functions::FunctionInterface::D

No documentation provided.

Type alias Dune::XT::Functions::FunctionInterface::R

type Dune::XT::Functions::FunctionInterface::R

No documentation provided.

Type alias Dune::XT::Functions::FunctionInterface::DifferenceType

type Dune::XT::Functions::FunctionInterface::DifferenceType

No documentation provided.

Type alias Dune::XT::Functions::FunctionInterface::SumType

type Dune::XT::Functions::FunctionInterface::SumType

No documentation provided.

Class template Dune::XT::Functions::FunctionInterface::single_evaluate_helper

template<class SingleType, size_t _r, bool anything>
class Dune::XT::Functions::FunctionInterface::single_evaluate_helper<SingleType, _r, anything>

No documentation provided.

Function template Dune::XT::Functions::FunctionInterface::single_evaluate_helper::call

template<class SingleType, size_t _r, bool anything>
template<class FullType>
static SingleType Dune::XT::Functions::FunctionInterface::single_evaluate_helper<SingleType, _r, anything>::call(const FullType &val, const int row, const int)

No documentation provided.

Class template Dune::XT::Functions::FunctionInterface::single_derivative_helper

template<class SingleType, size_t _r = r, size_t _rC = rC, bool anything = true>
class Dune::XT::Functions::FunctionInterface::single_derivative_helper<SingleType, _r, _rC, anything>

No documentation provided.

Function template Dune::XT::Functions::FunctionInterface::single_derivative_helper::call

template<class SingleType, size_t _r = r, size_t _rC = rC, bool anything = true>
template<class FullType>
static SingleType Dune::XT::Functions::FunctionInterface::single_derivative_helper<SingleType, _r, _rC, anything>::call(const FullType &val, const int row, const int col)

No documentation provided.

Class template Dune::XT::Functions::FunctionInterface::single_derivative_helper

template<class SingleType, size_t _r, bool anything>
class Dune::XT::Functions::FunctionInterface::single_derivative_helper<SingleType, _r, 1, anything>

No documentation provided.

Function template Dune::XT::Functions::FunctionInterface::single_derivative_helper::call

template<class SingleType, size_t _r, bool anything>
template<class FullType>
static SingleType Dune::XT::Functions::FunctionInterface::single_derivative_helper<SingleType, _r, 1, anything>::call(const FullType &val, const int row, const int)

No documentation provided.