template<class Derived, class FES, ShapeFunctionSpaceType Space>
Rodin::Variational::ShapeFunction class

Intermediate shape function class for CRTP derivation.

Template parameters
Derived Final derived class
FES Finite element space type
Space Space type (trial or test)

This class provides an intermediate layer in the ShapeFunction hierarchy, allowing for further specialization while maintaining the common interface. It is used as a base for specific shape function implementations like TestFunction and TrialFunction.

Base classes

template<class Derived, class FES = typename FormLanguage::Traits<Derived>::FESType, ShapeFunctionSpaceType SpaceType = FormLanguage::Traits<Derived>::SpaceType>
class ShapeFunctionBase<ShapeFunction<Derived, FES, Space>, FES, Space>
Base class for shape function objects.

Public types

using FESType = FES
Finite element space type.
using ScalarType = typename FormLanguage::Traits<FESType>::ScalarType
Scalar type from the finite element space.
using RangeType = typename FormLanguage::Traits<FESType>::RangeType
Range type from the finite element space.
using Parent = ShapeFunctionBase<ShapeFunction<Derived, FESType, SpaceType>, FESType, SpaceType>
Parent class type.

Public static variables

static ShapeFunctionSpaceType SpaceType constexpr
Space type (trial or test)

Constructors, destructors, conversion operators

ShapeFunction() deleted
Default constructor is deleted.

Public functions

auto copy() const -> ShapeFunction* override noexcept
Creates a polymorphic copy of the shape function.

Function documentation

template<class Derived, class FES, ShapeFunctionSpaceType Space>
ShapeFunction* Rodin::Variational::ShapeFunction<Derived, FES, Space>::copy() const override noexcept

Creates a polymorphic copy of the shape function.

Returns Pointer to newly allocated copy