https://mooseframework.inl.gov
Loading...
Searching...
No Matches
HyperbolicViscoplasticityStressUpdate.h
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
10#pragma once
11
13
28class HyperbolicViscoplasticityStressUpdate : public RadialReturnStressUpdate
29{
30public:
32
33 HyperbolicViscoplasticityStressUpdate(const InputParameters & parameters);
34
35protected:
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};
RadialReturnStressUpdate computes the radial return stress increment for an isotropic elastic-viscopl...
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 initQpStatefulProperties() override
virtual void computeStressFinalize(const GenericRankTwoTensor< is_ad > &)
Perform any necessary steps to finalize state after return mapping iterations.
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 iterationFinalize(const GenericReal< is_ad > &)
Finalize internal state variables for a model for a given iteration.
virtual GenericReal< is_ad > computeResidual(const GenericReal< is_ad > &, const GenericReal< is_ad > &)=0
Compute the residual for a predicted value of the scalar.
virtual void propagateQpStatefulProperties()
If updateState is not called during a timestep, this will be.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real