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 on affine simplices, the Jacobian is constant on each element. Curved or product cells can have varying physical derivatives.

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 Range, class Data, class Mesh>
struct Rodin::FormLanguage::Traits<Variational::Jacobian<Variational::GridFunction<Variational::P1<Range, Mesh>, Data>>>
Type traits for Jacobian over a grid function: exposes the finite element space and the operand type.
template<class NestedDerived, class Range, class Mesh, Variational::ShapeFunctionSpaceType Space>
struct Rodin::FormLanguage::Traits<Variational::Jacobian<Variational::ShapeFunction<NestedDerived, Variational::P1<Range, Mesh>, Space>>>
Type traits for Jacobian over a shape function: exposes the finite element space, the shape function space and the operand type.
template<class Data, class Mesh, class Scalar>
class Rodin::Variational::Jacobian<GridFunction<P1<Math::SpatialVector<Scalar>, 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 a P1 ShapeFunction object.
struct Rodin::Variational::Jacobian<ShapeFunction<ShapeFunctionDerived, P1<Range, Mesh>, Space>>::Cache
Per-cell tabulation cache.
struct Rodin::Variational::Jacobian<ShapeFunction<ShapeFunctionDerived, P1<Range, Mesh>, Space>>::Cache::CellKey
Key identifying the cell a tabulation was computed for.
struct Rodin::Variational::Jacobian<ShapeFunction<ShapeFunctionDerived, P1<Range, Mesh>, Space>>::Cache::QuadraturePointKey
Key identifying the quadrature point a tabulation was computed for.