LCOV - code coverage report
Current view: top level - include/materials - CombinedNonlinearHardeningPlasticity.h (source / functions) Hit Total Coverage
Test: idaholab/moose solid_mechanics: f45d79 Lines: 0 1 0.0 %
Date: 2025-07-25 05:00:39 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include "MaterialProperty.h"
       4             : #include "RadialReturnBackstressStressUpdateBase.h"
       5             : 
       6             : template <bool is_ad>
       7             : class CombinedNonlinearHardeningPlasticityTempl
       8             :   : public RadialReturnBackstressStressUpdateBaseTempl<is_ad>
       9             : {
      10             : public:
      11             :   static InputParameters validParams();
      12             : 
      13             :   CombinedNonlinearHardeningPlasticityTempl(const InputParameters & parameters);
      14             : 
      15             :   using Material::_qp;
      16             :   using RadialReturnBackstressStressUpdateBaseTempl<is_ad>::_base_name;
      17             :   using RadialReturnBackstressStressUpdateBaseTempl<is_ad>::_three_shear_modulus;
      18             : 
      19             :   virtual void
      20             :   computeStressInitialize(const GenericReal<is_ad> & effective_trial_stress,
      21             :                           const GenericRankFourTensor<is_ad> & elasticity_tensor) override;
      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             : 
      27             :   virtual void computeYieldStress(const GenericRankFourTensor<is_ad> & elasticity_tensor);
      28             : 
      29           0 :   GenericReal<is_ad> yieldCondition() const { return _yield_condition; }
      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             : 
      40             :   virtual GenericReal<is_ad> computeIsotropicHardeningValue(const GenericReal<is_ad> & scalar);
      41             :   virtual GenericReal<is_ad> computeIsotropicHardeningDerivative(const GenericReal<is_ad> & scalar);
      42             :   virtual GenericReal<is_ad> computeKinematicHardeningValue(const GenericReal<is_ad> & scalar);
      43             : 
      44             :   const Function * _yield_stress_function;
      45             :   GenericReal<is_ad> _yield_stress;
      46             :   const Real _isotropic_hardening_constant;
      47             :   const Function * const _isotropic_hardening_function;
      48             : 
      49             :   GenericReal<is_ad> _yield_condition;
      50             :   GenericReal<is_ad> _isotropic_hardening_slope;
      51             :   GenericReal<is_ad> _kinematic_hardening_slope;
      52             :   GenericRankTwoTensor<is_ad> stress_new;
      53             :   GenericRankTwoTensor<is_ad> elastic_strain_old;
      54             :   GenericRankTwoTensor<is_ad> strain_increment;
      55             : 
      56             :   /// plastic strain
      57             :   GenericMaterialProperty<RankTwoTensor, is_ad> & _plastic_strain;
      58             : 
      59             :   /// old value of plastic strain
      60             :   const MaterialProperty<RankTwoTensor> & _plastic_strain_old;
      61             : 
      62             :   ///@{  Coefficients for combined isotropic and kinematic hardening
      63             :   const Real _kinematic_hardening_modulus;
      64             :   const Real _gamma;
      65             :   const Real _q;
      66             :   const Real _b;
      67             :   ///@}
      68             : 
      69             :   GenericMaterialProperty<Real, is_ad> & _isotropic_hardening_variable;
      70             :   const MaterialProperty<Real> & _isotropic_hardening_variable_old;
      71             :   GenericMaterialProperty<Real, is_ad> & _kinematic_hardening_variable;
      72             :   const MaterialProperty<Real> & _kinematic_hardening_variable_old;
      73             :   const GenericVariableValue<is_ad> & _temperature;
      74             : };
      75             : 
      76             : typedef CombinedNonlinearHardeningPlasticityTempl<false> CombinedNonlinearHardeningPlasticity;
      77             : typedef CombinedNonlinearHardeningPlasticityTempl<true> ADCombinedNonlinearHardeningPlasticity;

Generated by: LCOV version 1.14