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 "ComputeGeneralStressBase.h" 11 : #include "ComputeElasticityTensorBase.h" 12 : #include "Function.h" 13 : 14 : InputParameters 15 26868 : ComputeGeneralStressBase::validParams() 16 : { 17 26868 : InputParameters params = Material::validParams(); 18 53736 : params.addParam<std::string>("base_name", 19 : "Optional parameter that allows the user to define " 20 : "multiple mechanics material systems on the same " 21 : "block, i.e. for multiple phases"); 22 26868 : return params; 23 0 : } 24 : 25 20110 : ComputeGeneralStressBase::ComputeGeneralStressBase(const InputParameters & parameters) 26 : : DerivativeMaterialInterface<Material>(parameters), 27 20740 : _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : ""), 28 40220 : _mechanical_strain(getMaterialPropertyByName<RankTwoTensor>(_base_name + "mechanical_strain")), 29 20110 : _stress(declareProperty<RankTwoTensor>(_base_name + "stress")), 30 20110 : _elastic_strain(declareProperty<RankTwoTensor>(_base_name + "elastic_strain")), 31 20110 : _extra_stress(getDefaultMaterialProperty<RankTwoTensor>(_base_name + "extra_stress")), 32 40220 : _Jacobian_mult(declareProperty<RankFourTensor>(_base_name + "Jacobian_mult")) 33 : { 34 20110 : } 35 : 36 : void 37 1259308 : ComputeGeneralStressBase::initQpStatefulProperties() 38 : { 39 1259308 : _elastic_strain[_qp].zero(); 40 1259308 : _stress[_qp].zero(); 41 1259308 : } 42 : 43 : void 44 99466588 : ComputeGeneralStressBase::computeQpProperties() 45 : { 46 99466588 : computeQpStress(); 47 : 48 : // Add in extra stress 49 99466093 : _stress[_qp] += _extra_stress[_qp]; 50 99466093 : }