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