72 bool compute_full_tangent_operator =
false,
83 unsigned int total_number_substeps,
84 bool compute_full_tangent_operator =
false,
98 bool compute_full_tangent_operator =
false,
214 const unsigned int total_it)
override;
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
Moose::GenericType< RankFourTensor, is_ad > GenericRankFourTensor
Moose::GenericType< Real, is_ad > GenericReal
Moose::GenericType< RankTwoTensor, is_ad > GenericRankTwoTensor
RadialReturnStressUpdateTempl< true > ADRadialReturnStressUpdate
RadialReturnStressUpdateTempl< false > RadialReturnStressUpdate
const Elem *const & _current_elem
const MooseArray< Point > & _q_point
const InputParameters & parameters() const
RadialReturnStressUpdate computes the radial return stress increment for an isotropic elastic-viscopl...
const Real _substep_tolerance
Used to calculate the number of substeps taken in the radial return algorithm, when substepping is en...
const MaterialProperty< Real > & _effective_inelastic_strain_old
const GenericReal< is_ad > & effectiveInelasticStrainIncrement() const
Current value of scalar inelastic strain.
virtual void updateStateSubstepInternal(GenericRankTwoTensor< is_ad > &, GenericRankTwoTensor< is_ad > &, const GenericRankTwoTensor< is_ad > &, GenericRankTwoTensor< is_ad > &, const RankTwoTensor &, const GenericRankFourTensor< is_ad > &, const RankTwoTensor &, unsigned int total_number_substeps, bool compute_full_tangent_operator=false, RankFourTensor &tangent_operator=StressUpdateBaseTempl< is_ad >::_identityTensor)
void computeTangentOperator(Real effective_trial_stress, const RankTwoTensor &stress_new, RankFourTensor &tangent_operator)
Calculate the tangent_operator.
SubsteppingType _use_substepping
Whether user has requested the use of substepping technique to improve convergence [make const later]...
const bool _apply_strain
Debugging option to enable specifying instead of calculating strain.
const RankTwoTensor _identity_two
Rank two identity tensor.
const RankFourTensor _identity_symmetric_four
Rank four symmetric identity tensor.
virtual void updateStateSubstep(GenericRankTwoTensor< is_ad > &, GenericRankTwoTensor< is_ad > &, const GenericRankTwoTensor< is_ad > &, GenericRankTwoTensor< is_ad > &, const RankTwoTensor &, const GenericRankFourTensor< is_ad > &, const RankTwoTensor &, bool compute_full_tangent_operator=false, RankFourTensor &tangent_operator=StressUpdateBaseTempl< is_ad >::_identityTensor) override
Similar to the updateState function, this method updates the strain and stress for one substep.
bool requiresIsotropicTensor() override
Does the model require the elasticity tensor to be isotropic?
bool isIsotropic() override
Radial return mapped models should be isotropic by default!
const RankFourTensor _deviatoric_projection_four
Rank four deviatoric projection tensor.
void propagateQpStatefulPropertiesRadialReturn()
Propagate the properties pertaining to this intermediate class.
virtual Real computeReferenceResidual(const GenericReal< is_ad > &effective_trial_stress, const GenericReal< is_ad > &scalar_effective_inelastic_strain) override
Compute a reference quantity to be used for checking relative convergence.
virtual void computeStressInitialize(const GenericReal< is_ad > &effective_trial_stress, const GenericRankFourTensor< is_ad > &elasticity_tensor)
Perform any necessary initialization before return mapping iterations.
Real _max_inelastic_increment
Maximum allowable scalar inelastic strain increment, used to control the timestep size in conjunction...
static InputParameters validParams()
virtual void initQpStatefulProperties() override
virtual GenericReal< is_ad > maximumPermissibleValue(const GenericReal< is_ad > &effective_trial_stress) const override
Compute the maximum permissible value of the scalar.
const unsigned int _maximum_number_substeps
Maximum number of substeps. If the calculation results in a larger number, cut overall time step.
void updateEffectiveInelasticStrainIncrement(const GenericReal< is_ad > &eisi)
virtual int calculateNumberSubsteps(const GenericRankTwoTensor< is_ad > &strain_increment) override
If substepping is enabled, calculate the number of substeps as a function of the elastic strain incre...
GenericMaterialProperty< Real, is_ad > & _effective_inelastic_strain
GenericReal< is_ad > _three_shear_modulus
3 * shear modulus
GenericReal< is_ad > _effective_inelastic_strain_increment
Stores the scalar effective inelastic strain increment from Newton iteration.
void updateEffectiveInelasticStrain(const GenericReal< is_ad > &increment)
virtual void computeStressFinalize(const GenericRankTwoTensor< is_ad > &)
Perform any necessary steps to finalize state after return mapping iterations.
virtual Real computeTimeStepLimit() override
Compute the limiting value of the time step for this material.
virtual Real computeStressDerivative(const Real, const Real)
Calculate the derivative of the strain increment with respect to the updated stress.
virtual GenericReal< is_ad > minimumPermissibleValue(const GenericReal< is_ad > &) const override
Compute the minimum permissible value of the scalar.
Real _dt_original
original timestep (to be restored after substepping is completed)
const bool _adaptive_substepping
Use adaptive substepping, cutting substep sizes until convergence is achieved.
void outputIterationSummary(std::stringstream *iter_output, const unsigned int total_it) override
Output summary information for the convergence history of the model.
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.
virtual bool substeppingCapabilityRequested() override
Has the user requested usage of (possibly) implemented substepping capability for inelastic models.
Base class that provides capability for Newton return mapping iterations on a single variable.
StressUpdateBase is a material that is not called by MOOSE because of the compute=false flag set in t...