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.
class Rodin::Solid::ConstitutivePoint
Central data bundle for constitutive evaluation at a quadrature point.