Iterative Linear Equation Solver

The iterative linear equation solver in Abaqus/Standard:

  • can be used for linear and nonlinear static, quasi-static, heat transfer, geostatic, and coupled pore fluid diffusion and stress analysis solution procedures;

  • should be used only for large, well-conditioned models for which the direct sparse solver (see Direct Linear Equation Solver) requires a prohibitively large number of floating point operations;

  • is likely to be dramatically faster than the direct equation solver for large, well-conditioned, blocky structures;

  • runs totally in-core and uses less storage than the direct sparse solver (memory and disk combined);

  • can be used only with three-dimensional models;

  • must be the only solver invoked in the analysis (that is, you cannot use the iterative solver in one step and the direct solver in another);

  • cannot be used with automatic stabilization with an adaptive damping factor (see Adaptive Automatic Stabilization Scheme); and

  • can be used with a constant damping factor if stabilization is necessary (see Automatic Stabilization of Static Problems with a Constant Damping Factor).

This page discusses:

Iterative Solver Basics

The iterative solver in Abaqus/Standard can be used to find the solution to a linear system of equations and can be invoked in a linear or nonlinear static, quasi-static, geostatic, pore fluid diffusion, or heat transfer analysis step. Since the technique is iterative, a converged solution to a given system of linear equations cannot be guaranteed. In cases where the iterative solver fails to converge to a solution, modifications to the model might be necessary to improve the convergence behavior. In some cases the only choice might be to use the direct solver to obtain a solution. When the iterative solver converges, the accuracy of this solution depends on the relative tolerance that is used; the default tolerance is sufficiently accurate for most purposes. However, tolerance adjustments for particular analyses might improve the overall performance of the simulation. In addition, the performance of the iterative solver relative to the direct sparse solver is highly sensitive to the model geometry, favoring blocky type structures (that is, models that look more like a cube than a plate) with a high degree of mesh connectivity and a relatively low degree of sparsity. These types of models often demand the most computational and storage resources for the direct sparse solver. Models with a lesser degree of connectivity (often said to have a higher degree of sparsity), such as thin, shell-like structures, are much more suited to the direct sparse solver (see Direct Linear Equation Solver).

Iterative Solution Technique

The iterative solution technique in Abaqus/Standard is based on Krylov methods employing a preconditioner. This solver uses the following general strategy:

  1. The Krylov method solver iterates on the system of equations generated by the finite element method while a preconditioner is applied at each iteration.

  2. The preconditioner is calculated only once at the beginning of each linear system solve and is used to accelerate the convergence of the Krylov method.

  3. In parallel, all components of the iterative solution process (including matrix assembly, preconditioner setup, and the actual solve using the Krylov method) are handled in a hybrid manner using an MPI and thread-based parallel implementation.

The process outlined above is performed entirely internal to Abaqus/Standard, with no user intervention required.

Convergence of the Linear System of Equations

To generate the solution to the system of linear algebraic equations (denoted by the matrix equation K u = f , where K is the global stiffness matrix, f is the load vector, and u is the desired displacement solution), a sequence of Krylov solver iterations is performed, where an approximate solution gets closer to the exact solution at each iteration. The error in the approximate solution is measured by the relative residual of the linear system, defined by || K u - f || / || f || , where | | | | is the L 2 norm. The term “convergence” is used to describe this process, and the approximate solution is said to be converged when the relative residual is below a specified tolerance. By default, this tolerance is 10−6 for both linear perturbation and general nonlinear procedures. The linear solver convergence tolerance is independent from the nonlinear convergence process (that is, Newton-Raphson method) tolerances that are used to determine if analysis increments converge. The latter are the same regardless of the choice of linear equation solver (iterative or direct).

The rate at which the approximate solution converges is directly related to the conditioning of the original system of equations. A linear system that is well conditioned will converge faster than an ill-conditioned system. If the residual does not converge to tolerance within the maximum number of iterations, the iterative solver is said to have encountered a non-convergence and Abaqus/Standard issues a warning message. However, the analysis will continue running and in some cases the Newton-Raphson iterations within increments might continue to converge.

Setting Controls for the Iterative Linear Solver

The default controls provided in Abaqus/Standard are usually sufficient. However, a method for overriding the default relative convergence tolerance and maximum number of solver iterations is provided.

Resetting the Solver Controls

You can specify that the solver controls be reset to their default values.

Specifying the Relative Convergence Tolerance

By default, this tolerance is 10−6 for all linear perturbation and general nonlinear procedures. For nonlinear problems the accuracy of the linear solution can impact the convergence of the Newton method. In some cases it might be necessary to manually specify the iterative solver relative tolerance to improve the convergence of the Newton-Raphson method or to improve performance.

Specifying the Maximum Number of Solver Iterations

In rare instances the linear solver might require more than the default number of iterations to converge to the desired level of accuracy. In this case you can increase the maximum number of iterations allowed by the iterative solver (the default value is 500).

Deciding to Use the Iterative Solver

Many factors must be carefully weighed before deciding to use the iterative solver in Abaqus/Standard, such as element type, contact and constraint equations, material and geometric nonlinearities, and material properties, all of which can impact robustness and performance. In cases where the model is ill conditioned, the iterative solver might converge very slowly or fail to converge. For example, this can occur if many elements have poor aspect ratios.

In general, the iterative solver might not converge for models for which the direct solver issues the following:

  • Negative eigenvalue warning messages
  • Zero pivot warning messages
  • Numerical singularity warning messages

These warning messages indicate that the system matrix is very ill conditioned, and iterative solver convergence is not guaranteed for an ill-conditioned system. For example, the direct solver issues one of these warning messages for an underconstrained system, and the iterative solver might fail during the preconditioner setup phase or might not converge within the maximum number of iterations for this system.

In addition to these general limitations of the iterative solver, the iterative solver in Abaqus/Standard has the following limitations:

  • Inertia relief loads are not supported.
  • Geostatic analyses and pore fluid diffusion analyses are not supported for models with constraints using Lagrange multipliers.
  • Fully coupled thermal-stress and thermal-electrical analyses are not supported.
  • Steady-state transport analysis is not supported.

Apart from the robustness issues (relating mainly to the rate of convergence and limitations), the iterative solver is more likely to outperform the direct sparse solver for blocky models that require a very large number of floating point operations for factorization. Typically, the number of degrees of freedom in the model must be greater than one million before the iterative solver is comparable to the direct solver in terms of run time.

Element Type and Model Geometry

The most basic modeling issue that will affect the performance of the iterative solver is the model geometry, which must be carefully considered when deciding if the iterative solver is suited for a particular model. In general, models that are blocky in nature (that is, look more like a cube than a plate) and are dominated by solid elements will behave well with the iterative solver. Although structural elements such as beams and shells are supported, models with structural elements will not perform optimally; the direct sparse solver should be used instead for such models. Common modeling techniques such as coating solid elements with a thin layer of membrane elements to recover accurate stresses on the boundary or fixing rigid body motion with weak springs might not work with the iterative solver. Applying loads or boundary conditions to large node sets using locally transformed coordinate systems can also cause convergence difficulties. All of these techniques are likely to lead to extremely slow convergence or stagnation.

Another factor that can influence the convergence of the iterative solver is the quality of the elements. Blocky models, such as an engine block, that contain many poorly shaped elements with high aspect ratios can also lead to poor iterative solver convergence. It is a good idea to look for warning messages about poorly shaped elements when evaluating the performance of the iterative solver.

Using cohesive elements with the iterative solver will likely lead to nonconvergence.

Contact

Since contact is a form of nonlinear analysis, special care must be taken in selecting the convergence tolerance for the iterative solver (see Nonlinear Analysis below). Therefore, it is recommended to run the model through a static perturbation analysis before proceeding to the nonlinear problem. This will demonstrate how the iterative solver will perform for the specific model geometry without the added difficulty of nonlinear convergence.

Contact constraints enforced with Lagrange multipliers (that is, direct enforcement) or very high penality stiffness might cause the iterative solver to fail to converge.

The iterative solver does not support pore fluid contact, regardless of the contact formulation used.

Material Properties

When deciding to use the iterative solver, the variation of material properties in the model should be considered. Models that have very large discontinuities in material behavior (many orders of magnitude) will most likely converge slowly and possibly stagnate. Models with almost fully incompressible material (that is, a Poisson ratio close to 0.5) will converge very slowly.

Nonlinear Analysis

The iterative solver can be used to solve the linear system of algebraic equations that arises at each iteration of the Newton procedure. However, the convergence of the nonlinear problem will be affected by the convergence of the iterative linear solver. The actual impact depends on the particular model and type of nonlinearities present. In most cases the default iterative solver tolerance of 10−6 is sufficient to maintain the convergence of the Newton method; however, in some cases a smaller linear solver tolerance (for example, 10−9) can be used to improve the nonlinear convergence.

If a nonlinear analysis that uses the iterative solver fails to converge, it is often difficult to determine if this is due to the approximate linear equation solution of the iterative solver or if the Newton process itself is failing to converge. If nonlinear convergence problems occur, the direct solver can be used—given the problem is solvable using the direct solver due to solution cost—to eliminate the approximate linear solution as a possible source of the problem.