Rodin/Variational/P1/P1Element.h file

P1 (piecewise linear) finite element implementation.

This file provides the P1Element class template for continuous piecewise first-order finite elements. P1 elements have:

  • One DOF per vertex
  • Nodal basis functions: $ \phi_i(x_j) = \delta_{ij} $ (Lagrange property)
  • Affine simplex, tensor-product, wedge, or rational pyramid bases

Simplex basis gradients are constant. Tensor-product, wedge, and rational pyramid basis gradients generally depend on the reference point.

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>
struct Rodin::FormLanguage::Traits<Variational::P1Element<Range>>
Type traits for P1Element: exposes the scalar type and the range type of the element.
template<class Scalar>
class Rodin::Variational::P1Element
Degree 1 Lagrange element.
class Rodin::Variational::P1Element::LinearForm
Represents a linear form of a P1 scalar element.
class Rodin::Variational::P1Element::BasisFunction
Represents a piecewise linear basis function of a P1 scalar element.
template<size_t Order>
class Rodin::Variational::P1Element::BasisFunction::DerivativeFunction
Represents a partial derivative of a P1 basis function.
class Rodin::Variational::P1Element::BasisFunction::GradientFunction
Represents the gradient of a P1 basis function.
template<class Scalar>
class Rodin::Variational::P1Element<Math::SpatialVector<Scalar>>
Continuous piecewise linear (degree 1) vector Lagrange element.
class Rodin::Variational::P1Element<Math::SpatialVector<Scalar>>::LinearForm
Degree-of-freedom functional of the vector-valued P1 element.
class Rodin::Variational::P1Element<Math::SpatialVector<Scalar>>::BasisFunction
Basis function of the vector-valued P1 element.
template<size_t Order>
class Rodin::Variational::P1Element<Math::SpatialVector<Scalar>>::BasisFunction::DerivativeFunction
Represents a derivative function of a P1 vector element.
class Rodin::Variational::P1Element<Math::SpatialVector<Scalar>>::BasisFunction::JacobianFunction
Jacobian of a vector-valued P1 basis function.
template<class Scalar>
class Rodin::Variational::P1Element<Math::SpatialMatrix<Scalar>>
Matrix-valued reference element built from scalar nodal functionals.
class Rodin::Variational::P1Element<Math::SpatialMatrix<Scalar>>::BasisFunction
Matrix basis with one nonzero entry.
class Rodin::Variational::P1Element<Math::SpatialMatrix<Scalar>>::LinearForm
Matrix-range finite element or expression specialization.