www.mooseframework.org
ADIsotropicPlasticityStressUpdate.h
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 
10 #pragma once
11 
13 
14 #define usingIsotropicPlasticityStressUpdateMembers \
15  usingRadialReturnStressUpdateMembers; \
16  using ADIsotropicPlasticityStressUpdate<compute_stage>::computeYieldStress; \
17  using ADIsotropicPlasticityStressUpdate<compute_stage>::computeHardeningValue; \
18  using ADIsotropicPlasticityStressUpdate<compute_stage>::computeHardeningDerivative; \
19  using ADIsotropicPlasticityStressUpdate<compute_stage>::_yield_stress; \
20  using ADIsotropicPlasticityStressUpdate<compute_stage>::_yield_condition; \
21  using ADIsotropicPlasticityStressUpdate<compute_stage>::_plastic_strain; \
22  using ADIsotropicPlasticityStressUpdate<compute_stage>::_plastic_strain_old; \
23  using ADIsotropicPlasticityStressUpdate<compute_stage>::_hardening_variable; \
24  using ADIsotropicPlasticityStressUpdate<compute_stage>::_hardening_variable_old
25 
26 template <ComputeStage>
28 
30 
48 template <ComputeStage compute_stage>
50 {
51 public:
52  static InputParameters validParams();
53 
54  ADIsotropicPlasticityStressUpdate(const InputParameters & parameters);
55 
56 protected:
57  virtual void initQpStatefulProperties() override;
58  virtual void propagateQpStatefulProperties() override;
59 
60  virtual void computeStressInitialize(const ADReal & effective_trial_stress,
61  const ADRankFourTensor & elasticity_tensor) override;
62  virtual ADReal computeResidual(const ADReal & effective_trial_stress,
63  const ADReal & scalar) override;
64  virtual ADReal computeDerivative(const ADReal & effective_trial_stress,
65  const ADReal & scalar) override;
66  virtual void iterationFinalize(ADReal scalar) override;
67  virtual void computeStressFinalize(const ADRankTwoTensor & plastic_strain_increment) override;
68 
69  virtual void computeYieldStress(const ADRankFourTensor & elasticity_tensor);
70  virtual ADReal computeHardeningValue(const ADReal & scalar);
71  virtual ADReal computeHardeningDerivative(const ADReal & scalar);
72 
74  const std::string _plastic_prepend;
75 
76  const Function * _yield_stress_function;
77  ADReal _yield_stress;
78  const Real _hardening_constant;
79  const Function * _hardening_function;
80 
83 
85  ADMaterialProperty(RankTwoTensor) & _plastic_strain;
86 
88  const MaterialProperty<RankTwoTensor> & _plastic_strain_old;
89 
90  ADMaterialProperty(Real) & _hardening_variable;
91  const MaterialProperty<Real> & _hardening_variable_old;
92  const ADVariableValue & _temperature;
93 
95 };
ADIsotropicPlasticityStressUpdate::initQpStatefulProperties
virtual void initQpStatefulProperties() override
Definition: ADIsotropicPlasticityStressUpdate.C:83
ADIsotropicPlasticityStressUpdate::validParams
static InputParameters validParams()
Definition: ADIsotropicPlasticityStressUpdate.C:21
ADIsotropicPlasticityStressUpdate::ADIsotropicPlasticityStressUpdate
ADIsotropicPlasticityStressUpdate(const InputParameters &parameters)
Definition: ADIsotropicPlasticityStressUpdate.C:47
ADIsotropicPlasticityStressUpdate::_hardening_variable_old
const MaterialProperty< Real > & _hardening_variable_old
Definition: ADIsotropicPlasticityStressUpdate.h:91
ADIsotropicPlasticityStressUpdate::computeStressFinalize
virtual void computeStressFinalize(const ADRankTwoTensor &plastic_strain_increment) override
Perform any necessary steps to finalize state after return mapping iterations.
Definition: ADIsotropicPlasticityStressUpdate.C:154
ADIsotropicPlasticityStressUpdate::_hardening_constant
const Real _hardening_constant
Definition: ADIsotropicPlasticityStressUpdate.h:78
ADIsotropicPlasticityStressUpdate::iterationFinalize
virtual void iterationFinalize(ADReal scalar) override
Finalize internal state variables for a model for a given iteration.
Definition: ADIsotropicPlasticityStressUpdate.C:146
ADIsotropicPlasticityStressUpdate::computeHardeningDerivative
virtual ADReal computeHardeningDerivative(const ADReal &scalar)
Definition: ADIsotropicPlasticityStressUpdate.C:198
ADIsotropicPlasticityStressUpdate::usingRadialReturnStressUpdateMembers
usingRadialReturnStressUpdateMembers
Definition: ADIsotropicPlasticityStressUpdate.h:94
ADRadialReturnStressUpdate
ADRadialReturnStressUpdate computes the radial return stress increment for an isotropic elastic-visco...
Definition: ADRadialReturnStressUpdate.h:26
ADIsotropicPlasticityStressUpdate::ADMaterialProperty
ADMaterialProperty(RankTwoTensor) &_plastic_strain
plastic strain in this model
ADIsotropicPlasticityStressUpdate::computeHardeningValue
virtual ADReal computeHardeningValue(const ADReal &scalar)
Definition: ADIsotropicPlasticityStressUpdate.C:162
declareADValidParams
declareADValidParams(ADIsotropicPlasticityStressUpdate)
ADRadialReturnStressUpdate.h
ADIsotropicPlasticityStressUpdate::_yield_stress
ADReal _yield_stress
Definition: ADIsotropicPlasticityStressUpdate.h:77
ADIsotropicPlasticityStressUpdate::_hardening_slope
ADReal _hardening_slope
Definition: ADIsotropicPlasticityStressUpdate.h:82
ADIsotropicPlasticityStressUpdate::_hardening_function
const Function * _hardening_function
Definition: ADIsotropicPlasticityStressUpdate.h:79
ADIsotropicPlasticityStressUpdate::computeStressInitialize
virtual void computeStressInitialize(const ADReal &effective_trial_stress, const ADRankFourTensor &elasticity_tensor) override
Perform any necessary initialization before return mapping iterations.
Definition: ADIsotropicPlasticityStressUpdate.C:101
ADIsotropicPlasticityStressUpdate::_temperature
const ADVariableValue & _temperature
Definition: ADIsotropicPlasticityStressUpdate.h:92
ADIsotropicPlasticityStressUpdate::computeResidual
virtual ADReal computeResidual(const ADReal &effective_trial_stress, const ADReal &scalar) override
Compute the residual for a predicted value of the scalar.
Definition: ADIsotropicPlasticityStressUpdate.C:113
ADIsotropicPlasticityStressUpdate::computeYieldStress
virtual void computeYieldStress(const ADRankFourTensor &elasticity_tensor)
Definition: ADIsotropicPlasticityStressUpdate.C:214
ADIsotropicPlasticityStressUpdate::_yield_stress_function
const Function * _yield_stress_function
Definition: ADIsotropicPlasticityStressUpdate.h:76
ADIsotropicPlasticityStressUpdate::_plastic_prepend
const std::string _plastic_prepend
a string to prepend to the plastic strain Material Property name
Definition: ADIsotropicPlasticityStressUpdate.h:74
ADIsotropicPlasticityStressUpdate::_yield_condition
ADReal _yield_condition
Definition: ADIsotropicPlasticityStressUpdate.h:81
RankTwoTensorTempl
Definition: ACGrGrElasticDrivingForce.h:17
ADIsotropicPlasticityStressUpdate::propagateQpStatefulProperties
virtual void propagateQpStatefulProperties() override
If updateState is not called during a timestep, this will be.
Definition: ADIsotropicPlasticityStressUpdate.C:91
ADIsotropicPlasticityStressUpdate
This class uses the Discrete material in a radial return isotropic plasticity model.
Definition: ADIsotropicPlasticityStressUpdate.h:27
ADIsotropicPlasticityStressUpdate::_plastic_strain_old
const MaterialProperty< RankTwoTensor > & _plastic_strain_old
old value of plastic strain
Definition: ADIsotropicPlasticityStressUpdate.h:88
ADIsotropicPlasticityStressUpdate::computeDerivative
virtual ADReal computeDerivative(const ADReal &effective_trial_stress, const ADReal &scalar) override
Compute the derivative of the residual as a function of the scalar variable.
Definition: ADIsotropicPlasticityStressUpdate.C:135