ScalarMaterialDamage Class Reference

Scalar damage model for which the damage is prescribed by another material. More...

#include <ScalarMaterialDamage.h>

Inheritance diagram for ScalarMaterialDamage:
[legend]

## Public Member Functions

ScalarMaterialDamage (const InputParameters &parameters)

virtual void initQpStatefulProperties () override

virtual void updateDamage () override
Update the internal variable(s) that evolve the damage. More...

virtual void updateStressForDamage (RankTwoTensor &stress_new) override
Update the current stress tensor for effects of damage. More...

virtual void updateJacobianMultForDamage (RankFourTensor &jacobian_mult) override
Update the material constitutive matrix. More...

virtual Real computeTimeStepLimit () override
Compute the limiting value of the time step for this material. More...

const Real & getQpDamageIndex (unsigned int qp)

const std::string getDamageIndexName () const

virtual void finiteStrainRotation (const RankTwoTensor &rotation_increment)
Perform any necessary rotation of internal variables for finite strain. More...

void setQp (unsigned int qp)
Sets the value of the member variable _qp for use in inheriting classes. More...

void resetQpProperties () final
Retained as empty methods to avoid a warning from Material.C in framework. These methods are unused in all inheriting classes and should not be overwritten. More...

void resetProperties () final

## Protected Member Functions

virtual void updateQpDamageIndex () override
Update the damage index at the current qpoint. More...

## Protected Attributes

const std::string _damage_index_name
Name of the material property where the damage index is stored. More...

const bool _use_old_damage
If true, use the damage index from the old state (rather than the current state) More...

const Real & _residual_stiffness_fraction
Residual fraction of stiffness used for material that is fully damaged. More...

const Real & _maximum_damage_increment
Maximum damage increment allowed for the time step. More...

const std::string _base_name
Base name optionally used as prefix to material tensor names. More...

const MaterialProperty< Real > & _damage_property
Material property that provides the damage index. More...

MaterialProperty< Real > & _damage_index
Material property that provides the damage index. More...

const MaterialProperty< Real > & _damage_index_old

## Detailed Description

Scalar damage model for which the damage is prescribed by another material.

Definition at line 24 of file ScalarMaterialDamage.h.

## ◆ ScalarMaterialDamage()

 ScalarMaterialDamage::ScalarMaterialDamage ( const InputParameters & parameters )

Definition at line 28 of file ScalarMaterialDamage.C.

29  : ScalarDamageBase(parameters),
31  getMaterialPropertyByName<Real>(getParam<MaterialPropertyName>("damage_index")))
32 {
33 }
const MaterialProperty< Real > & _damage_property
Material property that provides the damage index.
ScalarDamageBase(const InputParameters &parameters)

## ◆ computeTimeStepLimit()

 Real ScalarDamageBase::computeTimeStepLimit ( )
overridevirtualinherited

Compute the limiting value of the time step for this material.

Returns
Limiting time step

Reimplemented from DamageBase.

Definition at line 88 of file ScalarDamageBase.C.

89 {
90  Real current_damage_increment = (_damage_index[_qp] - _damage_index_old[_qp]);
91  if (MooseUtils::absoluteFuzzyEqual(current_damage_increment, 0.0))
92  return std::numeric_limits<Real>::max();
93
94  return _dt * _maximum_damage_increment / current_damage_increment;
95 }
const MaterialProperty< Real > & _damage_index_old
const Real & _maximum_damage_increment
Maximum damage increment allowed for the time step.
MaterialProperty< Real > & _damage_index
Material property that provides the damage index.

## ◆ finiteStrainRotation()

 void DamageBase::finiteStrainRotation ( const RankTwoTensor & rotation_increment )
virtualinherited

Perform any necessary rotation of internal variables for finite strain.

Parameters
 rotation_increment The finite-strain rotation increment

Definition at line 56 of file DamageBase.C.

Referenced by ComputeDamageStress::computeQpStress().

57 {
58 }

## ◆ getDamageIndexName()

 const std::string ScalarDamageBase::getDamageIndexName ( ) const
inlineinherited

Definition at line 41 of file ScalarDamageBase.h.

41 { return _damage_index_name; }
const std::string _damage_index_name
Name of the material property where the damage index is stored.

## ◆ getQpDamageIndex()

 const Real & ScalarDamageBase::getQpDamageIndex ( unsigned int qp )
inherited

Definition at line 58 of file ScalarDamageBase.C.

Referenced by CombinedScalarDamage::updateQpDamageIndex().

59 {
60  setQp(qp);
62  return _damage_index[_qp];
63 }
void setQp(unsigned int qp)
Sets the value of the member variable _qp for use in inheriting classes.
Definition: DamageBase.C:39
virtual void updateQpDamageIndex()=0
Update the damage index at the current qpoint.
MaterialProperty< Real > & _damage_index
Material property that provides the damage index.

## ◆ initQpStatefulProperties()

 void ScalarDamageBase::initQpStatefulProperties ( )
overridevirtualinherited

Definition at line 52 of file ScalarDamageBase.C.

53 {
54  _damage_index[_qp] = 0.0;
55 }
MaterialProperty< Real > & _damage_index
Material property that provides the damage index.

## ◆ resetProperties()

 void DamageBase::resetProperties ( )
inlinefinalinherited

Definition at line 70 of file DamageBase.h.

70 {}

## ◆ resetQpProperties()

 void DamageBase::resetQpProperties ( )
inlinefinalinherited

Retained as empty methods to avoid a warning from Material.C in framework. These methods are unused in all inheriting classes and should not be overwritten.

Definition at line 69 of file DamageBase.h.

69 {}

## ◆ setQp()

 void DamageBase::setQp ( unsigned int qp )
inherited

Sets the value of the member variable _qp for use in inheriting classes.

Definition at line 39 of file DamageBase.C.

Referenced by ComputeDamageStress::computeQpStress(), and ScalarDamageBase::getQpDamageIndex().

40 {
41  _qp = qp;
42 }

## ◆ updateDamage()

 void ScalarDamageBase::updateDamage ( )
overridevirtualinherited

Update the internal variable(s) that evolve the damage.

Reimplemented from DamageBase.

Definition at line 66 of file ScalarDamageBase.C.

67 {
69 }
virtual void updateQpDamageIndex()=0
Update the damage index at the current qpoint.

## ◆ updateJacobianMultForDamage()

 void ScalarDamageBase::updateJacobianMultForDamage ( RankFourTensor & jacobian_mult )
overridevirtualinherited

Update the material constitutive matrix.

Parameters
 jacobian_mult Material constitutive matrix to be modified for effects of damage

Implements DamageBase.

Definition at line 81 of file ScalarDamageBase.C.

82 {
83  jacobian_mult *= std::max((1.0 - (_use_old_damage ? _damage_index_old[_qp] : _damage_index[_qp])),
85 }
const bool _use_old_damage
If true, use the damage index from the old state (rather than the current state)
const MaterialProperty< Real > & _damage_index_old
const Real & _residual_stiffness_fraction
Residual fraction of stiffness used for material that is fully damaged.
MaterialProperty< Real > & _damage_index
Material property that provides the damage index.

## ◆ updateQpDamageIndex()

 void ScalarMaterialDamage::updateQpDamageIndex ( )
overrideprotectedvirtual

Update the damage index at the current qpoint.

Implements ScalarDamageBase.

Definition at line 36 of file ScalarMaterialDamage.C.

37 {
38  _damage_index[_qp] = _damage_property[_qp];
39
40  if (MooseUtils::absoluteFuzzyLessThan(_damage_index[_qp], 0.0) ||
41  MooseUtils::absoluteFuzzyGreaterThan(_damage_index[_qp], 1.0))
42  mooseError(_base_name + "damage_index ",
43  "must be between 0 and 1. Current value is: ",
44  _damage_index[_qp]);
45 }
const MaterialProperty< Real > & _damage_property
Material property that provides the damage index.
const std::string _base_name
Base name optionally used as prefix to material tensor names.
Definition: DamageBase.h:75
MaterialProperty< Real > & _damage_index
Material property that provides the damage index.

## ◆ updateStressForDamage()

 void ScalarDamageBase::updateStressForDamage ( RankTwoTensor & stress_new )
overridevirtualinherited

Update the current stress tensor for effects of damage.

Parameters
 stress_new Undamaged stress to be modified by the damage model

Implements DamageBase.

Definition at line 72 of file ScalarDamageBase.C.

73 {
74  // Avoid multiplying by a small negative number, which could occur if damage_index
75  // is slightly greater than 1.0
76  stress_new *=
77  std::max((1.0 - (_use_old_damage ? _damage_index_old[_qp] : _damage_index[_qp])), 0.0);
78 }
const bool _use_old_damage
If true, use the damage index from the old state (rather than the current state)
const MaterialProperty< Real > & _damage_index_old
MaterialProperty< Real > & _damage_index
Material property that provides the damage index.

## ◆ _base_name

 const std::string DamageBase::_base_name
protectedinherited

Base name optionally used as prefix to material tensor names.

Definition at line 75 of file DamageBase.h.

Referenced by updateQpDamageIndex().

## ◆ _damage_index

 MaterialProperty& ScalarDamageBase::_damage_index
protectedinherited

Material property that provides the damage index.

Definition at line 51 of file ScalarDamageBase.h.

## ◆ _damage_index_name

 const std::string ScalarDamageBase::_damage_index_name
protectedinherited

Name of the material property where the damage index is stored.

Definition at line 45 of file ScalarDamageBase.h.

Referenced by ScalarDamageBase::getDamageIndexName().

## ◆ _damage_index_old

 const MaterialProperty& ScalarDamageBase::_damage_index_old
protectedinherited

Definition at line 52 of file ScalarDamageBase.h.

## ◆ _damage_property

 const MaterialProperty& ScalarMaterialDamage::_damage_property
protected

Material property that provides the damage index.

Definition at line 33 of file ScalarMaterialDamage.h.

Referenced by updateQpDamageIndex().

## ◆ _maximum_damage_increment

 const Real& ScalarDamageBase::_maximum_damage_increment
protectedinherited

Maximum damage increment allowed for the time step.

Definition at line 62 of file ScalarDamageBase.h.

Referenced by ScalarDamageBase::computeTimeStepLimit().

## ◆ _residual_stiffness_fraction

 const Real& ScalarDamageBase::_residual_stiffness_fraction
protectedinherited

Residual fraction of stiffness used for material that is fully damaged.

Definition at line 59 of file ScalarDamageBase.h.

Referenced by ScalarDamageBase::updateJacobianMultForDamage().

## ◆ _use_old_damage

 const bool ScalarDamageBase::_use_old_damage
protectedinherited

If true, use the damage index from the old state (rather than the current state)

Definition at line 56 of file ScalarDamageBase.h.

The documentation for this class was generated from the following files: