damage.hpp

Overview

Functions for damage mechanics modeling and damage evolution laws, including Weibull and Manson-Coffin damage models.

API Reference

double damage_weibull(const arma::vec &stress, const double &damage, const double &alpha, const double &beta, const double &DTime, const std::string &criterion = "vonmises")

Provides the damage evolution \( \delta D \) considering a Weibull damage law.

It is given by : \( \Delta D = (1-D_{old})*\Big(1-exp\big(-1(\frac{crit}{\beta})^{\alpha}\big)\Big) \) Parameters of this function are: the stress vector \( \sigma \), the old damage \( D_{old} \), the shape parameter \( \alpha \), the scale parameter \( \beta \), the time increment \( \Delta T \) and the criterion (which is a string). The criterion possibilities are : “vonmises” : \( crit = \sigma_{Mises} \) “hydro” : \( crit = tr(\sigma) \) “J3” : \( crit = J3(\sigma) \) Default value of the criterion is “vonmises”.

double varD = damage_weibull(stress, damage, alpha, beta, DTime, criterion);

Parameters:
  • stress – The stress vector \( \sigma \)

  • damage – The old damage \( D_{old} \)

  • alpha – The shape parameter \( \alpha \)

  • beta – The scale parameter \( \beta \)

  • DTime – The time increment \( \Delta T \)

  • criterion – The criterion (default is “vonmises”)

Returns:

The damage evolution \( \delta D \)

double damage_kachanov(const arma::vec &stress, const arma::vec &strain, const double &damage, const double &A0, const double &r, const std::string &criterion)

Provides the damage evolution \( \delta D \) considering a Weibull damage law.

It is given by : \( \delta D = \Big(\frac{crit}{A_0(1-D_{old})}\Big)^r \) the stress vector \( \sigma \), the strain vector \( \epsilon \), the old damage \( D_{old} \), the material properties characteristic of creep damage \( A_0 \), \( r \) and the criterion (which is a string). The criterion possibilities are : “vonmises” : \( crit = \sigma_{Mises} \) “hydro” : \( crit = tr(\sigma) \) “J3” : \( crit = J3(\sigma) \) Here, the criterion has no default value.

varD = damage_kachanov(stress, strain, damage, A0, r, criterion);

Parameters:
  • stress – The stress vector \( \sigma \)

  • strain – The strain vector \( \epsilon \)

  • damage – The old damage \( D_{old} \)

  • A0 – The material properties characteristic of creep damage \( A_0 \)

  • r – The parameter \( r \)

  • criterion – The criterion (which is a string)

Returns:

The damage evolution \( \delta D \)

double damage_miner(const double &S_max, const double &S_mean, const double &S_ult, const double &b, const double &B0, const double &beta, const double &Sl_0 = 0.)

Provides the constant damage evolution \( \Delta D \) considering a Woehler- Miner’s damage law.

It is given by : \( \Delta D = \big(\frac{S_{Max}-S_{Mean}+Sl_0*(1-b*S_{Mean})}{S_{ult}-S_{Max}}\big)*\big(\frac{S_{Max}-S_{Mean}}{B_0*(1-b*S_{Mean})}\big)^\beta \) Parameters of this function are: the max stress value \( \sigma_{Max} \), the mean stress value \(\ sigma_{Mean} \), the “ultimate” stress value \( \sigma_{ult} \), the parameter \( b \), the parameter \( B_0 \), the parameter \( \beta \) and the parameter \( Sl_0 \). Default value of :math:Sl_0 is 0.0.

double varD = damage_miner(S_max, S_mean, S_ult, b, B0, beta, Sl_0);

Parameters:
  • S_max – The max stress value \( \sigma_{Max} \)

  • S_mean – The mean stress value \(\ sigma_{Mean} \)

  • S_ult – The “ultimate” stress value \( \sigma_{ult} \)

  • b – The parameter \( b \)

  • B0 – The parameter \( B_0 \)

  • beta – The parameter \( \beta \)

  • Sl_0 – The parameter \( Sl_0 \) (default is 0.0)

Returns:

The damage evolution \( \delta D \)

double damage_manson(const double &S_amp, const double &C2, const double &gamma2)

Provides the constant damage evolution \( \Delta D \) considering a Coffin-Manson’s damage law.

It is given by : \( \Delta D = \big(\frac{\sigma_{Amp}}{C_{2}}\big)^{\gamma_2} \) Parameters of this function are: the stress amplitude \( \sigma_{Amp} \), the parameter \( C_2 \) and the parameter \( \gamma_2 \).

double varD = damage_manson(S_amp, C2, gamma2);

Parameters:
  • S_amp – The stress amplitude \( \sigma_{Amp} \)

  • C2 – The parameter \( C_2 \)

  • gamma2 – The parameter \( \gamma_2 \)

Returns:

The damage evolution \( \delta D \)