Class template Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>

Inherits from Dune::XT::Common::ParametricInterface, Dune::XT::Grid::ElementBoundObject.

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
class Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField> : public Common::ParametricInterface, public XT::Grid::ElementBoundObject<Element>

Interface for a set of globalvalued functions, which are evaluated with two variables, one variable in element-local coordinates and one grid-independent variable.

See also: RangeTypeSelector, JacobianRangeTypeSelector

Method Dune::XT::Functions::ElementFluxFunctionSetInterface::size

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
virtual size_t Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::size(const Common::Parameter& = {}) const = 0

The number of functions in this set.

Note

Will throw Exceptions::not_bound_to_an_element_yet error if not bound yet!

Method Dune::XT::Functions::ElementFluxFunctionSetInterface::max_size

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
virtual size_t Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::max_size(const Common::Parameter& = {}) const = 0

The maximum number of functions in this set over all elements. The following has to hold true:

auto local_function_set = ...;
size_t max_set_size = 0;
for (auto&& element : grid_view)
  max_set_size = std::max(max_set_size, local_function_set.bind(element).size(param));
assert(max_set_size <= local_function_set.max_size());

Method Dune::XT::Functions::ElementFluxFunctionSetInterface::order

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
virtual int Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::order(const Common::Parameter& = {}) const = 0

Note

Will throw Exceptions::not_bound_to_an_element_yet error if not bound yet!

Method Dune::XT::Functions::ElementFluxFunctionSetInterface::evaluate

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
virtual void Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::evaluate(const DomainType&, const StateType&, std::vector<RangeType>&, const Common::Parameter& = {}) const

Note

Will throw Exceptions::not_bound_to_an_element_yet error if not bound yet!

Method Dune::XT::Functions::ElementFluxFunctionSetInterface::jacobian

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
virtual void Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::jacobian(const DomainType&, const StateType&, std::vector<JacobianRangeType>&, const Common::Parameter& = {}) const

Note

Will throw Exceptions::not_bound_to_an_element_yet error if not bound yet!

Method Dune::XT::Functions::ElementFluxFunctionSetInterface::evaluate_set

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
virtual std::vector<RangeType> Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::evaluate_set(const DomainType &point_in_reference_element, const StateType &u, const Common::Parameter &param = {}) const

Note

Will throw Exceptions::not_bound_to_an_element_yet error if not bound yet!

Method Dune::XT::Functions::ElementFluxFunctionSetInterface::jacobian_of_set

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
virtual std::vector<JacobianRangeType> Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::jacobian_of_set(const DomainType &point_in_reference_element, const StateType &u, const Common::Parameter &param = {}) const

Note

Will throw Exceptions::not_bound_to_an_element_yet error if not bound yet!

Method Dune::XT::Functions::ElementFluxFunctionSetInterface::evaluate

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
virtual void Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::evaluate(const DomainType &point_in_reference_element, const StateType &u, std::vector<R> &result, const size_t row, const size_t col = 0, const Common::Parameter &param = {}) const

Note

Will throw Exceptions::not_bound_to_an_element_yet error if not bound yet!

Method Dune::XT::Functions::ElementFluxFunctionSetInterface::jacobian

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
virtual void Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::jacobian(const DomainType &point_in_reference_element, const StateType &u, std::vector<SingleJacobianRangeType> &result, const size_t row, const size_t col = 0, const Common::Parameter &param = {}) const

Note

Will throw Exceptions::not_bound_to_an_element_yet error if not bound yet!

Method Dune::XT::Functions::ElementFluxFunctionSetInterface::evaluate

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
virtual void Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::evaluate(const DomainType &point_in_reference_element, const StateType &u, std::vector<DynamicRangeType> &result, const Common::Parameter &param = {}) const

Note

Will throw Exceptions::not_bound_to_an_element_yet error if not bound yet!

Method Dune::XT::Functions::ElementFluxFunctionSetInterface::jacobian

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
virtual void Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::jacobian(const DomainType &point_in_reference_element, const StateType &u, std::vector<DynamicJacobianRangeType> &result, const Common::Parameter &param = {}) const

Note

Will throw Exceptions::not_bound_to_an_element_yet error if not bound yet!

Method Dune::XT::Functions::ElementFluxFunctionSetInterface::assert_inside_reference_element

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
void Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::assert_inside_reference_element(const DomainType &point_in_reference_element) const

No documentation provided.

Method Dune::XT::Functions::ElementFluxFunctionSetInterface::assert_correct_dims

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
static void Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::assert_correct_dims(const size_t row, const size_t col, const std::string &caller)

No documentation provided.

Constructor Dune::XT::Functions::ElementFluxFunctionSetInterface::ElementFluxFunctionSetInterface

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
explicit Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::ElementFluxFunctionSetInterface(const XT::Common::ParameterType &param_type = {})

\ }

Constructor Dune::XT::Functions::ElementFluxFunctionSetInterface::ElementFluxFunctionSetInterface

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::ElementFluxFunctionSetInterface(const ThisType &other) = default

No documentation provided.

Constructor Dune::XT::Functions::ElementFluxFunctionSetInterface::ElementFluxFunctionSetInterface

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::ElementFluxFunctionSetInterface(ThisType &&source) noexcept = default

No documentation provided.

Destructor Dune::XT::Functions::ElementFluxFunctionSetInterface::~ElementFluxFunctionSetInterface

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::~ElementFluxFunctionSetInterface() override = default

No documentation provided.

Variable Dune::XT::Functions::ElementFluxFunctionSetInterface::domain_dim

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
const size_t Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::domain_dim

No documentation provided.

Variable Dune::XT::Functions::ElementFluxFunctionSetInterface::state_dim

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
const size_t Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::state_dim

No documentation provided.

Variable Dune::XT::Functions::ElementFluxFunctionSetInterface::range_dim

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
const size_t Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::range_dim

No documentation provided.

Variable Dune::XT::Functions::ElementFluxFunctionSetInterface::range_dim_cols

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
const size_t Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::range_dim_cols

No documentation provided.

Variable Dune::XT::Functions::ElementFluxFunctionSetInterface::d

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
const size_t Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::d

No documentation provided.

Variable Dune::XT::Functions::ElementFluxFunctionSetInterface::s

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
const size_t Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::s

No documentation provided.

Variable Dune::XT::Functions::ElementFluxFunctionSetInterface::r

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
const size_t Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::r

No documentation provided.

Variable Dune::XT::Functions::ElementFluxFunctionSetInterface::rC

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
const size_t Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::rC

No documentation provided.

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::ThisType

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::ThisType = ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>

No documentation provided.

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::DomainFieldType

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::DomainFieldType = double

No documentation provided.

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::RangeFieldType

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::RangeFieldType = RangeField

No documentation provided.

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::E

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::E = ElementType

No documentation provided.

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::D

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::D = DomainFieldType

No documentation provided.

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::R

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::R = RangeFieldType

No documentation provided.

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::S

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::S = StateField

No documentation provided.

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::DomainType

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::DomainType = Dune::FieldVector<D, d>

No documentation provided.

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::StateType

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::StateType = Dune::FieldVector<S, s>

No documentation provided.

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::DynamicStateType

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::DynamicStateType = Dune::DynamicVector<S>

No documentation provided.

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::RangeSelector

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::RangeSelector = RangeTypeSelector<R, r, rC>

No documentation provided.

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::JacobianRangeSelector

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::JacobianRangeSelector = DerivativeRangeTypeSelector<s, R, r, rC>

No documentation provided.

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::RangeType

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::RangeType = typename RangeSelector::type

\ {

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

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::JacobianRangeType

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::JacobianRangeType = typename JacobianRangeSelector::type

No documentation provided.

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::SingleJacobianRangeType

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::SingleJacobianRangeType = typename JacobianRangeSelector::single_type

No documentation provided.

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::DynamicRangeType

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::DynamicRangeType = typename RangeSelector::dynamic_type

\ }

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

\ {

Type alias Dune::XT::Functions::ElementFluxFunctionSetInterface::DynamicJacobianRangeType

template<class Element, size_t stateDim = 1, size_t rangeDim = 1, size_t rangeDimCols = 1, class RangeField = double, class StateField = double>
using Dune::XT::Functions::ElementFluxFunctionSetInterface<Element, stateDim, rangeDim, rangeDimCols, RangeField, StateField>::DynamicJacobianRangeType = typename JacobianRangeSelector::dynamic_type

No documentation provided.