Exponential damage

Overview

This object implements a “standard” damage model proportional to the dissipated inelastic energy. The damage function is

w = \frac{\left(\omega + k_0\right)^{a_f}}{W_0} \sigma_{eff}

\sigma_{eff} = \sqrt{\frac{3}{2} \operatorname{dev}\left(\bm{\sigma}\right):\operatorname{dev}\left(\bm{\sigma}\right)}.

The standard damage model multiplies this function by the inelastic strain rate in computing the damage update. Because the dissipation rate is equal to \sigma_{eff} \dot{\varepsilon}_{eff}^{in} this model actually increases damage in proportion to the dissipation.

Parameters

Parameter

Object type

Description

Default

elastic

neml::LinearElasticModel

Elasticity model

No

W0

neml::Interpolate

Parameter

No

k0

neml::Interpolate

Parameter

No

af

neml::Interpolate

Parameter

No

Class description

class ExponentialWorkDamage : public neml::StandardScalarDamage

Simple exponential damage model.

Public Functions

ExponentialWorkDamage(ParameterSet &params)

Parameters are the elastic model, parameters W0, k0, and af, the base material model, the CTE, a solver tolerance, maximum number of iterations, and a verbosity flag.

virtual void f(const double *const s_np1, double d_np1, double T_np1, double &f) const

damage rate is (d + k0)**af / W0 * s_eq

virtual void df_ds(const double *const s_np1, double d_np1, double T_np1, double *const df) const

Derivative of damage wrt stress.

virtual void df_dd(const double *const s_np1, double d_np1, double T_np1, double &df) const

Derivative of damage wrt damage.

Public Static Functions

static std::string type()

String type for the object system.

static ParameterSet parameters()

Return the default parameters.

static std::unique_ptr<NEMLObject> initialize(ParameterSet &params)

Initialize from a parameter set.