OGS
MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim > Struct Template Reference

Detailed Description

template<int DisplacementDim>
struct MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim >

Definition at line 222 of file Ehlers.h.

#include <Ehlers.h>

Inheritance diagram for MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim >:
[legend]
Collaboration diagram for MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim >:
[legend]

Public Types

using Invariants = MathLib::KelvinVector::Invariants< KelvinVectorSize >
 
using KelvinVector = MathLib::KelvinVector::KelvinVectorType< DisplacementDim >
 

Public Member Functions

void setInitialConditions ()
 
void pushBackState () override
 
double getEquivalentPlasticStrain () const override
 
- Public Member Functions inherited from MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables
virtual ~MaterialStateVariables ()=default
 

Public Attributes

PlasticStrain< KelvinVectoreps_p
 plastic part of the state. More...
 
Damage damage
 damage part of the state. More...
 
PlasticStrain< KelvinVectoreps_p_prev
 plastic part of the state. More...
 
Damage damage_prev
 damage part of the state. More...
 
 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
 

Static Public Attributes

static int const KelvinVectorSize
 

Friends

std::ostream & operator<< (std::ostream &os, StateVariables< DisplacementDim > const &m)
 

Member Typedef Documentation

◆ Invariants

Definition at line 241 of file Ehlers.h.

◆ KelvinVector

template<int DisplacementDim>
using MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim >::KelvinVector = MathLib::KelvinVector::KelvinVectorType<DisplacementDim>

Definition at line 242 of file Ehlers.h.

Member Function Documentation

◆ getEquivalentPlasticStrain()

template<int DisplacementDim>
double MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim >::getEquivalentPlasticStrain
overridevirtual

Reimplemented from MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables.

Definition at line 50 of file Ehlers.cpp.

51 {
52  return std::sqrt(2.0 / 3.0 * Invariants::FrobeniusNorm(eps_p.D.eval()));
53 }
PlasticStrain< KelvinVector > eps_p
plastic part of the state.
Definition: Ehlers.h:245
static double FrobeniusNorm(Eigen::Matrix< double, KelvinVectorSize, 1 > const &deviatoric_v)
Get the norm of the deviatoric stress.

◆ pushBackState()

◆ setInitialConditions()

Friends And Related Function Documentation

◆ operator<<

template<int DisplacementDim>
std::ostream& operator<< ( std::ostream &  os,
StateVariables< DisplacementDim > const &  m 
)
friend

Definition at line 253 of file Ehlers.h.

255  {
256  os << "State:\n"
257  << "eps_p_D: " << m.eps_p.D << "\n"
258  << "eps_p_eff: " << m.eps_p.eff << "\n"
259  << "kappa_d: " << m.damage.kappa_d() << "\n"
260  << "damage: " << m.damage.value() << "\n"
261  << "eps_p_D_prev: " << m.eps_p_prev.D << "\n"
262  << "eps_p_eff_prev: " << m.eps_p_prev.eff << "\n"
263  << "kappa_d_prev: " << m.damage_prev.kappa_d() << "\n"
264  << "damage_prev: " << m.damage_prev.value() << "\n"
265  << "lambda: " << m.lambda << "\n";
266  return os;
267  }

Member Data Documentation

◆ damage

◆ damage_prev

◆ EIGEN_MAKE_ALIGNED_OPERATOR_NEW

template<int DisplacementDim>
MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim >::EIGEN_MAKE_ALIGNED_OPERATOR_NEW

Definition at line 270 of file Ehlers.h.

◆ eps_p

◆ eps_p_prev

◆ KelvinVectorSize

template<int DisplacementDim>
int const MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim >::KelvinVectorSize
static
Initial value:
=
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.
Definition: KelvinVector.h:23

Definition at line 239 of file Ehlers.h.


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