200 std::stringstream * iter_output =
nullptr);
228 std::stringstream * iter_output);
241 const Real init_resid_sign,
244 std::stringstream * iter_output);
GeneralizedReturnMappingSolutionTempl< false > GeneralizedReturnMappingSolution
GeneralizedReturnMappingSolutionTempl< true > ADGeneralizedReturnMappingSolution
Moose::GenericType< DenseVector< Real >, is_ad > GenericDenseVector
Moose::GenericType< Real, is_ad > GenericReal
Base class that provides capability for Newton generalized (anisotropic) return mapping iterations on...
Real _relative_tolerance
Relative convergence tolerance.
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)=0
Compute a reference quantity to be used for checking relative convergence.
enum GeneralizedReturnMappingSolutionTempl::InternalSolveOutput _internal_solve_output_on
bool convergedAcceptable(const unsigned int it, const Real &reference)
Check to see whether the residual is within acceptable convergence limits.
void checkPermissibleRange(GenericReal< is_ad > &scalar, GenericReal< is_ad > &scalar_increment, const GenericReal< is_ad > &scalar_old, const GenericReal< is_ad > min_permissible_scalar, const GenericReal< is_ad > max_permissible_scalar, std::stringstream *iter_output)
Check to see whether solution is within admissible range, and set it within that range if it is not.
GenericReal< is_ad > _residual
std::vector< Real > _residual_history
History of residuals used to check whether progress is still being made on decreasing the residual.
bool _line_search
Whether to use line searches to improve convergence.
bool converged(const GenericReal< is_ad > &residual, const Real &reference)
Check to see whether the residual is within the convergence limits.
virtual GenericReal< is_ad > initialGuess(const GenericDenseVector< is_ad > &)
Compute an initial guess for the value of the scalar.
static InputParameters validParams()
GenericReal< is_ad > _initial_residual
Residual values, kept as members to retain solver state for summary outputting.
void returnMappingSolve(const GenericDenseVector< is_ad > &effective_trial_stress, const GenericDenseVector< is_ad > &stress_new, GenericReal< is_ad > &scalar, const ConsoleStream &console)
Perform the return mapping iterations.
bool _bracket_solution
Whether to save upper and lower bounds of root for scalar, and set solution to the midpoint between t...
virtual GenericReal< is_ad > computeDerivative(const GenericDenseVector< is_ad > &effective_trial_stress, const GenericDenseVector< is_ad > &stress_new, const GenericReal< is_ad > &scalar)=0
virtual GenericReal< is_ad > computeResidual(const GenericDenseVector< is_ad > &effective_trial_stress, const GenericDenseVector< is_ad > &stress_new, const GenericReal< is_ad > &delta_gamma)=0
Compute the residual for a predicted value of the scalar.
virtual GenericReal< is_ad > maximumPermissibleValue(const GenericDenseVector< is_ad > &effective_trial_stress) const
Compute the maximum permissible value of the scalar.
virtual ~GeneralizedReturnMappingSolutionTempl()
virtual void outputIterationSummary(std::stringstream *iter_output, const unsigned int total_it)
Output summary information for the convergence history of the model.
bool _check_range
Whether to check to see whether iterative solution is within admissible range, and set within that ra...
virtual GenericReal< is_ad > minimumPermissibleValue(const GenericDenseVector< is_ad > &effective_trial_stress) const
Compute the minimum permissible value of the scalar.
SolveState internalSolve(const GenericDenseVector< is_ad > &effective_trial_stress, const GenericDenseVector< is_ad > &stress_new, GenericReal< is_ad > &scalar, std::stringstream *iter_output=nullptr)
Method called from within this class to perform the actual return mappping iterations.
virtual void outputIterationStep(std::stringstream *iter_output, const GenericDenseVector< is_ad > &effective_trial_stress, const GenericReal< is_ad > &scalar, const GenericReal< is_ad > reference_residual)
Output information for a single iteration step to build the convergence history of the model.
const bool _internal_solve_full_iteration_history
Whether to output iteration information all the time (regardless of whether iterations converge)
const std::string _svrms_name
MOOSE input name of the object performing the solve.
const std::size_t _num_resids
Number of residuals to be stored in history.
Real _acceptable_multiplier
Multiplier applied to relative and absolute tolerances for acceptable convergence.
const unsigned int _max_its
Maximum number of return mapping iterations.
Real _absolute_tolerance
Absolute convergence tolerance.
unsigned int _iteration
iteration number
void updateBounds(const GenericReal< is_ad > &scalar, const GenericReal< is_ad > &residual, const Real init_resid_sign, GenericReal< is_ad > &scalar_upper_bound, GenericReal< is_ad > &scalar_lower_bound, std::stringstream *iter_output)
Update the upper and lower bounds of the root for the effective inelastic strain.
virtual void iterationFinalize(const GenericReal< is_ad > &)
Finalize internal state variables for a model for a given iteration.