Class template Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>

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

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
class Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField> : public XT::Common::ParametricInterface, public XT::Grid::ElementBoundObject<Element>, public XT::Common::WithLogger<LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>>

Interface for integrands in integrals over grid elements, which depend on two arguments (usually the test and ansatz bases in an integral-based operator, aka two-form).

Note

Regarding SMP: the integrand is copied for each thread, so - no shared mutable state between copies to be thread safe, but - local mutable state is ok.

Method Dune::GDT::LocalBinaryElementIntegrandInterface::copy_as_binary_element_integrand

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
virtual std::unique_ptr<ThisType> Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::copy_as_binary_element_integrand() const = 0

No documentation provided.

Method Dune::GDT::LocalBinaryElementIntegrandInterface::operator+

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
LocalBinaryElementIntegrandSum<E, t_r, t_rC, TR, F, a_r, a_rC, AR> Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::operator+(const ThisType &other) const

No documentation provided.

Method Dune::GDT::LocalBinaryElementIntegrandInterface::order

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
virtual int Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::order(const LocalTestBasisType &test_basis, const LocalAnsatzBasisType &ansatz_basis, const XT::Common::Parameter &param = {}) const = 0

Returns the polynomial order of the integrand, given the bases.

Note

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

Method Dune::GDT::LocalBinaryElementIntegrandInterface::evaluate

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
virtual void Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::evaluate(const LocalTestBasisType &test_basis, const LocalAnsatzBasisType &ansatz_basis, const DomainType &point_in_reference_element, DynamicMatrix<F> &result, const XT::Common::Parameter &param = {}) const = 0

Computes the evaluation of this integrand at the given point for each combination of functions from the two bases.

Note

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

Method Dune::GDT::LocalBinaryElementIntegrandInterface::evaluate

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
virtual DynamicMatrix<F> Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::evaluate(const LocalTestBasisType &test_basis, const LocalAnsatzBasisType &ansatz_basis, const DomainType &point_in_reference_element, const XT::Common::Parameter &param = {}) const

This method is provided for convenience and should not be used within library code.

Note

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

Method Dune::GDT::LocalBinaryElementIntegrandInterface::ensure_size_and_clear_results

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
void Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::ensure_size_and_clear_results(const LocalTestBasisType &test_basis, const LocalAnsatzBasisType &ansatz_basis, DynamicMatrix<F> &result, const XT::Common::Parameter &param) const

No documentation provided.

Constructor Dune::GDT::LocalBinaryElementIntegrandInterface::LocalBinaryElementIntegrandInterface

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
explicit Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::LocalBinaryElementIntegrandInterface(const XT::Common::ParameterType &param_type = {}, const std::string &logging_prefix = "", const std::array<bool, 3> &logging_state = XT::Common::default_logger_state())

No documentation provided.

Constructor Dune::GDT::LocalBinaryElementIntegrandInterface::LocalBinaryElementIntegrandInterface

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::LocalBinaryElementIntegrandInterface(const LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField> &other) = default

No documentation provided.

Constructor Dune::GDT::LocalBinaryElementIntegrandInterface::LocalBinaryElementIntegrandInterface

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::LocalBinaryElementIntegrandInterface(LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField> &&other) noexcept = default

No documentation provided.

Destructor Dune::GDT::LocalBinaryElementIntegrandInterface::~LocalBinaryElementIntegrandInterface

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::~LocalBinaryElementIntegrandInterface() override = default

No documentation provided.

Variable Dune::GDT::LocalBinaryElementIntegrandInterface::d

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
const size_t Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::d

No documentation provided.

Variable Dune::GDT::LocalBinaryElementIntegrandInterface::t_r

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
const size_t Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::t_r

No documentation provided.

Variable Dune::GDT::LocalBinaryElementIntegrandInterface::t_rC

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
const size_t Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::t_rC

No documentation provided.

Variable Dune::GDT::LocalBinaryElementIntegrandInterface::a_r

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
const size_t Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::a_r

No documentation provided.

Variable Dune::GDT::LocalBinaryElementIntegrandInterface::a_rC

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
const size_t Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::a_rC

No documentation provided.

Type alias Dune::GDT::LocalBinaryElementIntegrandInterface::ThisType

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
using Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::ThisType = LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>

No documentation provided.

Type alias Dune::GDT::LocalBinaryElementIntegrandInterface::Logger

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
using Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::Logger = XT::Common::WithLogger<LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>>

No documentation provided.

Type alias Dune::GDT::LocalBinaryElementIntegrandInterface::E

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
using Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::E = Element

No documentation provided.

Type alias Dune::GDT::LocalBinaryElementIntegrandInterface::D

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
using Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::D = typename Element::Geometry::ctype

No documentation provided.

Type alias Dune::GDT::LocalBinaryElementIntegrandInterface::F

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
using Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::F = Field

No documentation provided.

Type alias Dune::GDT::LocalBinaryElementIntegrandInterface::TR

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
using Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::TR = TestRangeField

No documentation provided.

Type alias Dune::GDT::LocalBinaryElementIntegrandInterface::AR

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
using Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::AR = AnsatzRangeField

No documentation provided.

Type alias Dune::GDT::LocalBinaryElementIntegrandInterface::DomainType

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
using Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::DomainType = FieldVector<D, d>

No documentation provided.

Type alias Dune::GDT::LocalBinaryElementIntegrandInterface::LocalTestBasisType

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
using Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::LocalTestBasisType = XT::Functions::ElementFunctionSetInterface<E, t_r, t_rC, TR>

No documentation provided.

Type alias Dune::GDT::LocalBinaryElementIntegrandInterface::LocalAnsatzBasisType

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
using Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::LocalAnsatzBasisType = XT::Functions::ElementFunctionSetInterface<E, a_r, a_rC, AR>

No documentation provided.

Function template Dune::GDT::LocalBinaryElementIntegrandInterface::with_ansatz

template<class Element, size_t test_range_dim = 1, size_t test_range_dim_cols = 1, class TestRangeField = double, class Field = double, size_t ansatz_range_dim = test_range_dim, size_t ansatz_range_dim_cols = test_range_dim_cols, class AnsatzRangeField = TestRangeField>
template<class ...Args>
LocalBinaryToUnaryElementIntegrand<E, t_r, t_rC, TR, F, a_r, a_rC, AR> Dune::GDT::LocalBinaryElementIntegrandInterface<Element, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::with_ansatz(Args&&... args) const

No documentation provided.