This is the interface implementation for the deviatoric part of a hyperelastic material. It is intended to be used with the hyperelastic material model. More...
#include <ikarus/finiteelements/mechanics/materials/hyperelastic/deviatoric/interface.hh>
Public Types | |
| using | ScalarType = typename DF::ScalarType |
| template<typename ST = ScalarType> | |
| using | PrincipalStretches = typename DF::template PrincipalStretches< ST > |
| using | MaterialParameters = typename DF::MaterialParameters |
| using | DeviatoricFunction = DF |
| template<typename ST = ScalarType> | |
| using | FirstDerivative = typename DF::template FirstDerivative< ST > |
| template<typename ST = ScalarType> | |
| using | SecondDerivative = typename DF::template SecondDerivative< ST > |
| template<typename ST = ScalarType> | |
| using | StressMatrix = Eigen::Vector< ST, dim > |
| template<typename ST = ScalarType> | |
| using | MaterialTensor = Eigen::TensorFixedSize< ST, Eigen::Sizes< dim, dim, dim, dim > > |
Public Member Functions | |
| Deviatoric (const DF df) | |
| const MaterialParameters | materialParameters () const |
| Returns the material parameters stored in the deviatoric part of the material. More... | |
| template<typename ST > | |
| ST | storedEnergy (const PrincipalStretches< ST > &lambda) const |
| Returns the stored energy obtained from the deviatoric function. More... | |
| template<typename ST > | |
| StressMatrix< ST > | stresses (const PrincipalStretches< ST > &lambda) const |
| Returns the principal PK2 stresses obtained from the first derivative of the deviatoric function. More... | |
| template<typename ST > | |
| MaterialTensor< ST > | tangentModuli (const PrincipalStretches< ST > &lambda) const |
| Returns the material tangent modulus obtained from the second derivative of the deviatoric function. More... | |
| template<typename STO > | |
| auto | rebind () const |
| Rebinds the material to a different scalar type. More... | |
Static Public Member Functions | |
| static constexpr std::string | name () noexcept |
Static Public Attributes | |
| static constexpr int | dim = 3 |
The deviatoric part of the hyperelastic model, i.e., related to \( \hat{\Psi}(\la_1, \la_2, \la_3) \), is parametrized with a certain deviatoric function (DF) implemented in terms of principal stretches. The three interface functions (energy, streses and tangentModulus) are called with the argument being the principal stretches ( \( \la_i \)). The underlying deviatoric function must only implement the energy \( \hat{\Psi}(\la_1, \la_2, \la_3) \) and its first and second derivatives w.r.t the total principal stretches.
| DF | Deviatoric function. |
| using Ikarus::Materials::Deviatoric< DF >::DeviatoricFunction = DF |
| using Ikarus::Materials::Deviatoric< DF >::FirstDerivative = typename DF::template FirstDerivative<ST> |
| using Ikarus::Materials::Deviatoric< DF >::MaterialParameters = typename DF::MaterialParameters |
| using Ikarus::Materials::Deviatoric< DF >::MaterialTensor = Eigen::TensorFixedSize<ST, Eigen::Sizes<dim, dim, dim, dim> > |
| using Ikarus::Materials::Deviatoric< DF >::PrincipalStretches = typename DF::template PrincipalStretches<ST> |
| using Ikarus::Materials::Deviatoric< DF >::ScalarType = typename DF::ScalarType |
| using Ikarus::Materials::Deviatoric< DF >::SecondDerivative = typename DF::template SecondDerivative<ST> |
| using Ikarus::Materials::Deviatoric< DF >::StressMatrix = Eigen::Vector<ST, dim> |
|
inline |
|
inline |
|
inlinestaticconstexprnoexcept |
|
inline |
| STO | The target scalar type. |
|
inline |
| lambdas | the principal stretches. |
| ST | the scalartype of the principal stretches |
|
inline |
| lambda | the principal stretches. |
| ST | the scalartype of the principal stretches |
|
inline |
| lambda | the principal stretches. |
| ST | the scalartype of the principal stretches |
|
staticconstexpr |