www.mooseframework.org
ComputePlasticHeatEnergy.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
11 
12 registerMooseObject("TensorMechanicsApp", ComputePlasticHeatEnergy);
13 
15 
16 InputParameters
18 {
19  InputParameters params = Material::validParams();
20  params.addParam<std::string>("base_name",
21  "Optional parameter that allows the user to define "
22  "multiple mechanics material systems on the same "
23  "block, i.e. for multiple phases");
24  params.addClassDescription("Plastic heat energy density = stress * plastic_strain_rate");
25  return params;
26 }
27 
28 ComputePlasticHeatEnergy::ComputePlasticHeatEnergy(const InputParameters & parameters)
29  : DerivativeMaterialInterface<Material>(parameters),
30  _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : ""),
31  _plastic_strain(getMaterialProperty<RankTwoTensor>("plastic_strain")),
32  _plastic_strain_old(getMaterialPropertyOld<RankTwoTensor>("plastic_strain")),
33  _stress(getMaterialProperty<RankTwoTensor>(_base_name + "stress")),
34  _Jacobian_mult(getMaterialProperty<RankFourTensor>(_base_name + "Jacobian_mult")),
35  _elasticity_tensor(getMaterialProperty<RankFourTensor>(_base_name + "elasticity_tensor")),
36  _plastic_heat(declareProperty<Real>(_base_name + "plastic_heat")),
37  _dplastic_heat_dstrain(declareProperty<RankTwoTensor>(_base_name + "dplastic_heat_dstrain"))
38 {
39 }
40 
41 void
43 {
44  _plastic_heat[_qp] =
45  _stress[_qp].doubleContraction(_plastic_strain[_qp] - _plastic_strain_old[_qp]) / _dt;
46  if (_fe_problem.currentlyComputingJacobian())
47  {
48  if (_plastic_strain[_qp] == _plastic_strain_old[_qp])
49  // no plastic deformation, so _elasticity_tensor = _Jacobian_mult
51  else
52  {
54  (_plastic_strain[_qp] - _plastic_strain_old[_qp]).initialContraction(_Jacobian_mult[_qp]);
55  _dplastic_heat_dstrain[_qp] += _stress[_qp];
57  _stress[_qp].initialContraction(_elasticity_tensor[_qp].invSymm() * _Jacobian_mult[_qp]);
58  _dplastic_heat_dstrain[_qp] /= _dt;
59  }
60  }
61 }
registerMooseObject
registerMooseObject("TensorMechanicsApp", ComputePlasticHeatEnergy)
ComputePlasticHeatEnergy::_plastic_strain
const MaterialProperty< RankTwoTensor > & _plastic_strain
plastic strain
Definition: ComputePlasticHeatEnergy.h:40
ComputePlasticHeatEnergy.h
ComputePlasticHeatEnergy::computeQpProperties
virtual void computeQpProperties() override
Definition: ComputePlasticHeatEnergy.C:42
ComputePlasticHeatEnergy::ComputePlasticHeatEnergy
ComputePlasticHeatEnergy(const InputParameters &parameters)
Definition: ComputePlasticHeatEnergy.C:28
validParams
InputParameters validParams()
ComputePlasticHeatEnergy::_elasticity_tensor
const MaterialProperty< RankFourTensor > & _elasticity_tensor
elasticity tensor
Definition: ComputePlasticHeatEnergy.h:52
RankTwoTensor
RankTwoTensorTempl< Real > RankTwoTensor
Definition: ACGrGrElasticDrivingForce.h:17
ComputePlasticHeatEnergy
ComputePlasticHeatEnergy computes stress * (plastic_strain - plastic_strain_old) and,...
Definition: ComputePlasticHeatEnergy.h:26
RankFourTensorTempl
Definition: ACGrGrElasticDrivingForce.h:20
ComputePlasticHeatEnergy::_dplastic_heat_dstrain
MaterialProperty< RankTwoTensor > & _dplastic_heat_dstrain
d(plastic_heat)/d(total strain)
Definition: ComputePlasticHeatEnergy.h:58
ComputePlasticHeatEnergy::_Jacobian_mult
const MaterialProperty< RankFourTensor > & _Jacobian_mult
d(stress)/d(total strain)
Definition: ComputePlasticHeatEnergy.h:49
ComputePlasticHeatEnergy::validParams
static InputParameters validParams()
Definition: ComputePlasticHeatEnergy.C:17
RankTwoTensorTempl< Real >
ComputePlasticHeatEnergy::_plastic_strain_old
const MaterialProperty< RankTwoTensor > & _plastic_strain_old
old value of plastic strain
Definition: ComputePlasticHeatEnergy.h:43
ComputePlasticHeatEnergy::_stress
const MaterialProperty< RankTwoTensor > & _stress
stress
Definition: ComputePlasticHeatEnergy.h:46
ComputePlasticHeatEnergy::_plastic_heat
MaterialProperty< Real > & _plastic_heat
computed property: stress * (plastic_strain - plastic_strain_old) / dt
Definition: ComputePlasticHeatEnergy.h:55
defineLegacyParams
defineLegacyParams(ComputePlasticHeatEnergy)