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