Power law damage

Overview

This object implements a “standard” damage model proportional to a power law in stress and directly to the effective inelastic strain. The damage function is

w = A \sigma_{eff}^n

\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.

Parameters

Parameter

Object type

Description

Default

elastic

neml::LinearElasticModel

Elasticity model

No

A

neml::Interpolate

Prefactor

No

a

neml::Interpolate

Stress exponent

No

Class description

class PowerLawDamage : public neml::StandardScalarDamage

Simple power law damage.

Public Functions

PowerLawDamage(ParameterSet &params)

Parameters are an elastic model, the constants A and a, the base material model, the CTE, a solver tolerance, solver 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 = A * s_eq**a (times the inelastic strain rate)

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

Derivative of f wrt stress.

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

Derivative of f 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.