www.mooseframework.org
RadialReturnCreepStressUpdateBase.C
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 
11 
12 template <bool is_ad>
15 {
17  params.set<std::string>("effective_inelastic_strain_name") = "effective_creep_strain";
18  return params;
19 }
20 
21 template <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 
32 template <bool is_ad>
33 void
35 {
36  _creep_strain[_qp].zero();
37 
39 }
40 
41 template <bool is_ad>
42 void
44 {
45  _creep_strain[_qp] = _creep_strain_old[_qp];
46 
47  propagateQpStatefulPropertiesRadialReturn();
48 }
49 
50 template <bool is_ad>
51 Real
53  const Real /*effective_trial_stress*/, const Real /*scalar*/)
54 {
55  mooseError("computeStressDerivative called: no stress derivative computation is needed for AD");
56 }
57 
58 template <>
59 Real
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 
66 template <bool is_ad>
67 void
69  const GenericRankTwoTensor<is_ad> & plastic_strain_increment)
70 {
71  _creep_strain[_qp] = _creep_strain_old[_qp] + plastic_strain_increment;
72 }
73 
RadialReturnCreepStressUpdateBaseTempl(const InputParameters &parameters)
static InputParameters validParams()
void mooseError(Args &&... args)
T & set(const std::string &name, bool quiet_mode=false)
RadialReturnStressUpdate computes the radial return stress increment for an isotropic elastic-viscopl...
virtual void initQpStatefulProperties() override
virtual void propagateQpStatefulProperties() override
If updateState is not called during a timestep, this will be.
This class provides baseline functionallity for creep models based on the stress update material in a...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
typename Moose::GenericType< RankTwoTensor, is_ad > GenericRankTwoTensor
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...
virtual void computeStressFinalize(const GenericRankTwoTensor< is_ad > &plastic_strain_increment) override
Perform any necessary steps to finalize state after return mapping iterations.