Implementation of the Blatz-Ko material model. More...
#include <ikarus/finiteelements/mechanics/materials/hyperelastic/deviatoric/blatzko.hh>
Public Types | |
using | ScalarType = ST_ |
template<typename ST = ScalarType> | |
using | PrincipalStretches = Eigen::Vector< ST, 3 > |
template<typename ST = ScalarType> | |
using | FirstDerivative = Eigen::Vector< ST, dim > |
template<typename ST = ScalarType> | |
using | SecondDerivative = Eigen::Matrix< ST, dim, dim > |
using | MaterialParameters = double |
Public Member Functions | |
BlatzKoT (MaterialParameters mu) | |
Constructor for BlatzKoT. More... | |
MaterialParameters | materialParametersImpl () const |
Returns the material parameters stored in the material. More... | |
template<typename ST > | |
ST | storedEnergyImpl (const PrincipalStretches< ST > &lambda) const |
Computes the stored energy in the BlatzKo material model. More... | |
template<typename ST > | |
FirstDerivative< ST > | firstDerivativeImpl (const PrincipalStretches< ST > &lambda) const |
Computes the first derivative of the stored energy function w.r.t. the total principal stretches. More... | |
template<typename ST > | |
SecondDerivative< ST > | secondDerivativeImpl (const PrincipalStretches< ST > &lambda) const |
Computes the second derivatives of the stored energy function w.r.t. the total principal stretches. 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 |
static constexpr auto | stretchTag = PrincipalStretchTags::total |
The energy is computed as
\[ \hat{\Psi}(\la_1, \la_2, \la_3) = \frac{\mu}{2}( \frac{1}{\la_1^2} + \frac{1}{\la_2^2} + \frac{1}{\la_3^2} + 2\la_1 \la_2 \la_3 - 5). \]
ST_ | The underlying scalar type. |
using Ikarus::Materials::BlatzKoT< ST_ >::FirstDerivative = Eigen::Vector<ST, dim> |
using Ikarus::Materials::BlatzKoT< ST_ >::MaterialParameters = double |
using Ikarus::Materials::BlatzKoT< ST_ >::PrincipalStretches = Eigen::Vector<ST, 3> |
using Ikarus::Materials::BlatzKoT< ST_ >::ScalarType = ST_ |
using Ikarus::Materials::BlatzKoT< ST_ >::SecondDerivative = Eigen::Matrix<ST, dim, dim> |
|
inlineexplicit |
mu | The shear modulus. |
|
inline |
lambda | principal stretches |
|
inline |
|
inlinestaticconstexprnoexcept |
|
inline |
STO | The target scalar type. |
|
inline |
lambda | principal stretches |
ST | the scalartype of the principal stretches |
|
inline |
lambda | principal stretches |
ST | the scalartype of the principal stretches |
|
staticconstexpr |
|
staticconstexpr |