| 
| 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 STO >  | 
| auto  | rebind () const | 
|   | Rebind material to a different scalar type.  More...
  | 
|   | 
template<class MI>
struct Ikarus::Material< MI >
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
 - 
  
    | MI | Type of the underlying material implementation.  |