Rodin/Variational/P1/Grad.h file

Gradient operator specialization for P1 (piecewise linear) functions.

On affine simplices, the gradient of a P1 function is constant on each element:

\[ \nabla u|_K = \sum_{i=1}^{n+1} u_i \nabla \phi_i \]

where $ \phi_i $ are the P1 basis functions and $ n $ is the spatial dimension.

Namespaces

namespace Rodin
The Rodin library for finite element methods and shape optimization.
namespace Rodin::Variational
Finite element spaces, fields, and variational problems.
namespace Rodin::FormLanguage
Typed expressions for constructing variational forms.

Classes

template<class Scalar, class Mesh, class Data>
class Rodin::Variational::Grad<GridFunction<P1<Scalar, Mesh>, Data>>
Gradient of a P1 grid function.
template<class NestedDerived, class Scalar, class Mesh, ShapeFunctionSpaceType SpaceType>
class Rodin::Variational::Grad<ShapeFunction<NestedDerived, P1<Scalar, Mesh>, SpaceType>>
Gradient of a ShapeFunction.
struct Rodin::Variational::Grad<ShapeFunction<NestedDerived, P1<Scalar, Mesh>, SpaceType>>::Cache
Per-cell tabulation cache.
struct Rodin::Variational::Grad<ShapeFunction<NestedDerived, P1<Scalar, Mesh>, SpaceType>>::Cache::CellKey
Key identifying the cell a tabulation was computed for.
struct Rodin::Variational::Grad<ShapeFunction<NestedDerived, P1<Scalar, Mesh>, SpaceType>>::Cache::QuadraturePointKey
Key identifying the quadrature point a tabulation was computed for.
template<class Scalar, class Mesh, class Data>
struct Rodin::FormLanguage::Traits<Variational::Grad<Variational::GridFunction<Variational::P1<Math::SpatialMatrix<Scalar>, Mesh>, Data>>>
Rank-three physical gradient range for the matrix P1 solution.
template<class Scalar, class Mesh, class Derived, Variational::ShapeFunctionSpaceType Space>
struct Rodin::FormLanguage::Traits<Variational::Grad<Variational::ShapeFunction<Derived, Variational::P1<Math::SpatialMatrix<Scalar>, Mesh>, Space>>>
Rank-three physical gradient range for matrix P1 shape functions.
template<class Scalar, class Mesh, class Data>
class Rodin::Variational::Grad<GridFunction<P1<Math::SpatialMatrix<Scalar>, Mesh>, Data>>
Physical gradient of a matrix P1 solution, with derivative axis last. Uses this family's scalar basis and component ordering.
template<class Scalar, class Mesh, class Derived, ShapeFunctionSpaceType Space>
class Rodin::Variational::Grad<ShapeFunction<Derived, P1<Math::SpatialMatrix<Scalar>, Mesh>, Space>>
Physical gradients of matrix P1 trial or test bases.