Combined scalar damage models

Overview

This object combines several different scalar damage models by applying them all to the same base material model. It combines the damage models additively, so that the total damage at any time step is

\omega_{n+1} = \omega_n + \sum_{i=1}^{n}\Delta\omega_{i}

where \Delta\omega_i is the increment in damage from the ith damage model.

Parameters

Parameter

Object type

Description

Default

elastic

neml::LinearElasticModel

Elasticity model

No

models

std::vector<neml::NEMLScalarDamagedModel_sd>

List of damage models to apply

No

Class description

class CombinedDamage : public neml::ScalarDamage

Stack multiple scalar damage models together.

Public Functions

CombinedDamage(ParameterSet &params)

Parameters: elastic model, vector of damage models, the base model CTE, solver tolerance, solver max iterations, and a verbosity flag

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.

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.