21 "Nonlocal damage model. Given an RadialAverage UO this creates a new damage index that can "
22 "be used as for ComputeDamageStress without havign to change existing local damage models.");
23 params.
addRequiredParam<UserObjectName>(
"average_UO",
"Radial Average user object");
25 "Name of the local damage model used to compute "
26 "the nonlocal damage index");
34 _average(this->template getUserObject<
RadialAverage>(
"average_UO").getAverage()),
35 _local_damage_model_name(this->template getParam<MaterialName>(
"local_damage_model")),
44 &this->getMaterialByName(_local_damage_model_name));
46 if (!_local_damage_model)
47 this->paramError(
"damage_model",
48 "Damage Model " + _local_damage_model_name +
49 " is not compatible with NonlocalDamage model");
64 _local_damage_model->getQpDamageIndex(_qp);
68 if (_prev_elem != _current_elem)
70 _average_damage = _average.find(_current_elem->id());
71 _prev_elem = _current_elem;
74 if (_average_damage != _average.end())
76 _damage_index[_qp] = std::max(_average_damage->second[_qp], _damage_index_old[_qp]);
81 _damage_index[_qp] = std::max(0.0, _damage_index_old[_qp]);
registerMooseObject("SolidMechanicsApp", NonlocalDamage)
Add-on class that provides the functionality to check if guarantees for material properties are provi...
Scalar damage model that defines the damage parameter using a material property.
static InputParameters validParams()
virtual void initQpStatefulProperties() override
virtual void updateQpDamageIndex() override
Update the damage index at the current qpoint.
NonlocalDamageTempl(const InputParameters ¶meters)
virtual void initialSetup() override
Base class for scalar damage models.
virtual void initQpStatefulProperties() override
static InputParameters validParams()