Rodin/Variational/P0/Grad.h file

Gradient operator specialization for P0 (piecewise constant) functions.

For P0 functions, the gradient is zero within each element since $ u|_K = \text{const} $ implies $ \nabla u|_K = 0 $ .

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<class Range, class Data, class Mesh>
struct Rodin::FormLanguage::Traits<Variational::Grad<Variational::GridFunction<Variational::P0<Range, Mesh>, Data>>>
Type traits for Grad 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::Grad<Variational::ShapeFunction<NestedDerived, Variational::P0<Range, Mesh>, Space>>>
Type traits for Grad over a shape function: exposes the finite element space, the shape function space and the operand type.
template<class Range, class Data, class Mesh>
class Rodin::Variational::Grad<GridFunction<P0<Range, Mesh>, Data>>
Gradient of a P0 GridFunction.
template<class NestedDerived, class Scalar, class Mesh, ShapeFunctionSpaceType SpaceType>
class Rodin::Variational::Grad<ShapeFunction<NestedDerived, P0<Scalar, Mesh>, SpaceType>>
Gradient of a P0 ShapeFunction.