www.mooseframework.org
HyperbolicViscoplasticityStressUpdate.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 
28 class HyperbolicViscoplasticityStressUpdate : public RadialReturnStressUpdate
29 {
30 public:
32 
33  HyperbolicViscoplasticityStressUpdate(const InputParameters & parameters);
34 
35 protected:
36  virtual void initQpStatefulProperties() override;
37  virtual void propagateQpStatefulProperties() override;
38 
39  virtual void computeStressInitialize(const Real & effective_trial_stress,
40  const RankFourTensor & elasticity_tensor) override;
41  virtual Real computeResidual(const Real & effective_trial_stress, const Real & scalar) override;
42  virtual Real computeDerivative(const Real & effective_trial_stress, const Real & scalar) override;
43  virtual void iterationFinalize(const Real & scalar) override;
44  virtual void computeStressFinalize(const RankTwoTensor & plasticStrainIncrement) override;
45  virtual Real computeHardeningValue(Real scalar);
46 
48  const std::string _plastic_prepend;
49 
51  const Real _yield_stress;
52  const Real _hardening_constant;
54 
56  const Real _c_alpha;
57  const Real _c_beta;
59 
61  Real _yield_condition;
62 
64  Real _xphir;
65  Real _xphidp;
67 
68  MaterialProperty<Real> & _hardening_variable;
69  const MaterialProperty<Real> & _hardening_variable_old;
70 
72  MaterialProperty<RankTwoTensor> & _plastic_strain;
73 
75  const MaterialProperty<RankTwoTensor> & _plastic_strain_old;
76 };
virtual GenericReal< is_ad > computeDerivative(const GenericReal< is_ad > &, const GenericReal< is_ad > &)=0
Compute the derivative of the residual as a function of the scalar variable.
virtual void computeStressFinalize(const GenericRankTwoTensor< is_ad > &)
Perform any necessary steps to finalize state after return mapping iterations.
static InputParameters validParams()
virtual void computeStressInitialize(const GenericReal< is_ad > &effective_trial_stress, const GenericRankFourTensor< is_ad > &elasticity_tensor)
Perform any necessary initialization before return mapping iterations.
virtual void propagateQpStatefulProperties()
If updateState is not called during a timestep, this will be.
RadialReturnStressUpdate computes the radial return stress increment for an isotropic elastic-viscopl...
virtual void initQpStatefulProperties() override
virtual GenericReal< is_ad > computeResidual(const GenericReal< is_ad > &, const GenericReal< is_ad > &)=0
Compute the residual for a predicted value of the scalar.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void iterationFinalize(const GenericReal< is_ad > &)
Finalize internal state variables for a model for a given iteration.