Class template Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
class Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>

Interface for a local finite element, combining its basis, coefficients and interpolation.

Method Dune::GDT::LocalFiniteElementInterface::geometry_type

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
virtual const GeometryType &Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::geometry_type() const = 0

No documentation provided.

Method Dune::GDT::LocalFiniteElementInterface::order

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
virtual int Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::order() const = 0

E.g., for a local Raviart-Thomas finite element of order 0 on a simplex, the order of the finite element is 0, but the order of the basis (a.k.a, its polynomial degree) is 1.

Note

This order does not have to coincide with basis().order()!

Method Dune::GDT::LocalFiniteElementInterface::size

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
virtual size_t Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::size() const = 0

No documentation provided.

Method Dune::GDT::LocalFiniteElementInterface::basis

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
virtual const BasisType &Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::basis() const = 0

No documentation provided.

Method Dune::GDT::LocalFiniteElementInterface::coefficients

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
virtual const CoefficientsType &Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::coefficients() const = 0

No documentation provided.

Method Dune::GDT::LocalFiniteElementInterface::interpolation

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
virtual const InterpolationType &Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::interpolation() const = 0

No documentation provided.

Method Dune::GDT::LocalFiniteElementInterface::is_lagrangian

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
virtual bool Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::is_lagrangian() const

No documentation provided.

Method Dune::GDT::LocalFiniteElementInterface::powered

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
virtual bool Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::powered() const

No documentation provided.

Method Dune::GDT::LocalFiniteElementInterface::lagrange_points

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
virtual const std::vector<DomainType> &Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::lagrange_points() const

Lagrange points associated with this local finite element (in reference element coordinates).

Lagrange points are defined as usual, depending on the domain_dim and order() of the local finite element, and on its range_dim or range_dim_cols.

Thus it always holds that

assert(lagrange_points.size() * r * rC == size());

Regarding the relation between a Lagrange point and an element of the basis, we have the following: in the scalar case (r = rC = 1), it holds that

for (size_t ii = 0; ii < lagrange_points.size(); ++ii)
  for (size_t jj = 0; jj < basis().size(); ++jj)
    assert(basis().evaluate(lagrange_points()[ii])[jj] == (ii == jj ? 1 : 0));

while in the vector-valued case it holds that

for (size_t ii = 0; ii < lagrange_points.size(); ++ii)
  for (size_t rr = 0; rr < range_dim; ++rr)
    for (size_t jj = 0; jj < basis().size(); ++jj)
      assert(basis().evaluate(lagrange_points()[ii])[rr * lagrange_points.size() + jj][rr] == (ii == jj ? 1 : 0));

while the matrix-valued case is not implemented yet.

See also LocalPowerFiniteElement for the reasoning behind the mapping in the vector-valued case.

See also: LocalPowerFiniteElement

Destructor Dune::GDT::LocalFiniteElementInterface::~LocalFiniteElementInterface

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
virtual Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::~LocalFiniteElementInterface() = default

No documentation provided.

Variable Dune::GDT::LocalFiniteElementInterface::d

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
const size_t Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::d

No documentation provided.

Variable Dune::GDT::LocalFiniteElementInterface::r

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
const size_t Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::r

No documentation provided.

Variable Dune::GDT::LocalFiniteElementInterface::rC

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
const size_t Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::rC

No documentation provided.

Type alias Dune::GDT::LocalFiniteElementInterface::D

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
using Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::D = DomainField

No documentation provided.

Type alias Dune::GDT::LocalFiniteElementInterface::R

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
using Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::R = RangeField

No documentation provided.

Type alias Dune::GDT::LocalFiniteElementInterface::DomainType

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
using Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::DomainType = FieldVector<D, d>

No documentation provided.

Type alias Dune::GDT::LocalFiniteElementInterface::BasisType

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
using Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::BasisType = LocalFiniteElementBasisInterface<D, d, R, r, rC>

No documentation provided.

Type alias Dune::GDT::LocalFiniteElementInterface::CoefficientsType

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
using Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::CoefficientsType = LocalFiniteElementCoefficientsInterface<D, d>

No documentation provided.

Type alias Dune::GDT::LocalFiniteElementInterface::InterpolationType

template<class DomainField, size_t domain_dim, class RangeField, size_t range_dim, size_t range_dim_columns = 1>
using Dune::GDT::LocalFiniteElementInterface<DomainField, domain_dim, RangeField, range_dim, range_dim_columns>::InterpolationType = LocalFiniteElementInterpolationInterface<D, d, R, r, rC>

No documentation provided.