Implementation of the Saint Venant-Kirchhoff material model.The energy is computed as. More...
#include <ikarus/finiteelements/mechanics/materials/svk.hh>
Public Types | |
| using | ScalarType = ScalarType_ |
| using | StrainMatrix = Eigen::Matrix< ScalarType, worldDimension, worldDimension > |
| using | StressMatrix = StrainMatrix |
| using | MaterialImplType = StVenantKirchhoffT< ScalarType_ > |
| Type of material implementation. More... | |
Public Member Functions | |
| constexpr std::string | nameImpl () const |
| StVenantKirchhoffT (const LamesFirstParameterAndShearModulus &mpt) | |
| Constructor for StVenantKirchhoffT. More... | |
| template<typename Derived > | |
| ScalarType | storedEnergyImpl (const Eigen::MatrixBase< Derived > &E) const |
| Computes the stored energy in the Saint Venant-Kirchhoff material model. More... | |
| template<bool voigt, typename Derived > | |
| auto | stressesImpl (const Eigen::MatrixBase< Derived > &E) const |
| Computes the stresses in the Saint Venant-Kirchhoff material model. More... | |
| template<bool voigt, typename Derived > | |
| auto | tangentModuliImpl (const Eigen::MatrixBase< Derived > &E) const |
| Computes the tangent moduli in the Saint Venant-Kirchhoff material model. More... | |
| template<typename ScalarTypeOther > | |
| auto | rebind () const |
| Rebinds the material to a different scalar type. More... | |
| constexpr const StVenantKirchhoffT< ScalarType_ > & | impl () const |
| Const accessor to the underlying material (CRTP). More... | |
| constexpr StVenantKirchhoffT< ScalarType_ > & | impl () |
| Accessor to the underlying material (CRTP). More... | |
| constexpr std::string | name () const |
| Get the name of the implemented material. More... | |
| auto | storedEnergy (const Eigen::MatrixBase< Derived > &Eraw) const |
| Return the stored potential energy of the material. More... | |
| auto | stresses (const Eigen::MatrixBase< Derived > &Eraw) const |
| Get the stresses of the material. More... | |
| auto | tangentModuli (const Eigen::MatrixBase< Derived > &Eraw) const |
| Get the tangentModuli of the material. More... | |
Public Attributes | |
| LamesFirstParameterAndShearModulus | materialParameter |
Static Public Attributes | |
| static constexpr int | worldDimension = 3 |
| static constexpr auto | strainTag = StrainTags::greenLagrangian |
| static constexpr auto | stressTag = StressTags::PK2 |
| static constexpr auto | tangentModuliTag = TangentModuliTags::Material |
| static constexpr bool | energyAcceptsVoigt = true |
| static constexpr bool | stressToVoigt = true |
| static constexpr bool | stressAcceptsVoigt = true |
| static constexpr bool | moduliToVoigt = true |
| static constexpr bool | moduliAcceptsVoigt = true |
| static constexpr double | derivativeFactor = 1 |
| static constexpr bool | isReduced |
| Static constant for determining if the material has vanishing stress components (is reduced). More... | |
\[ \psi(\BE) = \frac{\lambda}{2} (\tr \BE)^2 +\mu \tr (\BE^2) ,\]
where \( \BE \) denotes the Green-Lagrangian strain.
The second Piola-Kirchhoff stresses are computed as
\[ \BS(\BE) =\fracpt{\psi(\BE)}{\BE} = \lambda \tr \BE \BI +2 \mu \BE,\]
and the material tangent moduli are computed as
\[ \BBC(\BE) =\fracpt{^2\psi(\BE)}{\BE^2} = \lambda \tr \BE \CI +2 \mu \CI^{\mathrm{sym}},\]
where \( \CI_{IJKL} = \de_{IJ}\de_{KL}\) and \( \CI_{IJKL}^\mathrm{sym} = \frac{1}{2}(\de_{IK}\de_{JL}+ \de_{IL}\de_{JK})\).
| ScalarType_ | The scalar type used in the material. |
|
inherited |
| using Ikarus::StVenantKirchhoffT< ScalarType_ >::ScalarType = ScalarType_ |
| using Ikarus::StVenantKirchhoffT< ScalarType_ >::StrainMatrix = Eigen::Matrix<ScalarType, worldDimension, worldDimension> |
| using Ikarus::StVenantKirchhoffT< ScalarType_ >::StressMatrix = StrainMatrix |
|
inlineexplicit |
| mpt | The material parameters (Lamé's first parameter and shear modulus). |
|
inlineconstexprinherited |
|
inlineconstexprinherited |
|
inlineconstexprinherited |
|
inlineconstexpr |
|
inline |
| ScalarTypeOther | The target scalar type. |
|
inlineinherited |
This function return the free Helmholtz energy of the material
| tag | Strain tag indicating which strain tensor components are passed. |
| Derived | The underlying Eigen type. |
| Eraw | The strain tensor components passed in Voigt notation or matrix notation. |
|
inline |
| Derived | The derived type of the input matrix. |
| E | The Green-Lagrangian strain. |
|
inlineinherited |
| tag | Strain tag indicating which strain tensor components are passed. |
| voigt | Boolean indicating whether to return Voigt-shaped result. |
| Derived | The underlying Eigen type. |
| Eraw | The strain tensor components passed in Voigt notation or matrix notation. |
|
inline |
| voigt | A boolean indicating whether to return stresses in Voigt notation. |
| Derived | The derived type of the input matrix. |
| E | The Green-Lagrangian strain. |
|
inlineinherited |
| tag | Strain tag indicating which strain tensor components are passed. |
| voigt | Boolean indicating whether to return Voigt-shaped result. |
| Derived | The underlying Eigen type. |
| Eraw | The strain tensor components passed in Voigt notation or matrix notation. |
|
inline |
| voigt | A boolean indicating whether to return tangent moduli in Voigt notation. |
| Derived | The derived type of the input matrix. |
| E | The Green-Lagrangian strain. |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexprinherited |
| LamesFirstParameterAndShearModulus Ikarus::StVenantKirchhoffT< ScalarType_ >::materialParameter |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |