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 |