Damage mechanics
Overview
NEML implements damage mechanics with metamodel place on top of an existing
(small strain) base material model.
The metamodel supplements the base material history variables with a
vector of damage variables
.
In the most generic case, these damage variables somehow modify the base
material’s stress update.
The damage model must also provide the history evolution equations describing
the evolution of damage.
The interface is then

which is identical to the interface for the
base small strain material models,
except now with the addition of some dependence on the
damage variables
.
Implementations
The generic interface described here could have any number of damage
variables and could modify the stress with those variables in any way.
The more standard damage model, depending on a single scalar damage
variable is implemented as a neml::NEMLScalarDamagedModel_sd.
- Model damaged by a scalar variable
- Overview
- Parameters
- Scalar damage models
- Scalar damage models
- Overview
- Implementations
- Scalar damage, defined in rate form
- Overview
- Implementations
- Modular creep damage
- Overview
- Effective stress
- Overview
- Implementations
- von Mises effective stress
- Max principal effective stress
- Huddleston effective stress
- Maximum of several effective stresses
- Sum of several effective stresses
- Mean effective stress
- Class description
- Effective stress
- Parameters
- Class description
- Overview
- Classical creep damage
- Larson Miller Damage
- Overview
- Parameters
- Class description
LarsonMillerCreepDamageLarsonMillerCreepDamage::LarsonMillerCreepDamage()LarsonMillerCreepDamage::damage_rate()LarsonMillerCreepDamage::ddamage_rate_dd()LarsonMillerCreepDamage::ddamage_rate_de()LarsonMillerCreepDamage::ddamage_rate_ds()LarsonMillerCreepDamage::type()LarsonMillerCreepDamage::parameters()LarsonMillerCreepDamage::initialize()
- Modular creep damage
- Class description
- Combined scalar damage models
- Standard damage
- Dissipated work damage
- Scalar damage, defined in rate form
- Class description
- Scalar damage models
- Class description
NEMLScalarDamagedModel_sdNEMLScalarDamagedModel_sd::NEMLScalarDamagedModel_sd()NEMLScalarDamagedModel_sd::update_sd_actual()NEMLScalarDamagedModel_sd::ndamage()NEMLScalarDamagedModel_sd::populate_damage()NEMLScalarDamagedModel_sd::init_damage()NEMLScalarDamagedModel_sd::nparams()NEMLScalarDamagedModel_sd::init_x()NEMLScalarDamagedModel_sd::RJ()NEMLScalarDamagedModel_sd::make_trial_state()NEMLScalarDamagedModel_sd::get_damage()NEMLScalarDamagedModel_sd::should_del_element()NEMLScalarDamagedModel_sd::is_damage_model()NEMLScalarDamagedModel_sd::type()NEMLScalarDamagedModel_sd::parameters()NEMLScalarDamagedModel_sd::initialize()
Class description
-
class NEMLDamagedModel_sd : public neml::NEMLModel_sd
Small strain damage model.
Subclassed by neml::NEMLScalarDamagedModel_sd
Public Functions
-
NEMLDamagedModel_sd(ParameterSet ¶ms)
Input is an elastic model, an undamaged base material, and the CTE.
-
virtual void init_state(History &hist) const
Initialize base according to the base model and damage according to.
-
virtual void update_sd_actual(const double *const e_np1, const double *const e_n, double T_np1, double T_n, double t_np1, double t_n, double *const s_np1, const double *const s_n, double *const h_np1, const double *const h_n, double *const A_np1, double &u_np1, double u_n, double &p_np1, double p_n) = 0
The damaged stress update.
-
virtual size_t ndamage() const = 0
Number of damage variables.
Override the elastic model.
-
NEMLDamagedModel_sd(ParameterSet ¶ms)