Rodin/Solid/Local/ConstitutivePoint.h file

Central constitutive input abstraction for hyperelastic formulations.

The ConstitutivePoint bundles all data available at a quadrature point for constitutive evaluation. It is built by composition over Geometry::Point, which provides the geometric evaluation context (reference/physical coordinates, polytope, Jacobian), while ConstitutivePoint extends it with:

  • KinematicState (deformation gradient and derived quantities)
  • Extensible typed auxiliary data (fiber directions, activation, etc.)

Auxiliary data tags define their associated value type via a nested Type alias, so set<Tag>(value) and get<Tag>() do not require the caller to repeat the value type.

This abstraction decouples constitutive laws from the integration scheme and finite element space, enabling:

  • Arbitrary quadrature rules (not just centroid)
  • Arbitrary FE spaces (not just P1)
  • Heterogeneous materials (region-dependent parameters)
  • Anisotropic materials (fiber direction fields)
  • Active materials (activation parameters)

Namespaces

namespace Rodin
The Rodin library for finite element methods and shape optimization.
namespace Rodin::Solid
Hyperelastic solid mechanics module for large-deformation problems.
namespace Rodin::Solid::Tags
Standard tag types for auxiliary constitutive data.

Classes

struct Rodin::Solid::Tags::FiberDirection
Tag for the fiber direction vector.
struct Rodin::Solid::Tags::SheetDirection
Tag for the sheet direction vector.
struct Rodin::Solid::Tags::SheetNormalDirection
Tag for the sheet-normal direction vector.
struct Rodin::Solid::Tags::Activation
Tag for the activation parameter.
struct Rodin::Solid::Tags::ActiveExtension
Tag for the active fiber extension $e_c^{n+1}$ .
struct Rodin::Solid::Tags::PreviousActiveExtension
Tag for the previous active fiber extension $e_c^n$ .
struct Rodin::Solid::Tags::TimeStep
Tag for the active-law time step.
struct Rodin::Solid::Tags::ElectricalActivation
Tag for the scalar electrical/chemical activation input.
struct Rodin::Solid::Tags::PreviousActiveGamma
Tag for previous active variable $\gamma^n$ .
struct Rodin::Solid::Tags::PreviousActiveBeta
Tag for previous active variable $\beta^n$ .
struct Rodin::Solid::Tags::CellIndex
Tag for the index of the current cell (polytope) being assembled.
struct Rodin::Solid::Tags::QuadraturePointIndex
Tag for the index of the current quadrature point within the cell.
class Rodin::Solid::ConstitutivePoint
Central data bundle for constitutive evaluation at a quadrature point.