49    if (s == 
"PlasticDamageSecant")
 
   57    OGS_FATAL(
"Not valid string '{:s}' to create a tangent type from.", s);
 
 
   68                                 P const& beta_, 
P const& gamma_,
 
   69                                 P const& delta_, 
P const& epsilon_,
 
   70                                 P const& m_, 
P const& alpha_p_,
 
   71                                 P const& beta_p_, 
P const& gamma_p_,
 
   72                                 P const& delta_p_, 
P const& epsilon_p_,
 
   73                                 P const& m_p_, 
P const& kappa_,
 
   74                                 P const& hardening_coefficient_)
 
 
 
  186template <
typename KelvinVector>
 
  191                  double const eps_p_eff_)
 
  192        : 
D(std::move(eps_p_D_)), 
V(eps_p_V_), 
eff(eps_p_eff_){};
 
 
 
  220template <
int DisplacementDim>
 
  222    : 
public MechanicsBase<DisplacementDim>::MaterialStateVariables
 
  256           << 
"eps_p_D: " << m.
eps_p.D << 
"\n" 
  257           << 
"eps_p_eff: " << m.
eps_p.eff << 
"\n" 
  261           << 
"eps_p_eff_prev: " << m.
eps_p_prev.eff << 
"\n" 
 
 
  271template <
int DisplacementDim>
 
  291        return std::make_unique<StateVariables<DisplacementDim>>();
 
 
  304        std::unique_ptr<DamagePropertiesParameters>&& damage_properties,
 
  314            material_state_variables) 
const override;
 
  318                                 DisplacementDim>::MaterialStateVariables>,
 
  325            material_state_variables) 
const override;
 
  327    std::vector<typename MechanicsBase<DisplacementDim>::InternalVariable>
 
  340        return _mp.
K(t, x)[0];
 
 
 
double _kappa_d
damage driving variable
 
Damage(double const kappa_d, double const value)
 
double _value
isotropic damage variable
 
std::vector< typename MechanicsBase< DisplacementDim >::InternalVariable > getInternalVariables() const override
 
MaterialPropertiesParameters _mp
 
NumLib::NewtonRaphsonSolverParameters const _nonlinear_solver_parameters
 
static int const KelvinVectorSize
 
Eigen::Matrix< double, JacobianResidualSize, JacobianResidualSize, Eigen::RowMajor > JacobianMatrix
 
TangentType const _tangent_type
 
std::optional< std::tuple< KelvinVector, std::unique_ptr< typename MechanicsBase< DisplacementDim >::MaterialStateVariables >, KelvinMatrix > > integrateStress(MaterialPropertyLib::VariableArray const &variable_array_prev, MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x, double const dt, typename MechanicsBase< DisplacementDim >::MaterialStateVariables const &material_state_variables) const override
 
std::unique_ptr< typename MechanicsBase< DisplacementDim >::MaterialStateVariables > createMaterialStateVariables() const override
 
MaterialProperties evaluatedMaterialProperties(double const t, ParameterLib::SpatialPosition const &x) const
 
static int const JacobianResidualSize
 
MathLib::KelvinVector::KelvinVectorType< DisplacementDim > KelvinVector
 
std::unique_ptr< DamagePropertiesParameters > _damage_properties
 
double getBulkModulus(double const t, ParameterLib::SpatialPosition const &x, KelvinMatrix const *const) const override
 
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > KelvinMatrix
 
Eigen::Matrix< double, JacobianResidualSize, 1 > ResidualVectorType
 
SolidEhlers(NumLib::NewtonRaphsonSolverParameters nonlinear_solver_parameters, MaterialPropertiesParameters material_properties, std::unique_ptr< DamagePropertiesParameters > &&damage_properties, TangentType tangent_type)
 
DamageProperties evaluatedDamageProperties(double const t, ParameterLib::SpatialPosition const &x) const
 
double computeFreeEnergyDensity(double const, ParameterLib::SpatialPosition const &, double const, KelvinVector const &eps, KelvinVector const &sigma, typename MechanicsBase< DisplacementDim >::MaterialStateVariables const &material_state_variables) const override
 
TangentType makeTangentType(std::string const &s)
 
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.
 
Eigen::Matrix< double, kelvin_vector_dimensions(DisplacementDim), 1, Eigen::ColMajor > KelvinVectorType
 
Eigen::Matrix< double, kelvin_vector_dimensions(DisplacementDim), kelvin_vector_dimensions(DisplacementDim), Eigen::RowMajor > KelvinMatrixType
 
DamageProperties(double const t, ParameterLib::SpatialPosition const &x, DamagePropertiesParameters const &dp)
 
P const  & hardening_coefficient
 
MaterialPropertiesParameters(P const &G_, P const &K_, P const &alpha_, P const &beta_, P const &gamma_, P const &delta_, P const &epsilon_, P const &m_, P const &alpha_p_, P const &beta_p_, P const &gamma_p_, P const &delta_p_, P const &epsilon_p_, P const &m_p_, P const &kappa_, P const &hardening_coefficient_)
 
P const  & kappa
hardening parameter
 
double const hardening_coefficient
 
MaterialProperties(double const t, ParameterLib::SpatialPosition const &x, MaterialPropertiesParameters const &mp)
 
double V
volumetric strain
 
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
 
PlasticStrain(KelvinVector eps_p_D_, double const eps_p_V_, double const eps_p_eff_)
 
KelvinVector D
deviatoric plastic strain
 
double eff
effective plastic strain
 
void pushBackState() override
 
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
 
Damage damage_prev
damage part of the state.
 
void setInitialConditions()
 
Damage damage
damage part of the state.
 
static int const KelvinVectorSize
 
MathLib::KelvinVector::KelvinVectorType< DisplacementDim > KelvinVector
 
PlasticStrain< KelvinVector > eps_p
plastic part of the state.
 
double getEquivalentPlasticStrain() const override
 
PlasticStrain< KelvinVector > eps_p_prev
plastic part of the state.
 
friend std::ostream & operator<<(std::ostream &os, StateVariables< DisplacementDim > const &m)