version 0.4.1
Ikarus::Materials::DeviatoricInvariants< PS > Struct Template Reference

Implementation of the deviatoric invariants and its derivatives. More...

#include <ikarus/finiteelements/mechanics/materials/hyperelastic/deviatoric/deviatoricinvariants.hh>

Public Types

using PrincipalStretches = PS
 
using ScalarType = PrincipalStretches::value_type
 
using Invariants = PrincipalStretches
 
using FirstDerivative = Eigen::Vector< ScalarType, dim >
 
using SecondDerivative = Eigen::Matrix< ScalarType, dim, dim >
 

Public Member Functions

 DeviatoricInvariants (const PrincipalStretches &lambda)
 Constructor for DeviatoricInvariants. More...
 
auto value () const
 Computation of value of the deviatoric invariants. More...
 
auto firstDerivative () const
 Computation of the first derivatives of the deviatoric invariants w.r.t the total principal stretches. More...
 
auto secondDerivative () const
 Computation of the second derivatives of the deviatoric invariants w.r.t the total principal stretches. More...
 

Static Public Attributes

static constexpr int dim = PrincipalStretches::RowsAtCompileTime
 

Detailed Description

template<typename PS>
struct Ikarus::Materials::DeviatoricInvariants< PS >

The three invariants are

\[ I_1 = \la_1^2 + \la_2^2 + \la_3^2, \]

\[ I_2 = \la_1^2 \la_2^2 + \la_2^2 \la_3^2 + \la_1^2 \la_3^2, \]

\[ I_3 = \la_1^2 \la_2^2 \la_3^2. \]

The deviatoric invariants are then defined as

\[ W_1 = I_1 I_3^{-1/3}, \]

\[ W_2 = I_2 I_3^{-2/3}, \]

Template Parameters
PSType of the principal stretches.

Member Typedef Documentation

◆ FirstDerivative

template<typename PS >
using Ikarus::Materials::DeviatoricInvariants< PS >::FirstDerivative = Eigen::Vector<ScalarType, dim>

◆ Invariants

template<typename PS >
using Ikarus::Materials::DeviatoricInvariants< PS >::Invariants = PrincipalStretches

◆ PrincipalStretches

template<typename PS >
using Ikarus::Materials::DeviatoricInvariants< PS >::PrincipalStretches = PS

◆ ScalarType

template<typename PS >
using Ikarus::Materials::DeviatoricInvariants< PS >::ScalarType = PrincipalStretches::value_type

◆ SecondDerivative

template<typename PS >
using Ikarus::Materials::DeviatoricInvariants< PS >::SecondDerivative = Eigen::Matrix<ScalarType, dim, dim>

Constructor & Destructor Documentation

◆ DeviatoricInvariants()

template<typename PS >
Ikarus::Materials::DeviatoricInvariants< PS >::DeviatoricInvariants ( const PrincipalStretches lambda)
inlineexplicit
Parameters
lambdaThe principal stretches.

Member Function Documentation

◆ firstDerivative()

template<typename PS >
auto Ikarus::Materials::DeviatoricInvariants< PS >::firstDerivative ( ) const
inline

◆ secondDerivative()

template<typename PS >
auto Ikarus::Materials::DeviatoricInvariants< PS >::secondDerivative ( ) const
inline

◆ value()

template<typename PS >
auto Ikarus::Materials::DeviatoricInvariants< PS >::value ( ) const
inline

Member Data Documentation

◆ dim

template<typename PS >
constexpr int Ikarus::Materials::DeviatoricInvariants< PS >::dim = PrincipalStretches::RowsAtCompileTime
staticconstexpr

The documentation for this struct was generated from the following file: