The Iterative node (
) is an attribute that handles settings for iterative linear system solvers. You can use it with an
Eigenvalue Solver,
Stationary Solver, or
Time-Dependent Solver, for example.
An alternative to the iterative linear system solvers is given by direct linear system solvers, which are handled via the Direct attribute node. Although several attribute subnodes for solving linear systems can be attached to an operation node, only one can be active at any given time.
Use the Solver list to select an iterative linear system solver. Select:
If GMRES or
FGMRES is selected, specify the
Number of iterations before restart that the solver performs until it restarts (the default is
50). There is no guarantee that a restarted GMRES converges for a small restart value. A larger restart value increases the robustness of the interactive procedure, but it also increases memory use and computational time. For large problems, the computational cost to produce a preconditioner of such quality that the termination criteria are fulfilled for a small number of iterations and for a small restart value is often large. For those problems, it is often advantageous to set up a preconditioner with a somewhat lesser quality and instead increase the restart value or iterate more steps. Doing so typically increases the condition number for the preconditioned system, so an increase in the error-estimate factor might be needed as well.
If GMRES is selected, specify whether you are
Preconditioning the linear system matrix from the
Left or
Right. Normally, this setting does not significantly influence the convergence behavior of the selected solver. The default choice is left preconditioning. Normally, the two versions of GMRES have similar convergence behavior (see
Ref. 11). If the preconditioner is ill-conditioned, there could, however, be differences in the behavior. For the conjugate gradient method, this choice only affects the convergence criterion and not the algorithm itself.
If you use left preconditioning, select the Nonlinear-based error norm check box to allow termination of the linear iterative methods using a criterion other than the standard ones (that is, norm checks of the relative preconditioned residual or the relative residual). The nonlinear-based error norm is foremost used for time-dependent studies (enabled per default), where the (initial) residual can be very small for certain time steps and the requirements become too strict. The nonlinear-based error norm normalizes the preconditioned residual with the scales from the solution instead of the initial residual. This method is more reliable when the scales for (size of) the solution have saturated. This is the reason for having a level, which you can specify as a relative error norm value in the
Use below error level field (default: 0.1 for stationary solvers and 1 for time-dependent solvers). For Stationary studies it is not common that the initial residual is small, so this functionality is not enabled per default.
The stopping criteria for the iterative solvers are based on an error estimate, which checks if the relative residual times a stability constant ρ is less than a tolerance. This tolerance is specified in the
Relative error field of the operation node to which this attribute belongs. Use the
Factor in error estimate field to set
ρ, which serves as a safety factor to avoid premature termination of the iterations due to, for example, ill-conditioning of the matrix
A or poor preconditioning (default: 400). A larger value of
ρ increases the number of iterations but decreases the chance that the iteration is terminated too early. To avoid false termination, the main solver continues iterating until the error check passes or until the step size is smaller than about 2.2·10
−14.
Use the Maximum number of iterations field to enter a maximum number of iterations that the iterative solver is allowed to take (default: 10,000 iterations). When this number of iterations has been performed without reaching the specified tolerance, the solver stops with an error message.
By choosing the appropriate option from the Validate error estimate list, the error estimate for left preconditioned solvers can be validated.
No implies no error estimate validation, whereas
Automatic or
Yes does. By default the validation is enabled with the
Automatic option, meaning that it is performed, but preconditioner warnings are only issued if the iterative solver fails with an error. To avoid false termination, the main solver continues iterating until the error check passes or until the step size is smaller than about 2.2·10
−14. The
Validate error estimate setting is propagated recursively and applies to all children with left preconditioning.