Verification and Diagnosis of Solver Convergence
Theoretical Foundations for Talking About Convergence
The Three Meanings of "Convergence"
Professor, I reported "the analysis converged" and my senior colleague shot back, "Which convergence do you mean?"β¦
That was a good question to be asked. In CAE, "convergence" means at least three different things. β Linear solver convergence β residual reduction while iteratively solving \( A\mathbf{x}=\mathbf{b} \). β‘ Nonlinear iteration convergence β Newton's method reaching equilibrium. β’ Discretization convergence β the solution approaching a limit as mesh or time step is refined. Even if β and β‘ converge, without checking β’ you may just have "solved the wrong equations accurately." This article covers checking and diagnosing β and β‘; for β’ see mesh convergence verification.
Residual Definitions and Convergence Norms
In nonlinear static analysis, the residual is the imbalance between external and internal forces:
$$ \mathbf{r}^{(k)} = \mathbf{F}^{ext} - \mathbf{F}^{int}(\mathbf{u}^{(k)}) $$
The solver declares equilibrium once a residual norm drops below tolerance. In practice several measures are combined:
| Criterion | Definition (concept) | Character and limitations |
|---|---|---|
| Force residual | \( \|\mathbf{r}\| / \|\mathbf{F}^{ext}\| \le \epsilon_F \) | Directly measures equilibrium β the most important. Relative scaling breaks down when loads are near zero |
| Displacement correction | \( \|\Delta\mathbf{u}^{(k)}\| / \|\Delta\mathbf{u}\| \le \epsilon_u \) | Detects the solution settling. Cannot distinguish stagnation from convergence |
| Energy criterion | Reduction of \( |\mathbf{r}\cdot\Delta\mathbf{u}| \) | Balances force and displacement. Never use alone |
The key rule: never declare convergence on the displacement-correction criterion alone. A stagnating iteration also shows small displacement changes, letting an "apparent convergence" pass with the force residual still high.
What Governs Convergence Speed
Newton-Raphson converges quadratically near the solution: residuals should fall like \( 10^{-2} \to 10^{-4} \to 10^{-8} \), doubling their digits each iteration. Deviations from that accelerating pattern are diagnostic clues. For iterative linear solvers (CG, GMRES), convergence rate is governed by the condition number \( \kappa(A) \). Slender elements, extreme stiffness contrasts, and thin-walled structures degrade conditioning and cause stagnation β meaning linear solver misbehavior is itself diagnostic information about mesh, materials, and constraints.
Numerical Methods That Control Convergence
Newton Family and Load Incrementation
Nonlinear problems split the load into increments and run Newton iterations per increment. Full Newton (updating the tangent every iteration) converges quadratically at higher cost per iteration; modified Newton drops to linear convergence but iterates cheaply. When convergence struggles, the practical escalation order is:
- Reduce increment size β each increment's starting guess lands inside Newton's convergence radius
- Enable line search β scales the correction to prevent overshooting into divergence
- Add stabilization (small damping/viscosity) β traverses instabilities near buckling or snap-through; always verify afterward that dissipated energy is negligible
- Switch to arc-length (Riks) methods β when the load-displacement curve folds back, load control itself fails; trace the path with an arc-length parameter
Iterative Linear Solvers and Preconditioning
At large scale, direct solvers hit memory limits and preconditioned iterative methods become standard. Preconditioning effectively lowers the condition number β ILU variants and algebraic multigrid (AMG) are the workhorses. If iterations stagnate beyond a few hundred, the right fix is a better preconditioner or better mesh quality, not a higher iteration cap. Matching solver to matrix also matters: CG for symmetric positive-definite systems, GMRES for nonsymmetric ones (fluids, some contact formulations).
Reading the Convergence History
Isn't the residual plot fine as long as it goes down?
How it goes down is where the information lives. Learn the patterns and the remedies fall out automatically.
| Residual pattern | What it means | Typical remedy |
|---|---|---|
| Digits doubling each iteration | Healthy quadratic convergence | Nothing β enjoy it |
| Straight-line (constant-rate) decrease | Linear convergence of modified/quasi-Newton | Acceptable if tolerable; else update tangent more often |
| Flattens mid-way (stagnation) | Tangent inconsistent with true stiffness; contact chattering; ill-conditioning | Smaller increments, contact stabilization, better preconditioner |
| Oscillates without decreasing | Contact open/close cycling; material loading/unloading flip-flop | Resolve initial penetrations, add damping, reduce increment |
| Monotonic growth (divergence) | Outside convergence radius; structural instability; input error | Initial increment Γ·10, stabilization, re-inspect the model |
What Makes CFD Convergence Judgments Special
In steady CFD, "residuals reached target" and "the answer is settled" diverge more than anywhere else β residuals and monitor quantities must be used together. Residuals stalling at \( 10^{-3} \) can coexist with perfectly steady lift or pressure drop (practically converged), while small residuals can coexist with slowly drifting monitors (false steady state). Judge with a three-part test: β scaled residual decrease, β‘ integral quantities (forces, flow rates, mean temperatures) reaching steady values, β’ boundary balances (mass, energy) within 1% of throughput. If monitors oscillate periodically in a separated flow, a steady solution may simply not exist β the physics is telling you to go transient.
Verification Procedures in Practice
Don't Trust Default Tolerances Blindly
Solver defaults (e.g., 0.5% force residual) are compromises that suit "many problems" β not a guarantee for yours. The standard verification is a tolerance sensitivity check: tighten the criterion by one order of magnitude, re-solve, and confirm your evaluation quantities (peak stress, displacement, reactions) change by less than your accuracy requirement. Large changes mean the normal tolerance was too loose. The same test also reveals when you are wastefully over-tightening.
Treat the Convergence History as a Deliverable
The convergence history β iterations per increment, where cutbacks clustered, final residuals β is the analysis's health record. Reports that paste the peak-stress contour and discard the history cannot be audited later. Keep at least: β whether every increment ended within tolerance (any truncated increments?), β‘ which load range concentrated the cutbacks (a physical event lives there), β’ the final residual level. If even one line says "maximum iterations reached, proceeding to next increment," that solution is not in equilibrium.
A Standard Procedure for Isolating Convergence Failures
Before twiddling parameters, bisect the cause:
- Drop to linear elastic, small displacement β if that fails too, the problem is constraints, connections, or mesh quality, not nonlinearity
- Re-enable nonlinearities one at a time β material, then geometric, then contact; identify which one breaks it
- Cut the load to 1/10 β converges at small load β increment-control problem; fails β model-definition problem
- Visualize the increment just before failure β local buckling, inverted elements, and contact penetration become visible
Followed in order, this locates ~90% of "it won't converge" cases within a few increments of investigation.
Convergence Controls and Diagnostics by Solver
Criteria Settings and Diagnostic Files
| Solver | Convergence settings | Diagnostics | Field notes |
|---|---|---|---|
| MSC Nastran / NX Nastran | NLPARM (CONV=UPW selects displacement/load/work) | Nonlinear iteration summary in .f06 (EUI, EPI, EWI) | The criteria combination matters; don't drop the load criterion |
| Abaqus | Default force residual 0.5% (of time-averaged force); *CONTROLS to change | .msg (iteration detail), .sta (increment summary) | Read .msg for cutback locations and singularity warnings |
| Ansys Mechanical | CNVTOL (force, moment, displacement) | Solution Information, convergence plots | Bisection points mark physical events; watch auto weak springs |
| Ansys Fluent | Scaled residual targets + monitors | Residual plots, report definitions | Never judge on residuals alone; keep Report Definitions running |
| OpenFOAM | fvSolution tolerances; SIMPLE residualControl | Logs + solverInfo/residuals functionObjects | Record the URF trade-offs you chose |
Reading Cutbacks (Automatic Increment Reduction)
Implicit solvers respond to convergence failure by shrinking the increment and retrying (Abaqus cutbacks, Ansys bisection). This is not failure β it is diagnosis: load levels where cutbacks cluster host physical events β buckling, contact state changes, spreading plasticity. Visualize deformation and contact status there and the model tells you what it is trying to do. Forcing looser minimum increments to "get past" cutbacks throws that information away.
Explicit Dynamics Has No "Convergence Check" β Watch Energy Instead
Explicit codes (LS-DYNA, Abaqus/Explicit) never solve a system of equations, so there is no convergence criterion at all. The health metrics are different: energy balance (internal + kinetic + dissipated β external work β constant), artificial (hourglass) energy below a few percent of internal energy, and controlled mass-scaling growth. "Explicit means no convergence worries" is wrong β the quantities to audit are simply different ones.
Research Frontiers
Scale-Up and Scalable Preconditioners
For analyses with tens of millions of DOFs, the frontier is preconditioning that stays effective in parallel: algebraic multigrid achieves mesh-independent iteration counts under ideal conditions, and domain decomposition methods (FETI-DP/BDDC) are becoming the standard on massively parallel machines. The practical lesson: many "slow convergence at scale" problems improve by orders of magnitude through solver and preconditioner selection β try that before buying more hardware on default settings.
Machine-Learned Convergence Acceleration
Neural networks that learn good initial guesses or preconditioners from families of similar solves report meaningful iteration reductions β particularly in workflows that solve many related problems (shape optimization, parametric studies). Out-of-distribution inputs can backfire, so the sound usage pattern today is: let learning accelerate, but keep classical residual criteria as the judge of convergence.
Automating Nonlinear Robustness
Adaptive strategies that auto-tune incrementation, stabilization, and solver switching keep advancing: quasi-Newton (BFGS) with automatic line search, trust-region methods with global convergence guarantees, interior-point contact formulations. As automation grows, so does the verifier's duty to read the logs of what was done automatically β post-checks like dissipated-energy audits become more important, not less.
Troubleshooting
Symptom Diagnosis Table
| Symptom | Likely cause | Fix |
|---|---|---|
| Diverges from the very first increment | Under-constraint, unit errors, initial penetration, load off by orders of magnitude | Drop to linear analysis and inspect; resolve contact interference |
| Stalls at the same load level every time | Buckling, snap-through, large-scale contact state change | Visualize just before; consider arc-length, stabilization, or dynamics |
| Endless cutbacks, no progress | Minimum increment too large for the nonlinearity | Lower the minimum; also inspect local mesh and material curve kinks |
| Linear iterations stagnate | Ill-conditioning (extreme aspect ratios, stiffness contrast, thin shells) | Switch preconditioner (AMG), improve mesh, cross-check with a direct solve |
| Residuals drop, but answers depend on tolerance | Criteria too loose (apparent convergence) | Tighten one order and compare; lead with the force criterion |
| CFD residuals plateau at 10β»Β³ | False steady state, unsteadiness, mesh-induced oscillation | Judge by monitors and balances; go transient if oscillatory |
The Last Question When Nothing Converges
What if I've tried everything and it still won't converge?
Then ask the final question: does a static equilibrium solution even exist for this problem? A structure past its collapse load, a snap-through in progress, a self-excited flow β set the solver hunting for a steady solution that doesn't exist and it will fail to converge forever. In those cases non-convergence is the physics answering you, and the only correct fix is a formulation that follows time or path: dynamics, arc-length, transient analysis. Distinguishing "solver settings problem" from "physics problem" is the last stage of convergence diagnosis.
Convergence checking is not "did the run finish" but "how well are equilibrium and conservation satisfied β quantitatively." Make tolerance sensitivity checks and history archiving habitual, and convergence-related quality accidents all but disappear. See also Boundary Condition Verification and Mesh Convergence Verification.
Feel the theory hands-on with the interactive simulators in this field
Simulator LibraryRelated Fields
detail
error