Rodin/Variational/P1/Jacobian.h file

Jacobian operator specialization for P1 vector functions.

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

For a vector function $ \mathbf{u} : \Omega \to \mathbb{R}^d $ , the Jacobian is the $ d \times d $ matrix:

\[ \mathbf{J}(\mathbf{u}) = \begin{pmatrix} \frac{\partial u_1}{\partial x_1} & \cdots & \frac{\partial u_1}{\partial x_d} \\ \vdots & \ddots & \vdots \\ \frac{\partial u_d}{\partial x_1} & \cdots & \frac{\partial u_d}{\partial x_d} \end{pmatrix} \]

For P1 elements, the Jacobian is piecewise constant on each element since P1 basis function gradients are constant per element.

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 Range, class Data, class Mesh>
class Rodin::Variational::Jacobian<GridFunction<P1<Range, Mesh>, Data>>
Jacobian of a P1 vector GridFunction.
template<class ShapeFunctionDerived, class Range, class Mesh, ShapeFunctionSpaceType Space>
class Rodin::Variational::Jacobian<ShapeFunction<ShapeFunctionDerived, P1<Range, Mesh>, Space>>
Jacobian of an P1 ShapeFunction object.