Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://mooseframework.inl.gov 3 : //* 4 : //* All rights reserved, see COPYRIGHT for full restrictions 5 : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT 6 : //* 7 : //* Licensed under LGPL 2.1, please see LICENSE for details 8 : //* https://www.gnu.org/licenses/lgpl-2.1.html 9 : 10 : #include "ScalarMaterialDamage.h" 11 : 12 : registerMooseObject("SolidMechanicsApp", ScalarMaterialDamage); 13 : registerMooseObject("SolidMechanicsApp", ADScalarMaterialDamage); 14 : 15 : template <bool is_ad> 16 : InputParameters 17 728 : ScalarMaterialDamageTempl<is_ad>::validParams() 18 : { 19 728 : InputParameters params = ScalarDamageBaseTempl<is_ad>::validParams(); 20 728 : params.addClassDescription( 21 : "Scalar damage model for which the damage is prescribed by another material"); 22 1456 : params.addRequiredParam<MaterialPropertyName>("damage_index", 23 : "Name of the material property containing the " 24 : "damage index, which goes from 0 (undamaged) to 1 " 25 : "(fully damaged)"); 26 728 : return params; 27 0 : } 28 : 29 : template <bool is_ad> 30 546 : ScalarMaterialDamageTempl<is_ad>::ScalarMaterialDamageTempl(const InputParameters & parameters) 31 : : ScalarDamageBaseTempl<is_ad>(parameters), 32 546 : _damage_property(this->template getGenericMaterialProperty<Real, is_ad>("damage_index")) 33 : { 34 546 : } 35 : 36 : template <bool is_ad> 37 : void 38 2334004 : ScalarMaterialDamageTempl<is_ad>::updateQpDamageIndex() 39 : { 40 2334004 : _damage_index[_qp] = _damage_property[_qp]; 41 : 42 4260792 : if (MooseUtils::absoluteFuzzyLessThan(_damage_index[_qp], 0.0) || 43 1926788 : MooseUtils::absoluteFuzzyGreaterThan(_damage_index[_qp], 1.0)) 44 4 : mooseError(_base_name + "damage_index ", 45 : "must be between 0 and 1. Current value is: ", 46 : _damage_index[_qp]); 47 2334000 : } 48 : 49 : template class ScalarMaterialDamageTempl<false>; 50 : template class ScalarMaterialDamageTempl<true>;