Rodin/Variational/P1/Div.h file

Divergence operator specialization for P1 vector functions.

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

For P1 elements, the divergence is computed as:

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

where $ \phi_i $ are P1 basis functions and $ u_{i,j} $ are DOF values.

Since P1 basis gradients are constant on each element, the divergence is also piecewise constant.

Namespaces

namespace Rodin
The Rodin library for Shape and Topology Optimization.
namespace Rodin::FormLanguage
Module for writing high level abstract expressions.
namespace Rodin::Variational
Module which provides the necessary tools for constructing variational problems.

Classes

template<class Scalar, class Data, class Mesh>
class Rodin::Variational::Div<GridFunction<P1<Math::Vector<Scalar>, Mesh>, Data>>
Divergence of a P1 vector GridFunction.
template<class NestedDerived, class Number, class Mesh, ShapeFunctionSpaceType Space>
class Rodin::Variational::Div<ShapeFunction<NestedDerived, P1<Math::Vector<Number>, Mesh>, Space>>
Divergence of a P1 vector ShapeFunction.