Scalar damage, defined in rate form

Overview

This object further simplifies a :cpp:class`neml::ScalarDamage` model to provide the updated damage value by integrating the damage rate. The model then defines the updated damage as

\omega_{n+1} = \omega_{n} + \dot{\omega} \Delta t

where \dot{\omega} is the damage rate, defined in a subclass with the damage_rate method. The associated derivatives of the updated damage with respect to the current damage, the stress, and the strain and defined analogously.

Implementations

Class description

class ScalarDamageRate : public neml::ScalarDamage

Damage model where you provide the damage rate.

Subclassed by neml::ClassicalCreepDamage, neml::LarsonMillerCreepDamage, neml::ModularCreepDamage

Public Functions

ScalarDamageRate(ParameterSet &params)
virtual void damage(double d_np1, double d_n, const double *const e_np1, const double *const e_n, const double *const s_np1, const double *const s_n, double T_np1, double T_n, double t_np1, double t_n, double *const dd) const

The combined damage variable.

virtual void ddamage_dd(double d_np1, double d_n, const double *const e_np1, const double *const e_n, const double *const s_np1, const double *const s_n, double T_np1, double T_n, double t_np1, double t_n, double *const dd) const

Derivative with respect to damage.

virtual void ddamage_de(double d_np1, double d_n, const double *const e_np1, const double *const e_n, const double *const s_np1, const double *const s_n, double T_np1, double T_n, double t_np1, double t_n, double *const dd) const

Derivative with respect to strain.

virtual void ddamage_ds(double d_np1, double d_n, const double *const e_np1, const double *const e_n, const double *const s_np1, const double *const s_n, double T_np1, double T_n, double t_np1, double t_n, double *const dd) const

Derivative with respect to stress.

virtual void damage_rate(double d, const double *const e, const double *const s, double T, double t, double *const dd) const = 0

The damage rate.

virtual void ddamage_rate_dd(double d, const double *const e, const double *const s, double T, double t, double *const dd) const = 0

Derivative of damage rate wrt damage.

virtual void ddamage_rate_de(double d, const double *const e, const double *const s, double T, double t, double *const dd) const = 0

Derivative of damage rate wrt strain.

virtual void ddamage_rate_ds(double d, const double *const e, const double *const s, double T, double t, double *const dd) const = 0

Derivative of damage rate wrt stress.