https://mooseframework.inl.gov
CombinedNonlinearHardeningPlasticity.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "MaterialProperty.h"
5 
6 template <bool is_ad>
9 {
10 public:
12 
14 
15  using Material::_qp;
18 
19  virtual void
20  computeStressInitialize(const GenericReal<is_ad> & effective_trial_stress,
22  virtual GenericReal<is_ad> computeResidual(const GenericReal<is_ad> & effective_trial_stress,
23  const GenericReal<is_ad> & scalar) override;
24  virtual GenericReal<is_ad> computeDerivative(const GenericReal<is_ad> & effective_trial_stress,
25  const GenericReal<is_ad> & scalar) override;
26 
28 
30 
31  virtual void
32  computeStressFinalize(const GenericRankTwoTensor<is_ad> & plastic_strain_increment) override;
33 
34 protected:
35  virtual void initQpStatefulProperties() override;
36  virtual void propagateQpStatefulProperties() override;
37 
38  virtual void iterationFinalize(const GenericReal<is_ad> & scalar) override;
39 
43 
48 
55 
58 
61 
64  const Real _gamma;
65  const Real _q;
66  const Real _b;
68 
74 };
75 
CombinedNonlinearHardeningPlasticityTempl< true > ADCombinedNonlinearHardeningPlasticity
virtual GenericReal< is_ad > computeResidual(const GenericReal< is_ad > &effective_trial_stress, const GenericReal< is_ad > &scalar) override
Compute the residual for a predicted value of the scalar.
Moose::GenericType< Real, is_ad > GenericReal
const Real _kinematic_hardening_modulus
Coefficients for combined isotropic and kinematic hardening.
virtual GenericReal< is_ad > computeIsotropicHardeningValue(const GenericReal< is_ad > &scalar)
CombinedNonlinearHardeningPlasticityTempl(const InputParameters &parameters)
const MaterialProperty< Real > & _kinematic_hardening_variable_old
virtual GenericReal< is_ad > computeKinematicHardeningValue(const GenericReal< is_ad > &scalar)
virtual void computeStressFinalize(const GenericRankTwoTensor< is_ad > &plastic_strain_increment) override
Perform any necessary steps to finalize state after return mapping iterations.
virtual void computeStressInitialize(const GenericReal< is_ad > &effective_trial_stress, const GenericRankFourTensor< is_ad > &elasticity_tensor) override
Perform any necessary initialization before return mapping iterations.
Moose::GenericType< RankFourTensor, is_ad > GenericRankFourTensor
Real elasticity_tensor(unsigned int i, unsigned int j, unsigned int k, unsigned int l)
unsigned int _qp
Moose::GenericType< VariableValue, is_ad > GenericVariableValue
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
const MaterialProperty< Real > & _isotropic_hardening_variable_old
GenericMaterialProperty< Real, is_ad > & _isotropic_hardening_variable
virtual void propagateQpStatefulProperties() override
If updateState is not called during a timestep, this will be.
virtual GenericReal< is_ad > computeDerivative(const GenericReal< is_ad > &effective_trial_stress, const GenericReal< is_ad > &scalar) override
Compute the derivative of the residual as a function of the scalar variable.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const InputParameters & parameters() const
virtual void iterationFinalize(const GenericReal< is_ad > &scalar) override
Finalize internal state variables for a model for a given iteration.
GenericMaterialProperty< RankTwoTensor, is_ad > & _plastic_strain
plastic strain
CombinedNonlinearHardeningPlasticityTempl< false > CombinedNonlinearHardeningPlasticity
GenericMaterialProperty< Real, is_ad > & _kinematic_hardening_variable
virtual void computeYieldStress(const GenericRankFourTensor< is_ad > &elasticity_tensor)
virtual GenericReal< is_ad > computeIsotropicHardeningDerivative(const GenericReal< is_ad > &scalar)
Moose::GenericType< RankTwoTensor, is_ad > GenericRankTwoTensor
const MaterialProperty< RankTwoTensor > & _plastic_strain_old
old value of plastic strain