|
constexpr const MaterialImpl & | impl () const |
| Const accessor to the underlying material (CRTP). More...
|
|
constexpr MaterialImpl & | impl () |
| Accessor to the underlying material (CRTP). More...
|
|
constexpr std::string | name () const |
| Get the name of the implemented material. More...
|
|
template<StrainTags tag, typename Derived >
requires CorrectStrainSize<MaterialImpl, Derived> |
auto | storedEnergy (const Eigen::MatrixBase< Derived > &Eraw) const |
| Return the stored potential energy of the material. More...
|
|
template<StrainTags tag, bool voigt = true, typename Derived >
requires CorrectStrainSize<MaterialImpl, Derived> |
auto | stresses (const Eigen::MatrixBase< Derived > &Eraw) const |
| Get the stresses of the material. More...
|
|
template<StrainTags tag, bool voigt = true, typename Derived >
requires CorrectStrainSize<MaterialImpl, Derived> |
auto | tangentModuli (const Eigen::MatrixBase< Derived > &Eraw) const |
| Get the tangentModuli of the material. More...
|
|
template<typename ScalarTypeOther > |
auto | rebind () const |
| Rebind material to a different scalar type. More...
|
|
template<class MaterialImpl>
struct Ikarus::Material< MaterialImpl >
Consider a hyper elastic material with the free Helmholtz energy
\[\require{cases}\psi: \begin{cases}\mathbb{R}^{3\times 3} &\rightarrow \mathbb{R} \\ \BC
&\mapsto \psi(\BC) \end{cases}.\]
Then, the value of this potential energy is return by storedEnergy and its first derivative (the stresses) by stresses and the second derivatives (the tangent moduli) by tangentModuli .
The passed strains can be in several formats, i.e., \(\BC\) can be the right Cauchy-Green tensor, the deformation gradient \(\mathbf{F}\) or linear strains. The current supported tags are given by Ikarus::StrainTags.
- Template Parameters
-
MaterialImpl | Type of the underlying material implementation. |