Go to the documentation of this file.
23 params.addClassDescription(
"This class uses the discrete material in a radial return isotropic "
24 "plasticity model. This class is one of the basic radial return "
25 "constitutive models, yet it can be used in conjunction with other "
26 "creep and plasticity materials for more complex simulations.");
28 params.addParam<FunctionName>(
"yield_stress_function",
29 "Yield stress as a function of temperature");
30 params.addParam<Real>(
31 "yield_stress", 0.0,
"The point at which plastic strain begins accumulating");
32 params.addParam<FunctionName>(
"hardening_function",
33 "True stress as a function of plastic strain");
34 params.addParam<Real>(
"hardening_constant", 0.0,
"Hardening slope");
35 params.addCoupledVar(
"temperature", 0.0,
"Coupled Temperature");
36 params.addDeprecatedParam<std::string>(
39 "String that is prepended to the plastic_strain Material Property",
40 "This has been replaced by the 'base_name' parameter");
41 params.set<std::string>(
"effective_inelastic_strain_name") =
"effective_plastic_strain";
48 _plastic_prepend(getParam<std::string>(
"plastic_prepend")),
49 _yield_stress_function(
50 isParamValid(
"yield_stress_function") ? &getFunction(
"yield_stress_function") : NULL),
51 _yield_stress(getParam<Real>(
"yield_stress")),
52 _hardening_constant(getParam<Real>(
"hardening_constant")),
53 _hardening_function(isParamValid(
"hardening_function") ? &getFunction(
"hardening_function")
55 _yield_condition(-1.0),
56 _hardening_slope(0.0),
58 declareProperty<
RankTwoTensor>(_base_name + _plastic_prepend +
"plastic_strain")),
60 getMaterialPropertyOld<
RankTwoTensor>(_base_name + _plastic_prepend +
"plastic_strain")),
61 _hardening_variable(declareProperty<Real>(_base_name +
"hardening_variable")),
62 _hardening_variable_old(getMaterialPropertyOld<Real>(_base_name +
"hardening_variable")),
63 _temperature(coupledValue(
"temperature"))
65 if (parameters.isParamSetByUser(
"yield_stress") &&
_yield_stress <= 0.0)
66 mooseError(
"Yield stress must be greater than zero");
69 mooseError(
"Either yield_stress or yield_stress_function must be given");
71 if (!parameters.isParamSetByUser(
"hardening_constant") && !isParamValid(
"hardening_function"))
72 mooseError(
"Either hardening_constant or hardening_function must be defined");
74 if (parameters.isParamSetByUser(
"hardening_constant") && isParamValid(
"hardening_function"))
76 "Only the hardening_constant or only the hardening_function can be defined but not both");
111 "the yield stress was not updated by computeStressInitialize");
187 "In ", _name,
": The calculated yield stress (",
_yield_stress,
") is less than zero");
virtual Real computeDerivative(const Real effective_trial_stress, const Real scalar) override
Compute the derivative of the residual as a function of the scalar variable.
virtual void initQpStatefulProperties() override
IsotropicPlasticityStressUpdate(const InputParameters ¶meters)
static InputParameters validParams()
const Function * _hardening_function
virtual void computeStressInitialize(const Real effective_trial_stress, const RankFourTensor &elasticity_tensor) override
Perform any necessary initialization before return mapping iterations.
virtual Real computeHardeningValue(Real scalar)
virtual void propagateQpStatefulProperties() override
If updateState is not called during a timestep, this will be.
registerMooseObject("TensorMechanicsApp", IsotropicPlasticityStressUpdate)
virtual Real computeResidual(const Real effective_trial_stress, const Real scalar) override
Compute the residual for a predicted value of the scalar.
RadialReturnStressUpdate computes the radial return stress increment for an isotropic elastic-viscopl...
const MaterialProperty< Real > & _hardening_variable_old
virtual void iterationFinalize(Real scalar) override
Finalize internal state variables for a model for a given iteration.
const MaterialProperty< Real > & _effective_inelastic_strain_old
const Function * _yield_stress_function
const Real _hardening_constant
Real _three_shear_modulus
3 * shear modulus
const MaterialProperty< RankTwoTensor > & _plastic_strain_old
old value of plastic strain
MaterialProperty< Real > & _hardening_variable
MaterialProperty< RankTwoTensor > & _plastic_strain
plastic strain in this model
static InputParameters validParams()
defineLegacyParams(IsotropicPlasticityStressUpdate)
void propagateQpStatefulPropertiesRadialReturn()
Propagate the properties pertaining to this intermediate class.
const VariableValue & _temperature
virtual Real computeHardeningDerivative(Real scalar)
This class uses the Discrete material in a radial return isotropic plasticity model.
virtual void computeYieldStress(const RankFourTensor &elasticity_tensor)
virtual void computeStressFinalize(const RankTwoTensor &plastic_strain_increment) override
Perform any necessary steps to finalize state after return mapping iterations.