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 23604 : ComputeGeneralStressBase::validParams() 16 : { 17 23604 : InputParameters params = Material::validParams(); 18 47208 : 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 23604 : return params; 23 0 : } 24 : 25 17662 : ComputeGeneralStressBase::ComputeGeneralStressBase(const InputParameters & parameters) 26 : : DerivativeMaterialInterface<Material>(parameters), 27 18202 : _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : ""), 28 35324 : _mechanical_strain(getMaterialPropertyByName<RankTwoTensor>(_base_name + "mechanical_strain")), 29 17662 : _stress(declareProperty<RankTwoTensor>(_base_name + "stress")), 30 17662 : _elastic_strain(declareProperty<RankTwoTensor>(_base_name + "elastic_strain")), 31 17662 : _extra_stress(getDefaultMaterialProperty<RankTwoTensor>(_base_name + "extra_stress")), 32 35324 : _Jacobian_mult(declareProperty<RankFourTensor>(_base_name + "Jacobian_mult")) 33 : { 34 17662 : } 35 : 36 : void 37 1135240 : ComputeGeneralStressBase::initQpStatefulProperties() 38 : { 39 1135240 : _elastic_strain[_qp].zero(); 40 1135240 : _stress[_qp].zero(); 41 1135240 : } 42 : 43 : void 44 88293216 : ComputeGeneralStressBase::computeQpProperties() 45 : { 46 88293216 : computeQpStress(); 47 : 48 : // Add in extra stress 49 88292788 : _stress[_qp] += _extra_stress[_qp]; 50 88292788 : }