version 0.4.1
Ikarus::Materials::Deviatoric< DF > Struct Template Reference

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
 

Detailed Description

template<Concepts::DeviatoricFunction DF>
struct Ikarus::Materials::Deviatoric< DF >

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.

Template Parameters
DFDeviatoric function.

Member Typedef Documentation

◆ DeviatoricFunction

template<Concepts::DeviatoricFunction DF>
using Ikarus::Materials::Deviatoric< DF >::DeviatoricFunction = DF

◆ FirstDerivative

template<Concepts::DeviatoricFunction DF>
template<typename ST = ScalarType>
using Ikarus::Materials::Deviatoric< DF >::FirstDerivative = typename DF::template FirstDerivative<ST>

◆ MaterialParameters

template<Concepts::DeviatoricFunction DF>
using Ikarus::Materials::Deviatoric< DF >::MaterialParameters = typename DF::MaterialParameters

◆ MaterialTensor

template<Concepts::DeviatoricFunction DF>
template<typename ST = ScalarType>
using Ikarus::Materials::Deviatoric< DF >::MaterialTensor = Eigen::TensorFixedSize<ST, Eigen::Sizes<dim, dim, dim, dim> >

◆ PrincipalStretches

template<Concepts::DeviatoricFunction DF>
template<typename ST = ScalarType>
using Ikarus::Materials::Deviatoric< DF >::PrincipalStretches = typename DF::template PrincipalStretches<ST>

◆ ScalarType

template<Concepts::DeviatoricFunction DF>
using Ikarus::Materials::Deviatoric< DF >::ScalarType = typename DF::ScalarType

◆ SecondDerivative

template<Concepts::DeviatoricFunction DF>
template<typename ST = ScalarType>
using Ikarus::Materials::Deviatoric< DF >::SecondDerivative = typename DF::template SecondDerivative<ST>

◆ StressMatrix

template<Concepts::DeviatoricFunction DF>
template<typename ST = ScalarType>
using Ikarus::Materials::Deviatoric< DF >::StressMatrix = Eigen::Vector<ST, dim>

Constructor & Destructor Documentation

◆ Deviatoric()

template<Concepts::DeviatoricFunction DF>
Ikarus::Materials::Deviatoric< DF >::Deviatoric ( const DF  df)
inline

Member Function Documentation

◆ materialParameters()

template<Concepts::DeviatoricFunction DF>
const MaterialParameters Ikarus::Materials::Deviatoric< DF >::materialParameters ( ) const
inline

◆ name()

template<Concepts::DeviatoricFunction DF>
static constexpr std::string Ikarus::Materials::Deviatoric< DF >::name ( )
inlinestaticconstexprnoexcept

◆ rebind()

template<Concepts::DeviatoricFunction DF>
template<typename STO >
auto Ikarus::Materials::Deviatoric< DF >::rebind ( ) const
inline
Template Parameters
STOThe target scalar type.
Returns
The rebound deviatoric part.

◆ storedEnergy()

template<Concepts::DeviatoricFunction DF>
template<typename ST >
ST Ikarus::Materials::Deviatoric< DF >::storedEnergy ( const PrincipalStretches< ST > &  lambda) const
inline
Parameters
lambdasthe principal stretches.
Template Parameters
STthe scalartype of the principal stretches
Returns
ScalarType the energy.

◆ stresses()

template<Concepts::DeviatoricFunction DF>
template<typename ST >
StressMatrix< ST > Ikarus::Materials::Deviatoric< DF >::stresses ( const PrincipalStretches< ST > &  lambda) const
inline
Parameters
lambdathe principal stretches.
Template Parameters
STthe scalartype of the principal stretches
Returns
StressMatrix the stresses in principal strains coordinate system.
Here is the caller graph for this function:

◆ tangentModuli()

template<Concepts::DeviatoricFunction DF>
template<typename ST >
MaterialTensor< ST > Ikarus::Materials::Deviatoric< DF >::tangentModuli ( const PrincipalStretches< ST > &  lambda) const
inline
Parameters
lambdathe principal stretches.
Template Parameters
STthe scalartype of the principal stretches
Returns
MaterialTensor the tangentModuli in principal strains coordinate system.

Member Data Documentation

◆ dim

template<Concepts::DeviatoricFunction DF>
constexpr int Ikarus::Materials::Deviatoric< DF >::dim = 3
staticconstexpr

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