Class template Dune::GDT::LocalQuaternaryIntersectionIntegrandInterface<Intersection, 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::IntersectionBoundObject, Dune::XT::Common::WithLogger.

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField> : public XT::Common::ParametricInterface, public XT::Grid::IntersectionBoundObject<Intersection>, public XT::Common::WithLogger<LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>>

Interface for integrands in integrals over grid intersections, which depend on four arguments (the test and ansatz bases on both the inside and the outside of the intersection, as used in coupling/DG operators).

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::LocalQuaternaryIntersectionIntegrandInterface::copy_as_quaternary_intersection_integrand

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::copy_as_quaternary_intersection_integrand() const = 0

No documentation provided.

Method Dune::GDT::LocalQuaternaryIntersectionIntegrandInterface::operator+

template<class Intersection, 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>
LocalQuaternaryIntersectionIntegrandSum<I, t_r, t_rC, TR, F, a_r, a_rC, AR> Dune::GDT::LocalQuaternaryIntersectionIntegrandInterface<Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface::order

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::order(const LocalTestBasisType &test_basis_inside, const LocalAnsatzBasisType &ansatz_basis_inside, const LocalTestBasisType &test_basis_outside, const LocalAnsatzBasisType &ansatz_basis_outside, 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::LocalQuaternaryIntersectionIntegrandInterface::evaluate

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::evaluate(const LocalTestBasisType &test_basis_inside, const LocalAnsatzBasisType &ansatz_basis_inside, const LocalTestBasisType &test_basis_outside, const LocalAnsatzBasisType &ansatz_basis_outside, const DomainType &point_in_reference_intersection, DynamicMatrix<F> &result_in_in, DynamicMatrix<F> &result_in_out, DynamicMatrix<F> &result_out_in, DynamicMatrix<F> &result_out_out, const XT::Common::Parameter &param = {}) const = 0

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

Note

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

Method Dune::GDT::LocalQuaternaryIntersectionIntegrandInterface::evaluate

template<class Intersection, 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::array<DynamicMatrix<F>, 4> Dune::GDT::LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::evaluate(const LocalTestBasisType &test_basis_inside, const LocalAnsatzBasisType &ansatz_basis_inside, const LocalTestBasisType &test_basis_outside, const LocalAnsatzBasisType &ansatz_basis_outside, const DomainType &point_in_reference_intersection, 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::LocalQuaternaryIntersectionIntegrandInterface::ensure_size_and_clear_results

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, 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_inside, const LocalAnsatzBasisType &ansatz_basis_inside, const LocalTestBasisType &test_basis_outside, const LocalAnsatzBasisType &ansatz_basis_outside, DynamicMatrix<F> &result_in_in, DynamicMatrix<F> &result_in_out, DynamicMatrix<F> &result_out_in, DynamicMatrix<F> &result_out_out, const XT::Common::Parameter &param) const

No documentation provided.

Constructor Dune::GDT::LocalQuaternaryIntersectionIntegrandInterface::LocalQuaternaryIntersectionIntegrandInterface

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::LocalQuaternaryIntersectionIntegrandInterface(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.

Destructor Dune::GDT::LocalQuaternaryIntersectionIntegrandInterface::~LocalQuaternaryIntersectionIntegrandInterface

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::~LocalQuaternaryIntersectionIntegrandInterface() override = default

No documentation provided.

Variable Dune::GDT::LocalQuaternaryIntersectionIntegrandInterface::d

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::d

No documentation provided.

Variable Dune::GDT::LocalQuaternaryIntersectionIntegrandInterface::t_r

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface::t_rC

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface::a_r

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface::a_rC

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface::ThisType

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::ThisType = LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>

No documentation provided.

Type alias Dune::GDT::LocalQuaternaryIntersectionIntegrandInterface::Logger

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::Logger = XT::Common::WithLogger<LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>>

No documentation provided.

Type alias Dune::GDT::LocalQuaternaryIntersectionIntegrandInterface::ElementType

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::ElementType = XT::Grid::extract_inside_element_t<Intersection>

No documentation provided.

Type alias Dune::GDT::LocalQuaternaryIntersectionIntegrandInterface::I

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::I = Intersection

No documentation provided.

Type alias Dune::GDT::LocalQuaternaryIntersectionIntegrandInterface::E

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::E = ElementType

No documentation provided.

Type alias Dune::GDT::LocalQuaternaryIntersectionIntegrandInterface::D

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::D = typename ElementType::Geometry::ctype

No documentation provided.

Type alias Dune::GDT::LocalQuaternaryIntersectionIntegrandInterface::F

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface::TR

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface::AR

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface::DomainType

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, test_range_dim, test_range_dim_cols, TestRangeField, Field, ansatz_range_dim, ansatz_range_dim_cols, AnsatzRangeField>::DomainType = FieldVector<D, d - 1>

No documentation provided.

Type alias Dune::GDT::LocalQuaternaryIntersectionIntegrandInterface::LocalTestBasisType

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface::LocalAnsatzBasisType

template<class Intersection, 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::LocalQuaternaryIntersectionIntegrandInterface<Intersection, 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.