ShapeFunction.h file
Base class for finite element shape functions and basis functions.
This file defines the ShapeFunctionBase and ShapeFunction classes, which provide the foundation for representing finite element basis functions in both trial and test spaces. These classes form the core of the finite element discretization in Rodin's variational framework.
Namespaces
- namespace Rodin
- The Rodin library for finite element methods and shape optimization.
- namespace Rodin::FormLanguage
- Typed expressions for constructing variational forms.
- namespace Rodin::Variational
- Finite element spaces, fields, and variational problems.
Classes
-
template<class Derived, class FES, Variational::struct Rodin::FormLanguage::Traits<Variational::ShapeFunctionBase<Derived, FES, Space>>
ShapeFunctionSpaceType Space> - Type traits for
ShapeFunctionBase:exposes the derived type, the finite element space, the shape function space, the result type, the range type and the scalar type. -
template<class Derived, class FES, Variational::struct Rodin::FormLanguage::Traits<Variational::ShapeFunction<Derived, FES, Space>>
ShapeFunctionSpaceType Space> - Type traits for
ShapeFunction:exposes the derived type, the finite element space, the shape function space, the result type, the range type and the scalar type. -
template<class T>struct Rodin::FormLanguage::IsInterfaceShapeFunction
- Detects shape expressions whose basis spans two incident cells.
-
template<class Derived, class FES, Variational::struct Rodin::FormLanguage::IsInterfaceShapeFunction<Variational::ShapeFunctionBase<Derived, FES, Space>>
ShapeFunctionSpaceType Space> - Propagates two-cell support through a shape expression.
-
template<class Derived, class FES, Variational::struct Rodin::FormLanguage::IsInterfaceShapeFunction<Variational::Average<Variational::ShapeFunctionBase<Derived, FES, Space>>>
ShapeFunctionSpaceType Space> - Propagates two-cell support through a shape expression.
-
template<class Derived, class FES, Variational::struct Rodin::FormLanguage::IsInterfaceShapeFunction<Variational::Jump<Variational::ShapeFunctionBase<Derived, FES, Space>>>
ShapeFunctionSpaceType Space> - Propagates two-cell support through a shape expression.
-
template<class Operand>struct Rodin::FormLanguage::IsInterfaceShapeFunction<Variational::Conjugate<Operand>>
- Propagates the operand's support through a unary expression.
-
template<class Operand>struct Rodin::FormLanguage::IsInterfaceShapeFunction<Variational::Transpose<Operand>>
- Propagates the operand's support through a unary expression.
-
template<class Operand>struct Rodin::FormLanguage::IsInterfaceShapeFunction<Variational::Trace<Operand>>
- Propagates the operand's support through a unary expression.
-
template<class Operand>struct Rodin::FormLanguage::IsInterfaceShapeFunction<Variational::UnaryMinus<Operand>>
- Propagates the operand's support through a unary expression.
-
template<class Operand>struct Rodin::FormLanguage::IsInterfaceShapeFunction<Variational::Grad<Operand>>
- Propagates the operand's support through a unary expression.
-
template<class Operand>struct Rodin::FormLanguage::IsInterfaceShapeFunction<Variational::Div<Operand>>
- Propagates the operand's support through a unary expression.
-
template<class Operand>struct Rodin::FormLanguage::IsInterfaceShapeFunction<Variational::Jacobian<Operand>>
- Propagates the operand's support through a unary expression.
-
template<class Operand>struct Rodin::FormLanguage::IsInterfaceShapeFunction<Variational::Derivative<Operand>>
- Propagates the operand's support through a unary expression.
-
template<class LHS, class RHS>struct Rodin::FormLanguage::IsInterfaceShapeFunction<Variational::Sum<LHS, RHS>>
- Detects two-cell support in either binary operand.
-
template<class LHS, class RHS>struct Rodin::FormLanguage::IsInterfaceShapeFunction<Variational::Mult<LHS, RHS>>
- Detects two-cell support in either binary operand.
-
template<class LHS, class RHS>struct Rodin::FormLanguage::IsInterfaceShapeFunction<Variational::Division<LHS, RHS>>
- Detects two-cell support in either binary operand.
-
template<class LHS, class RHS>struct Rodin::FormLanguage::IsInterfaceShapeFunction<Variational::Dot<LHS, RHS>>
- Detects two-cell support in either binary operand.
-
template<class Operand, class... Indices>struct Rodin::FormLanguage::IsInterfaceShapeFunction<Variational::Component<Operand, Indices...>>
- Propagates support through component selection.
-
template<class T>struct Rodin::Variational::IsTrialFunction
- Type trait to check if a type is a TrialFunction.
-
template<class Solution, class FES>struct Rodin::Variational::IsTrialFunction<TrialFunction<Solution, FES>>
- Specialization for TrialFunction types.
-
template<class T>struct Rodin::Variational::IsTestFunction
- Type trait to check if a type is a TestFunction.
-
template<class FES>struct Rodin::Variational::IsTestFunction<TestFunction<FES>>
- Specialization for TestFunction types.
-
template<class Derived, class FES = typename FormLanguage::class Rodin::Variational::ShapeFunctionBase
Traits<Derived>:: FESType, ShapeFunctionSpaceType SpaceType = FormLanguage:: Traits<Derived>::SpaceType> - Base class for shape function objects.