template<class Derived>
Rodin::Variational::FiniteElementSpace class

Represernts a finite element space.

Base classes

class FiniteElementSpaceBase
Base class for finite element spaces.

Public types

using Parent = FiniteElementSpaceBase
Parent class.

Public functions

auto getFiniteElement(size_t d, Index i) const -> const auto&
template<class T>
auto getMapping(const std::pair<size_t, Index>& p, const T& v) const -> auto
Returns the mapping of the function from the physical element to the reference element.
template<class CallableType>
auto getInverseMapping(const std::pair<size_t, Index>& idx, const CallableType& v) const -> auto

Function documentation

template<class Derived>
const auto& Rodin::Variational::FiniteElementSpace<Derived>::getFiniteElement(size_t d, Index i) const

template<class Derived> template<class T>
auto Rodin::Variational::FiniteElementSpace<Derived>::getMapping(const std::pair<size_t, Index>& p, const T& v) const

Returns the mapping of the function from the physical element to the reference element.

Template parameters
T Callable type
Parameters
in Index of the element in the mesh
in Function defined on an element of the mesh

For all $ \tau \in \mathcal{T}_h $ in the mesh, the finite element space is generated by the bijective mapping:

\[ \psi_\tau : V(\tau) \rightarrow V(R) \]

taking a function $ v \in V(\tau) $ from the global element $ \tau $ to the reference element $ R $ . Here the notation $ V(S) $ represents a Banach space of functions on the set $ S $ .

The callable type T must be a function on the mesh, i.e. the call operator must have the following signature:

auto operator()(const Geometry::Point&);

template<class Derived> template<class CallableType>
auto Rodin::Variational::FiniteElementSpace<Derived>::getInverseMapping(const std::pair<size_t, Index>& idx, const CallableType& v) const