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

Detailed Description

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

Definition at line 217 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 236 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 237 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 46 of file Ehlers.cpp.

47{
48 return std::sqrt(2.0 / 3.0 * Invariants::FrobeniusNorm(eps_p.D.eval()));
49}
PlasticStrain< KelvinVector > eps_p
plastic part of the state.
Definition Ehlers.h:240
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 226 of file Ehlers.h.

227 {
230 }
Damage damage_prev
damage part of the state.
Definition Ehlers.h:245
Damage damage
damage part of the state.
Definition Ehlers.h:241
PlasticStrain< KelvinVector > eps_p_prev
plastic part of the state.
Definition Ehlers.h:244

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 248 of file Ehlers.h.

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

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 245 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 264 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 234 of file Ehlers.h.


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