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.
TFQMR to use the TFQMR (transpose-free quasi-minimal residual) 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 any other linear system solver than FGMRES 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, for GMRES, the two versions of GMRES have similar convergence behavior (see Ref. 12). 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, a residual tolerance is available in the Residual tolerance field (default: 0.01). You can use this setting to obtain extra accuracy. If you for some reason do not want that extra accuracy, set the relative tolerance to one (1).
Settings for Error Norms and Error Estimation
If you use 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. Also, if GMRES is selected and left preconditioning is used, the Use nonlinear scales check box is available and selected so that the termination of the iterative solver use nonlinear scales. This setting corresponds to the termination behavior in earlier versions.
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: 1). 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.
Error
The error handling mechanism in the linear iterative solvers is intended to contribute to a general robustness of the computation. For example:
Use the Factor in error estimate field to manually set the stability constant ρ. The default is 1.
You can control the accuracy of the solution of the linear system from the Check error estimate list:
The default is Automatic, meaning that the main solver is responsible for error management. The solver checks for errors for every linear system that is solved. 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. With this setting, linear solver errors are either added to the error description if the nonlinear solver does not converge, or added as a warning if the errors persist for the converged solution. The nonlinear solver continues when it reaches the maximum number of iterations. Use the Maximum number of intermediate iterations field to control the efforts spent in each linear solver call (default: 100 iterations).
Choose Yes to check for errors for every linear system that is solved. If an error occurs in the main solver, warnings originating from the error checking in the direct solver appear. The error check asserts that the relative error times a stability constant ρ is sufficiently small. This setting is useful for debugging problems with singular or near singular formulations.
Choose No for no error checking.
For an example using a Stationary Solver, see Micromixer: Application Library path COMSOL_Multiphysics/Fluid_Dynamics/micromixer.