- postprocessorPost-processor to use for convergence criteria
C++ Type:PostprocessorName
Unit:(no unit assumed)
Controllable:No
Description:Post-processor to use for convergence criteria
- toleranceAbsolute tolerance to use for convergence criteria
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Absolute tolerance to use for convergence criteria
PostprocessorConvergence
This Convergence derives from IterationCountConvergence and compares a Postprocessor value to a tolerance :
For this to work as expected, the execute_on parameter of the post-processor must include values that trigger execution before the desired check. For example, for assessing convergence of the nonlinear solve, the value NONLINEAR_CONVERGENCE should be used. For assessing convergence of a MultiApp fixed point solve, the appropriate execute_on depends on when the MultiApps are executed and on the post-processor type. For example, for Residual, TIMESTEP_BEGIN is appropriate for MultiApps executing on TIMESTEP_BEGIN, and MULTIAPP_FIXED_POINT_CONVERGENCE is appropriate for MultiApps executing on TIMESTEP_END. See SetupInterface for details on different execution points.
Typically the post-processor used should attempt to approximate the error in a system, such as AverageVariableChange.
The parameter "max_diverging_iterations" may be used to specify to diverge after the specified number of consecutive iterations for which the post-processor value is "diverging". By default, "diverging" means the value is getting larger:
but the parameter "diverging_iteration_rel_reduction" can be used to generalize this condition by specifying some minimum reduction value such that the "diverging" condition is the following:
This can be used to terminate iteration when convergence is proceeding too slowly. Note that this does not make sense to use in conjunction with a step convergence criteria, which seeks that a quantity, such as some variable, changes very little from iteration to iteration. Instead, this is intended for non-step convergence criteria such as checking whether the current iterate's residual norm is small enough.
Input Parameters
- converge_at_max_iterationsFalseConverge at 'max_iterations' instead of diverging
Default:False
C++ Type:bool
Controllable:No
Description:Converge at 'max_iterations' instead of diverging
- diverging_iteration_rel_reduction0The relative reduction with respect to the previous iteration, for which the iteration counts as a diverging iteration with respect to 'max_diverging_iterations': an iteration is diverging if (|pp_old| - |pp_new|)/|pp_old| < rel_reduction. The default value of 0 corresponds to checking that the iteration is actually converging, whereas values < 1 can be used to additionally check that the iteration is converging at an acceptable rate.
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The relative reduction with respect to the previous iteration, for which the iteration counts as a diverging iteration with respect to 'max_diverging_iterations': an iteration is diverging if (|pp_old| - |pp_new|)/|pp_old| < rel_reduction. The default value of 0 corresponds to checking that the iteration is actually converging, whereas values < 1 can be used to additionally check that the iteration is converging at an acceptable rate.
- max_diverging_iterations4294967295Number of consecutive iterations of the post-processor value either increasing or not reducing fast enough, at which to consider the solve diverged
Default:4294967295
C++ Type:unsigned int
Controllable:No
Description:Number of consecutive iterations of the post-processor value either increasing or not reducing fast enough, at which to consider the solve diverged
- max_iterations50Maximum number of iterations
Default:50
C++ Type:unsigned int
Controllable:No
Description:Maximum number of iterations
- min_iterations0Minimum number of iterations
Default:0
C++ Type:unsigned int
Controllable:No
Description:Minimum number of iterations
- verboseFalseEnable printing of additional information, including convergence and divergence reasons.
Default:False
C++ Type:bool
Controllable:No
Description:Enable printing of additional information, including convergence and divergence reasons.
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Controllable:No
Description:Determines whether this object is calculated using an implicit or explicit form