www.mooseframework.org
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ComputePlasticHeatEnergy Class Reference

ComputePlasticHeatEnergy computes stress * (plastic_strain - plastic_strain_old) and, if currentlyComputingJacobian, then the derivative of this quantity wrt total strain. More...

#include <ComputePlasticHeatEnergy.h>

Inheritance diagram for ComputePlasticHeatEnergy:
[legend]

Public Member Functions

 ComputePlasticHeatEnergy (const InputParameters &parameters)
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

virtual void computeQpProperties () override
 

Protected Attributes

const std::string _base_name
 optional parameter that allows multiple mechanics materials to be defined More...
 
const MaterialProperty< RankTwoTensor > & _plastic_strain
 plastic strain More...
 
const MaterialProperty< RankTwoTensor > & _plastic_strain_old
 old value of plastic strain More...
 
const MaterialProperty< RankTwoTensor > & _stress
 stress More...
 
const MaterialProperty< RankFourTensor > & _Jacobian_mult
 d(stress)/d(total strain) More...
 
const MaterialProperty< RankFourTensor > & _elasticity_tensor
 elasticity tensor More...
 
MaterialProperty< Real > & _plastic_heat
 computed property: stress * (plastic_strain - plastic_strain_old) / dt More...
 
MaterialProperty< RankTwoTensor > & _dplastic_heat_dstrain
 d(plastic_heat)/d(total strain) More...
 

Detailed Description

ComputePlasticHeatEnergy computes stress * (plastic_strain - plastic_strain_old) and, if currentlyComputingJacobian, then the derivative of this quantity wrt total strain.

Definition at line 26 of file ComputePlasticHeatEnergy.h.

Constructor & Destructor Documentation

◆ ComputePlasticHeatEnergy()

ComputePlasticHeatEnergy::ComputePlasticHeatEnergy ( const InputParameters &  parameters)

Definition at line 28 of file ComputePlasticHeatEnergy.C.

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 }

Member Function Documentation

◆ computeQpProperties()

void ComputePlasticHeatEnergy::computeQpProperties ( )
overrideprotectedvirtual

Definition at line 42 of file ComputePlasticHeatEnergy.C.

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 }

◆ validParams()

InputParameters ComputePlasticHeatEnergy::validParams ( )
static

Definition at line 17 of file ComputePlasticHeatEnergy.C.

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 }

Member Data Documentation

◆ _base_name

const std::string ComputePlasticHeatEnergy::_base_name
protected

optional parameter that allows multiple mechanics materials to be defined

Definition at line 37 of file ComputePlasticHeatEnergy.h.

◆ _dplastic_heat_dstrain

MaterialProperty<RankTwoTensor>& ComputePlasticHeatEnergy::_dplastic_heat_dstrain
protected

d(plastic_heat)/d(total strain)

Definition at line 58 of file ComputePlasticHeatEnergy.h.

Referenced by computeQpProperties().

◆ _elasticity_tensor

const MaterialProperty<RankFourTensor>& ComputePlasticHeatEnergy::_elasticity_tensor
protected

elasticity tensor

Definition at line 52 of file ComputePlasticHeatEnergy.h.

Referenced by computeQpProperties().

◆ _Jacobian_mult

const MaterialProperty<RankFourTensor>& ComputePlasticHeatEnergy::_Jacobian_mult
protected

d(stress)/d(total strain)

Definition at line 49 of file ComputePlasticHeatEnergy.h.

Referenced by computeQpProperties().

◆ _plastic_heat

MaterialProperty<Real>& ComputePlasticHeatEnergy::_plastic_heat
protected

computed property: stress * (plastic_strain - plastic_strain_old) / dt

Definition at line 55 of file ComputePlasticHeatEnergy.h.

Referenced by computeQpProperties().

◆ _plastic_strain

const MaterialProperty<RankTwoTensor>& ComputePlasticHeatEnergy::_plastic_strain
protected

plastic strain

Definition at line 40 of file ComputePlasticHeatEnergy.h.

Referenced by computeQpProperties().

◆ _plastic_strain_old

const MaterialProperty<RankTwoTensor>& ComputePlasticHeatEnergy::_plastic_strain_old
protected

old value of plastic strain

Definition at line 43 of file ComputePlasticHeatEnergy.h.

Referenced by computeQpProperties().

◆ _stress

const MaterialProperty<RankTwoTensor>& ComputePlasticHeatEnergy::_stress
protected

stress

Definition at line 46 of file ComputePlasticHeatEnergy.h.

Referenced by computeQpProperties().


The documentation for this class was generated from the following files:
ComputePlasticHeatEnergy::_base_name
const std::string _base_name
optional parameter that allows multiple mechanics materials to be defined
Definition: ComputePlasticHeatEnergy.h:37
ComputePlasticHeatEnergy::_plastic_strain
const MaterialProperty< RankTwoTensor > & _plastic_strain
plastic strain
Definition: ComputePlasticHeatEnergy.h:40
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::_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::_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