https://mooseframework.inl.gov
Loading...
Searching...
No Matches
RadialReturnBackstressStressUpdateBase.C
Go to the documentation of this file.
3
4template <bool is_ad>
11
12template <bool is_ad>
14 const InputParameters & parameters)
15 : RadialReturnStressUpdateTempl<is_ad>(parameters),
16 _backstress(this->template declareGenericProperty<RankTwoTensor, is_ad>(this->_base_name +
17 "backstress")),
18 _backstress_old(
19 this->template getMaterialPropertyOld<RankTwoTensor>(this->_base_name + "backstress"))
20{
21}
22
23template <bool is_ad>
24void
30
31template <bool is_ad>
32void
34{
35 _backstress[_qp] = _backstress_old[_qp];
36 propagateQpStatefulPropertiesRadialReturn();
37}
38
39template <bool is_ad>
40void
42 GenericRankTwoTensor<is_ad> & strain_increment,
43 GenericRankTwoTensor<is_ad> & inelastic_strain_increment,
44 const GenericRankTwoTensor<is_ad> & rotation_increment,
45 GenericRankTwoTensor<is_ad> & stress_new,
46 const RankTwoTensor & stress_old,
47 const GenericRankFourTensor<is_ad> & elasticity_tensor,
48 const RankTwoTensor & elastic_strain_old,
49 bool compute_full_tangent_operator,
50 RankFourTensor & tangent_operator)
51{
52 GenericRankTwoTensor<is_ad> stress_corrected = stress_new - _backstress_old[_qp];
53
55 inelastic_strain_increment,
56 rotation_increment,
57 stress_corrected,
58 stress_old,
60 elastic_strain_old,
61 compute_full_tangent_operator,
62 tangent_operator);
63 stress_new = stress_corrected;
64}
65
Moose::GenericType< RankFourTensor, is_ad > GenericRankFourTensor
Moose::GenericType< RankTwoTensor, is_ad > GenericRankTwoTensor
RadialReturnBackstressStressUpdateBaseTempl(const InputParameters &parameters)
virtual void propagateQpStatefulProperties() override
If updateState is not called during a timestep, this will be.
virtual void updateState(GenericRankTwoTensor< is_ad > &strain_increment, GenericRankTwoTensor< is_ad > &inelastic_strain_increment, const GenericRankTwoTensor< is_ad > &, GenericRankTwoTensor< is_ad > &stress_new, const RankTwoTensor &, const GenericRankFourTensor< is_ad > &elasticity_tensor, const RankTwoTensor &elastic_strain_old, bool compute_full_tangent_operator, RankFourTensor &tangent_operator) override
A radial return (J2) mapping method is performed with return mapping iterations.
RadialReturnStressUpdate computes the radial return stress increment for an isotropic elastic-viscopl...
virtual void initQpStatefulProperties() override
virtual void updateState(GenericRankTwoTensor< is_ad > &strain_increment, GenericRankTwoTensor< is_ad > &inelastic_strain_increment, const GenericRankTwoTensor< is_ad > &rotation_increment, GenericRankTwoTensor< is_ad > &stress_new, const RankTwoTensor &stress_old, const GenericRankFourTensor< is_ad > &elasticity_tensor, const RankTwoTensor &elastic_strain_old, bool compute_full_tangent_operator=false, RankFourTensor &tangent_operator=StressUpdateBaseTempl< is_ad >::_identityTensor) override
A radial return (J2) mapping method is performed with return mapping iterations.
Real elasticity_tensor(unsigned int i, unsigned int j, unsigned int k, unsigned int l)