16#include "libmesh/ignore_warnings.h"
18#include "Eigen/Eigenvalues"
19#include "libmesh/restore_warnings.h"
196 const unsigned int total_it)
override;
DualNumber< Real, DNDerivativeType, true > ADReal
const std::vector< double > x
GeneralizedRadialReturnStressUpdateTempl< true > ADGeneralizedRadialReturnStressUpdate
Eigen::Matrix< Real, 6, 6 > AnisotropyMatrixReal
Eigen::Matrix< Real, 3, 3 > AnisotropyMatrixRealBlock
GeneralizedRadialReturnStressUpdateTempl< false > GeneralizedRadialReturnStressUpdate
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
Moose::GenericType< RankFourTensor, is_ad > GenericRankFourTensor
Moose::GenericType< DenseVector< Real >, is_ad > GenericDenseVector
Moose::GenericType< Real, is_ad > GenericReal
Moose::GenericType< RankTwoTensor, is_ad > GenericRankTwoTensor
TangentCalculationMethod
TangentCalculationMethod is an enum that determines the calculation method for the tangent operator.
void ErrorVector unsigned int
ADGeneralizedRadialReturnStressUpdate computes the generalized radial return stress increment for ani...
void outputIterationSummary(std::stringstream *iter_output, const unsigned int total_it) override
Output summary information for the convergence history of the model.
const bool _use_transformation
Whether to use fully transformed Hill's tensor due to rigid body or large deformation kinematic rotat...
GenericReal< is_ad > _three_shear_modulus
3 * shear modulus
virtual TangentCalculationMethod getTangentCalculationMethod() override
virtual Real computeReferenceResidual(const GenericDenseVector< is_ad > &effective_trial_stress, const GenericDenseVector< is_ad > &stress_new, const GenericReal< is_ad > &residual, const GenericReal< is_ad > &scalar_effective_inelastic_strain) override
Compute a reference quantity to be used for checking relative convergence.
virtual GenericReal< is_ad > minimumPermissibleValue(const GenericDenseVector< is_ad > &) const override
Compute the minimum permissible value of the scalar.
virtual GenericReal< is_ad > computeStressDerivative(const Real, const Real)
Calculate the derivative of the strain increment with respect to the updated stress.
bool isBlockDiagonal(const AnisotropyMatrixReal &A)
Check if an anisotropic matrix is block diagonal.
void propagateQpStatefulPropertiesRadialReturn()
Propagate the properties pertaining to this intermediate class.
Real _max_inelastic_increment
Maximum inelastic strain increment for (next) time step prescription.
virtual void computeStressFinalize(const GenericRankTwoTensor< is_ad > &inelasticStrainIncrement, const GenericReal< is_ad > &delta_gamma, GenericRankTwoTensor< is_ad > &stress, const GenericDenseVector< is_ad > &, const GenericRankTwoTensor< is_ad > &stress_old, const GenericRankFourTensor< is_ad > &elasticity_tensor)=0
Perform any necessary steps to finalize state after return mapping iterations.
virtual void initQpStatefulProperties() override
virtual Real computeIntegrationErrorTimeStep()
Compute the limiting value of the time step for this material according to the numerical integration ...
static InputParameters validParams()
virtual void computeStressInitialize(const GenericDenseVector< is_ad > &, const GenericDenseVector< is_ad > &, const GenericRankFourTensor< is_ad > &)=0
Perform any necessary initialization before return mapping iterations.
MaterialProperty< Real > & _inelastic_strain_rate
Equivalent creep/plastic strain rate: facilitates user's control of integration errors.
const MaterialProperty< Real > & _inelastic_strain_rate_old
Real _max_integration_error
Maximum integration error for creep.
const MaterialProperty< Real > & _effective_inelastic_strain_old
GenericMaterialProperty< Real, is_ad > & _effective_inelastic_strain
Equivalent creep/plastic strain.
void computeTangentOperator(Real, RankTwoTensor &, bool, RankFourTensor &)
Calculate the tangent_operator.
virtual Real computeTimeStepLimit() override
Compute the limiting value of the time step for this material.
virtual GenericReal< is_ad > maximumPermissibleValue(const GenericDenseVector< is_ad > &effective_trial_stress) const override
Compute the maximum permissible value of the scalar.
bool requiresIsotropicTensor() override
Does the model require the elasticity tensor to be isotropic?
Real _max_integration_error_time_step
Maximum integration error time step.
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, RankFourTensor &) override
A radial return (J2) mapping method is performed with return mapping iterations.
virtual void computeStrainFinalize(GenericRankTwoTensor< is_ad > &inelasticStrainIncrement, const GenericRankTwoTensor< is_ad > &stress, const GenericDenseVector< is_ad > &stress_dev, const GenericReal< is_ad > &delta_gamma)=0
Perform any necessary steps to finalize strain increment after return mapping iterations.
Base class that provides capability for Newton generalized (anisotropic) return mapping iterations on...
const Elem *const & _current_elem
const MooseArray< Point > & _q_point
const InputParameters & parameters() const
StressUpdateBase is a material that is not called by MOOSE because of the compute=false flag set in t...
Real elasticity_tensor(unsigned int i, unsigned int j, unsigned int k, unsigned int l)