Rodin/Variational/H1/Div.h file

Divergence operator specialization for H1 vector functions.

This file provides specialized implementations of the divergence operator for H1 vector-valued GridFunctions and ShapeFunctions.

For H1<K> elements, the divergence is computed as:

\[ \nabla \cdot \mathbf{u}|_K = \sum_{i=1}^{n_{dof}} \sum_{j=1}^d u_{i,j} \frac{\partial \phi_i}{\partial x_j} \]

where $ \phi_i $ are H1<K> basis functions and $ u_{i,j} $ are DOF values.

For H1<K> functions, the divergence is polynomial of degree K-1 on each element.

Namespaces

namespace Rodin
The Rodin library for finite element methods and shape optimization.
namespace Rodin::FormLanguage
Namespace Rodin::FormLanguage.
namespace Rodin::Variational
Namespace Rodin::Variational.

Classes

template<size_t K, class Scalar, class Data, class Mesh>
struct Rodin::FormLanguage::Traits<Variational::Div<Variational::GridFunction<Variational::H1<K, Math::SpatialVector<Scalar>, Mesh>, Data>>>
Type traits for Div over a grid function: exposes the finite element space, the scalar type and the operand type.
template<size_t K, class NestedDerived, class Scalar, class Mesh, Variational::ShapeFunctionSpaceType Space>
struct Rodin::FormLanguage::Traits<Variational::Div<Variational::ShapeFunction<NestedDerived, Variational::H1<K, Math::SpatialVector<Scalar>, Mesh>, Space>>>
Type traits for Div over a shape function: exposes the finite element space, the shape function space, the scalar type and the operand type.
template<size_t K, class Scalar, class Data, class Mesh>
class Rodin::Variational::Div<GridFunction<H1<K, Math::SpatialVector<Scalar>, Mesh>, Data>>
Divergence of an H1 vector GridFunction.
template<size_t K, class NestedDerived, class Number, class Mesh, ShapeFunctionSpaceType Space>
class Rodin::Variational::Div<ShapeFunction<NestedDerived, H1<K, Math::SpatialVector<Number>, Mesh>, Space>>
Divergence of an H1 vector ShapeFunction.
struct Rodin::Variational::Div<ShapeFunction<NestedDerived, H1<K, Math::SpatialVector<Number>, Mesh>, Space>>::Cache
Per-cell tabulation cache.
struct Rodin::Variational::Div<ShapeFunction<NestedDerived, H1<K, Math::SpatialVector<Number>, Mesh>, Space>>::Cache::Key
Key identifying a cached tabulation.