Iterative
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.
The iterative solver iterates until a relative tolerance is fulfilled. You specify this tolerance in the Relative error field of the operation node to which this attribute belongs.
Also see The Iterative Solvers, Iterative Solver Types, and Selecting a Preconditioner for an Iterative Linear System Solver for more details about the settings under General.
General
This section contains settings for choosing an iterative linear system solver and for specifying the type of preconditioning and some settings for the error norm and error estimation.
Iterative Linear System Solver Settings
Use the Solver list to select an iterative linear system solver. Select:
GMRES to use the restarted GMRES (Generalized Minimum RESidual) iterative method.
FGMRES to use the restarted FGMRES (Flexible Generalized Minimum RESidual) iterative method.
BiCGStab to use the BiCGStab (BiConjugate Gradient Stabilized) iterative method.
Conjugate gradients to use the Conjugate gradients iterative method.
Use preconditioner to use the active preconditioner attached to this Iterative node as the linear system solver. This solver uses the settings for Factor in error estimate and Maximum number of iterations from the Error section of the corresponding Iterative node.
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.
Settings for Error Norms and Error Estimation
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·1014.
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·1014. The Validate error estimate setting is propagated recursively and applies to all children with left preconditioning.
For an example using a Stationary Solver, see Micromixer: Application Library path COMSOL_Multiphysics/Fluid_Dynamics/micromixer.