https://mooseframework.inl.gov
Loading...
Searching...
No Matches
RadialReturnCreepStressUpdateBase.C
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
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
12template <bool is_ad>
15{
17 params.set<std::string>("effective_inelastic_strain_name") = "effective_creep_strain";
18 return params;
19}
20
21template <bool is_ad>
23 const InputParameters & parameters)
24 : RadialReturnStressUpdateTempl<is_ad>(parameters),
25 _creep_strain(this->template declareGenericProperty<RankTwoTensor, is_ad>(this->_base_name +
26 "creep_strain")),
27 _creep_strain_old(
28 this->template getMaterialPropertyOld<RankTwoTensor>(this->_base_name + "creep_strain"))
29{
30}
31
32template <bool is_ad>
33void
40
41template <bool is_ad>
42void
44{
45 _creep_strain[_qp] = _creep_strain_old[_qp];
46
47 propagateQpStatefulPropertiesRadialReturn();
48}
49
50template <bool is_ad>
51Real
53 const Real /*effective_trial_stress*/, const Real /*scalar*/)
54{
55 mooseError("computeStressDerivative called: no stress derivative computation is needed for AD");
56}
57
58template <>
59Real
61 const Real effective_trial_stress, const Real scalar)
62{
63 return -(computeDerivative(effective_trial_stress, scalar) + 1.0) / this->_three_shear_modulus;
64}
65
66template <bool is_ad>
67void
69 const GenericRankTwoTensor<is_ad> & plastic_strain_increment)
70{
71 _creep_strain[_qp] = _creep_strain_old[_qp] + plastic_strain_increment;
72}
73
void mooseError(Args &&... args)
Moose::GenericType< RankTwoTensor, is_ad > GenericRankTwoTensor
T & set(const std::string &name, bool quiet_mode=false)
This class provides baseline functionallity for creep models based on the stress update material in a...
virtual void computeStressFinalize(const GenericRankTwoTensor< is_ad > &plastic_strain_increment) override
Perform any necessary steps to finalize state after return mapping iterations.
virtual void propagateQpStatefulProperties() override
If updateState is not called during a timestep, this will be.
RadialReturnCreepStressUpdateBaseTempl(const InputParameters &parameters)
virtual Real computeStressDerivative(const Real effective_trial_stress, const Real scalar) override
This method returns the derivative of the creep strain with respect to the von mises stress.
RadialReturnStressUpdate computes the radial return stress increment for an isotropic elastic-viscopl...
virtual void initQpStatefulProperties() override