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

  • 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

Required 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

Advanced Parameters

Input Files