Rodin::Solid::KinematicState class

Kinematic state for finite-strain continuum mechanics.

Stores the displacement gradient and computes all standard kinematic quantities needed for hyperelastic formulations:

QuantitySymbolDefinition
Deformation gradient $ \mathbf{F} $ $ \mathbf{I} + \nabla \mathbf{u} $
Right Cauchy-Green $ \mathbf{C} $ $ \mathbf{F}^T \mathbf{F} $
Left Cauchy-Green $ \mathbf{b} $ $ \mathbf{F} \mathbf{F}^T $
Jacobian $ J $ $ \det(\mathbf{F}) $

Usage

KinematicState state(d);
state.setDisplacementGradient(gradU);
auto F = state.getDeformationGradient();
Real J = state.getJacobian();

Constructors, destructors, conversion operators

KinematicState(size_t d)
Constructs a kinematic state for the given spatial dimension.

Public functions

auto setDisplacementGradient(const Math::SpatialMatrix<Real>& H) -> KinematicState&
Sets the displacement gradient $ \nabla \mathbf{u} $ .
auto getDimension() const -> size_t
Gets the spatial dimension.
auto getDisplacementGradient() const -> const Math::SpatialMatrix<Real>&
Gets the displacement gradient $ \nabla \mathbf{u} $ .
auto getDeformationGradient() const -> const Math::SpatialMatrix<Real>&
Gets the deformation gradient $ \mathbf{F} = \mathbf{I} + \nabla \mathbf{u} $ .
auto getDeformationGradientInverse() const -> const Math::SpatialMatrix<Real>&
Gets $ \mathbf{F}^{-1} $ .
auto getDeformationGradientInverseTranspose() const -> const Math::SpatialMatrix<Real>&
Gets $ \mathbf{F}^{-T} $ .
auto getRightCauchyGreenTensor() const -> const Math::SpatialMatrix<Real>&
Gets the right Cauchy-Green tensor $ \mathbf{C} = \mathbf{F}^T \mathbf{F} $ .
auto getLeftCauchyGreenTensor() const -> const Math::SpatialMatrix<Real>&
Gets the left Cauchy-Green tensor $ \mathbf{b} = \mathbf{F} \mathbf{F}^T $ .
auto getJacobian() const -> Real
Gets the Jacobian $ J = \det(\mathbf{F}) $ .
auto getLogJacobian() const -> Real
Gets $ \ln(J) $ .

Function documentation

Rodin::Solid::KinematicState::KinematicState(size_t d)

Constructs a kinematic state for the given spatial dimension.

Parameters
d Spatial dimension (2 or 3)

KinematicState& Rodin::Solid::KinematicState::setDisplacementGradient(const Math::SpatialMatrix<Real>& H)

Sets the displacement gradient $ \nabla \mathbf{u} $ .

Parameters
H Displacement gradient matrix
Returns Reference to this for chaining