Go to the documentation of this file.
12 #include "InputParameters.h"
13 #include "ConsoleStream.h"
41 const ConsoleStream & console);
72 virtual Real
computeResidual(
const Real effective_trial_stress,
const Real scalar) = 0;
80 virtual Real
computeDerivative(
const Real effective_trial_stress,
const Real scalar) = 0;
106 const unsigned int it,
107 const Real effective_trial_stress,
110 const Real reference_residual);
186 std::stringstream * iter_output =
nullptr);
194 bool converged(
const Real residual,
const Real reference);
205 bool convergedAcceptable(
const unsigned int it,
const Real residual,
const Real reference);
218 Real & scalar_increment,
219 const Real scalar_old,
220 const Real min_permissible_scalar,
221 const Real max_permissible_scalar,
222 std::stringstream * iter_output);
235 const Real init_resid_sign,
236 Real & scalar_upper_bound,
237 Real & scalar_lower_bound,
238 std::stringstream * iter_output);
virtual Real maximumPermissibleValue(const Real effective_trial_stress) const
Compute the maximum permissible value of the scalar.
bool _check_range
Whether to check to see whether iterative solution is within admissible range, and set within that ra...
Real _initial_residual
Residual values, kept as members to retain solver state for summary outputting.
bool _bracket_solution
Whether to save upper and lower bounds of root for scalar, and set solution to the midpoint between t...
static InputParameters validParams()
Real _acceptable_multiplier
Multiplier applied to relative and absolute tolerances for acceptable convergence.
virtual Real minimumPermissibleValue(const Real effective_trial_stress) const
Compute the minimum permissible value of the scalar.
virtual void outputIterationSummary(std::stringstream *iter_output, const unsigned int total_it)
Output summary information for the convergence history of the model.
unsigned int _iteration
iteration number
const unsigned int _max_its
Maximum number of return mapping iterations.
void updateBounds(const Real scalar, const Real residual, const Real init_resid_sign, Real &scalar_upper_bound, Real &scalar_lower_bound, std::stringstream *iter_output)
Update the upper and lower bounds of the root for the effective inelastic strain.
bool converged(const Real residual, const Real reference)
Check to see whether the residual is within the convergence limits.
virtual Real initialGuess(const Real)
Compute an initial guess for the value of the scalar.
virtual ~SingleVariableReturnMappingSolution()
SolveState internalSolve(const Real effective_trial_stress, Real &scalar, std::stringstream *iter_output=nullptr)
Method called from within this class to perform the actual return mappping iterations.
virtual void iterationFinalize(Real)
Finalize internal state variables for a model for a given iteration.
enum SingleVariableReturnMappingSolution::InternalSolveOutput _internal_solve_output_on
virtual void outputIterationStep(std::stringstream *iter_output, const unsigned int it, const Real effective_trial_stress, const Real scalar, const Real residual, const Real reference_residual)
Output information for a single iteration step to build the convergence history of the model.
virtual Real computeDerivative(const Real effective_trial_stress, const Real scalar)=0
Compute the derivative of the residual as a function of the scalar variable.
bool _line_search
Whether to use line searches to improve convergence.
void checkPermissibleRange(Real &scalar, Real &scalar_increment, const Real scalar_old, const Real min_permissible_scalar, const Real 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.
void returnMappingSolve(const Real effective_trial_stress, Real &scalar, const ConsoleStream &console)
Perform the return mapping iterations.
const std::string _svrms_name
MOOSE input name of the object performing the solve.
virtual Real computeResidual(const Real effective_trial_stress, const Real scalar)=0
Compute the residual for a predicted value of the scalar.
const bool _internal_solve_full_iteration_history
Whether to output iteration information all the time (regardless of whether iterations converge)
InputParameters validParams< SingleVariableReturnMappingSolution >()
std::vector< Real > _residual_history
History of residuals used to check whether progress is still being made on decreasing the residual.
Base class that provides capability for Newton return mapping iterations on a single variable.
bool convergedAcceptable(const unsigned int it, const Real residual, const Real reference)
Check to see whether the residual is within acceptable convergence limits.
const std::size_t _num_resids
Number of residuals to be stored in history.
virtual Real computeReferenceResidual(const Real effective_trial_stress, const Real scalar)=0
Compute a reference quantity to be used for checking relative convergence.
Real _relative_tolerance
Relative convergence tolerance.
Real _absolute_tolerance
Absolute convergence tolerance.
SingleVariableReturnMappingSolution(const InputParameters ¶meters)