template<class LawDerived>
Rodin::Solid::CauchyStress class

Computes the Cauchy stress from a constitutive law.

Usage

NeoHookean law(lambda, mu);
NeoHookean::Cache cache;
KinematicState state(d);
state.setDisplacementGradient(gradU);
law.setCache(cache, state);

CauchyStress<NeoHookean> cauchy(law);
 Math::SpatialMatrix<Real> sigma;
cauchy.getCauchyStress(sigma, cache, state);

Constructors, destructors, conversion operators

CauchyStress(const LawType& law)
Constructs the Cauchy stress evaluator.

Public functions

void getCauchyStress(Math::SpatialMatrix<Real>& sigma, const CacheType& cache, const ConstitutivePoint& cp) const
Computes $ \boldsymbol{\sigma} = \tfrac{1}{J} \mathbf{P} \mathbf{F}^T $ .
auto getLaw() const -> const LawType&
Gets the constitutive law.

Function documentation

template<class LawDerived>
Rodin::Solid::CauchyStress<LawDerived>::CauchyStress(const LawType& law)

Constructs the Cauchy stress evaluator.

Parameters
law Reference to the constitutive law

template<class LawDerived>
void Rodin::Solid::CauchyStress<LawDerived>::getCauchyStress(Math::SpatialMatrix<Real>& sigma, const CacheType& cache, const ConstitutivePoint& cp) const

Computes $ \boldsymbol{\sigma} = \tfrac{1}{J} \mathbf{P} \mathbf{F}^T $ .

Parameters
sigma out Output Cauchy stress tensor
cache in Precomputed law cache
cp in Constitutive point