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)
virtual void initQpStatefulProperties() override
virtual void updateQpDamageIndex() override
Update the damage index at the current qpoint.
static InputParameters validParams()
Scalar damage model that defines the damage parameter using a material property.
virtual void initQpStatefulProperties() override
virtual void initialSetup() override
Add-on class that provides the functionality to check if guarantees for material properties are provi...
static InputParameters validParams()
NonlocalDamageTempl(const InputParameters ¶meters)
Base class for scalar damage models.