https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private 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 Types

typedef DerivativeMaterialPropertyNameInterface::SymbolName SymbolName
 

Public Member Functions

 ComputePlasticHeatEnergy (const InputParameters &parameters)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialPropertyByName (const std::string &name)
 
void validateDerivativeMaterialPropertyBase (const std::string &base)
 
const MaterialPropertyName derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName derivativePropertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName derivativePropertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 

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
 
const MaterialProperty< RankTwoTensor > & _plastic_strain
 plastic strain
 
const MaterialProperty< RankTwoTensor > & _plastic_strain_old
 old value of plastic strain
 
const MaterialProperty< RankTwoTensor > & _stress
 stress
 
const MaterialProperty< RankFourTensor > & _Jacobian_mult
 d(stress)/d(total strain)
 
const MaterialProperty< RankFourTensor > & _elasticity_tensor
 elasticity tensor
 
MaterialProperty< Real > & _plastic_heat
 computed property: stress * (plastic_strain - plastic_strain_old) / dt
 
MaterialProperty< RankTwoTensor > & _dplastic_heat_dstrain
 d(plastic_heat)/d(total strain)
 

Private Member Functions

bool haveMaterialProperty (const std::string &prop_name)
 
std::vector< VariableName > buildVariableVector (const VariableName &c1, const VariableName &c2, const VariableName &c3)
 
void validateCouplingHelper (const MaterialPropertyName &base, const std::vector< VariableName > &c, const System &system, std::vector< VariableName > &missing)
 
bool isNotObjectVariable (const VariableName &name)
 

Private Attributes

FEProblemBase_dmi_fe_problem
 

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 21 of file ComputePlasticHeatEnergy.h.

Constructor & Destructor Documentation

◆ ComputePlasticHeatEnergy()

ComputePlasticHeatEnergy::ComputePlasticHeatEnergy ( const InputParameters parameters)

Definition at line 26 of file ComputePlasticHeatEnergy.C.

28 _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : ""),
29 _plastic_strain(getMaterialProperty<RankTwoTensor>("plastic_strain")),
30 _plastic_strain_old(getMaterialPropertyOld<RankTwoTensor>("plastic_strain")),
31 _stress(getMaterialProperty<RankTwoTensor>(_base_name + "stress")),
32 _Jacobian_mult(getMaterialProperty<RankFourTensor>(_base_name + "Jacobian_mult")),
33 _elasticity_tensor(getMaterialProperty<RankFourTensor>(_base_name + "elasticity_tensor")),
34 _plastic_heat(declareProperty<Real>(_base_name + "plastic_heat")),
35 _dplastic_heat_dstrain(declareProperty<RankTwoTensor>(_base_name + "dplastic_heat_dstrain"))
36{
37}
const MaterialProperty< RankTwoTensor > & _plastic_strain
plastic strain
MaterialProperty< RankTwoTensor > & _dplastic_heat_dstrain
d(plastic_heat)/d(total strain)
const MaterialProperty< RankFourTensor > & _Jacobian_mult
d(stress)/d(total strain)
const MaterialProperty< RankTwoTensor > & _plastic_strain_old
old value of plastic strain
MaterialProperty< Real > & _plastic_heat
computed property: stress * (plastic_strain - plastic_strain_old) / dt
const MaterialProperty< RankFourTensor > & _elasticity_tensor
elasticity tensor
const std::string _base_name
optional parameter that allows multiple mechanics materials to be defined
const MaterialProperty< RankTwoTensor > & _stress
stress
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Member Function Documentation

◆ computeQpProperties()

void ComputePlasticHeatEnergy::computeQpProperties ( )
overrideprotectedvirtual

Definition at line 40 of file ComputePlasticHeatEnergy.C.

41{
42 _plastic_heat[_qp] =
43 _stress[_qp].doubleContraction(_plastic_strain[_qp] - _plastic_strain_old[_qp]) / _dt;
44 if (_fe_problem.currentlyComputingJacobian())
45 {
46 if (_plastic_strain[_qp] == _plastic_strain_old[_qp])
47 // no plastic deformation, so _elasticity_tensor = _Jacobian_mult
49 else
50 {
52 (_plastic_strain[_qp] - _plastic_strain_old[_qp]).initialContraction(_Jacobian_mult[_qp]);
55 _stress[_qp].initialContraction(_elasticity_tensor[_qp].invSymm() * _Jacobian_mult[_qp]);
56 _dplastic_heat_dstrain[_qp] /= _dt;
57 }
58 }
59}

◆ validParams()

InputParameters ComputePlasticHeatEnergy::validParams ( )
static

Definition at line 15 of file ComputePlasticHeatEnergy.C.

16{
18 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 params.addClassDescription("Plastic heat energy density = stress * plastic_strain_rate");
23 return params;
24}
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
static InputParameters validParams()

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 32 of file ComputePlasticHeatEnergy.h.

◆ _dplastic_heat_dstrain

MaterialProperty<RankTwoTensor>& ComputePlasticHeatEnergy::_dplastic_heat_dstrain
protected

d(plastic_heat)/d(total strain)

Definition at line 53 of file ComputePlasticHeatEnergy.h.

Referenced by computeQpProperties().

◆ _elasticity_tensor

const MaterialProperty<RankFourTensor>& ComputePlasticHeatEnergy::_elasticity_tensor
protected

elasticity tensor

Definition at line 47 of file ComputePlasticHeatEnergy.h.

Referenced by computeQpProperties().

◆ _Jacobian_mult

const MaterialProperty<RankFourTensor>& ComputePlasticHeatEnergy::_Jacobian_mult
protected

d(stress)/d(total strain)

Definition at line 44 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 50 of file ComputePlasticHeatEnergy.h.

Referenced by computeQpProperties().

◆ _plastic_strain

const MaterialProperty<RankTwoTensor>& ComputePlasticHeatEnergy::_plastic_strain
protected

plastic strain

Definition at line 35 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 38 of file ComputePlasticHeatEnergy.h.

Referenced by computeQpProperties().

◆ _stress

const MaterialProperty<RankTwoTensor>& ComputePlasticHeatEnergy::_stress
protected

stress

Definition at line 41 of file ComputePlasticHeatEnergy.h.

Referenced by computeQpProperties().


The documentation for this class was generated from the following files: