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

Detailed Description

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

Definition at line 221 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

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.
Damage damage
 damage part of the state.
PlasticStrain< KelvinVectoreps_p_prev
 plastic part of the state.
Damage damage_prev
 damage part of the state.
 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

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

Definition at line 240 of file Ehlers.h.

◆ KelvinVector

template<int DisplacementDim>
using MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim >::KelvinVector
Initial value:
Eigen::Matrix< double, kelvin_vector_dimensions(DisplacementDim), 1, Eigen::ColMajor > KelvinVectorType

Definition at line 241 of file Ehlers.h.

Member Function Documentation

◆ getEquivalentPlasticStrain()

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

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

Definition at line 52 of file Ehlers.cpp.

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

References eps_p, and MathLib::KelvinVector::Invariants< KelvinVectorSize >::FrobeniusNorm().

◆ pushBackState()

template<int DisplacementDim>
void MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim >::pushBackState ( )
inlineoverridevirtual

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

Definition at line 230 of file Ehlers.h.

231 {
234 }
Damage damage_prev
damage part of the state.
Definition Ehlers.h:249
Damage damage
damage part of the state.
Definition Ehlers.h:245
PlasticStrain< KelvinVector > eps_p_prev
plastic part of the state.
Definition Ehlers.h:248

References damage, damage_prev, eps_p, and eps_p_prev.

◆ setInitialConditions()

template<int DisplacementDim>
void MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim >::setInitialConditions ( )
inline

◆ operator<<

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

Definition at line 252 of file Ehlers.h.

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

References damage, damage_prev, eps_p, eps_p_prev, MaterialLib::Solids::Ehlers::Damage::kappa_d(), and MaterialLib::Solids::Ehlers::Damage::value().

Member Data Documentation

◆ damage

◆ damage_prev

template<int DisplacementDim>
Damage MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim >::damage_prev

damage part of the state.

Definition at line 249 of file Ehlers.h.

Referenced by operator<<, pushBackState(), and setInitialConditions().

◆ EIGEN_MAKE_ALIGNED_OPERATOR_NEW

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

Definition at line 268 of file Ehlers.h.

◆ eps_p

◆ eps_p_prev

template<int DisplacementDim>
PlasticStrain<KelvinVector> MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim >::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 at line 238 of file Ehlers.h.


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