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

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

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

ThisType &Dune::XT::Functions::FunctionInterface::operator=(const ThisType&) = delete

No documentation provided.

ThisType &Dune::XT::Functions::FunctionInterface::operator=(ThisType&&) = delete

No documentation provided.

int Dune::XT::Functions::FunctionInterface::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)!

virtual ThisType *Dune::XT::Functions::FunctionInterface::copy_as_function_impl() const = 0

No documentation provided.

virtual int Dune::XT::Functions::FunctionInterface::order(const XT::Common::Parameter& = <recovery-expr>({})) const = 0

No documentation provided.

virtual RangeReturnType Dune::XT::Functions::FunctionInterface::evaluate(const DomainType&, const Common::Parameter& = <recovery-expr>({})) const

\ }

´´These methods should be implemented to define the functionality of the function.‘’

\ {

virtual DerivativeRangeReturnType Dune::XT::Functions::FunctionInterface::jacobian(const DomainType&, const Common::Parameter& = <recovery-expr>({})) const

No documentation provided.

virtual DerivativeRangeReturnType Dune::XT::Functions::FunctionInterface::derivative(const std::array<size_t, d>&, const DomainType&, const Common::Parameter& = <recovery-expr>({})) const

No documentation provided.

static std::string Dune::XT::Functions::FunctionInterface::static_id()

No documentation provided.

virtual std::string Dune::XT::Functions::FunctionInterface::name() const

No documentation provided.

Functions::DifferenceFunction<ThisType, ThisType> Dune::XT::Functions::FunctionInterface::operator-(const ThisType &other) const

\ }

Operators emulating numeric types.

\ {

Functions::SumFunction<ThisType, ThisType> Dune::XT::Functions::FunctionInterface::operator+(const ThisType &other) const

No documentation provided.

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

\ }

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

No documentation provided.

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

No documentation provided.

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

No documentation provided.

const size_t Dune::XT::Functions::FunctionInterface::domain_dim

No documentation provided.

const size_t Dune::XT::Functions::FunctionInterface::range_dim

No documentation provided.

const size_t Dune::XT::Functions::FunctionInterface::range_dim_cols

No documentation provided.

const size_t Dune::XT::Functions::FunctionInterface::d

No documentation provided.

const size_t Dune::XT::Functions::FunctionInterface::r

No documentation provided.

const size_t Dune::XT::Functions::FunctionInterface::rC

No documentation provided.

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

No documentation provided.

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

No documentation provided.

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

No documentation provided.

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

No documentation provided.

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

No documentation provided.

type Dune::XT::Functions::FunctionInterface::DomainType

No documentation provided.

type Dune::XT::Functions::FunctionInterface::RangeSelector

No documentation provided.

type Dune::XT::Functions::FunctionInterface::DerivativeRangeSelector

No documentation provided.

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

No documentation provided.

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

No documentation provided.

type Dune::XT::Functions::FunctionInterface::RangeReturnType

\ {

``These types are the standard types to be used.‘’

type Dune::XT::Functions::FunctionInterface::DerivativeRangeReturnType

No documentation provided.

type Dune::XT::Functions::FunctionInterface::RowDerivativeRangeReturnType

No documentation provided.

type Dune::XT::Functions::FunctionInterface::SingleDerivativeRangeReturnType

No documentation provided.

type Dune::XT::Functions::FunctionInterface::DynamicRangeType

\ }

``These types are used for large dimensions.‘’

\ {

type Dune::XT::Functions::FunctionInterface::DynamicRowDerivativeRangeType

No documentation provided.

type Dune::XT::Functions::FunctionInterface::DynamicDerivativeRangeType

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

No documentation provided.

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

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

No documentation provided.

template<class FullType>
static SingleType Dune::XT::Functions::FunctionInterface::single_derivative_helper::call(const FullType &val, const size_t row, const size_t 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

No documentation provided.

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

No documentation provided.