16.11.2. Linear Solver Failure

This is the most catastrophic thing that can go wrong during the solution phase. A fatal failure of the linear solver could look like this:

=======================================================================
 TIME STEP =   6   SIMULATION TIME = 3.00E+11   CPU SECONDS = 1.05E+02
 ----------------------------------------------------------------------
 | Equation | Rate | RMS Res | Max Res | Location |  Linear Solution  |
 +----------+------+---------+---------+----------+-------------------+
 | U - Mom  | 1.36 | 3.7E-02 | 3.5E-01 |       1  |       NaN  *      |
 | V - Mom  | 1.37 | 3.8E-02 | 3.5E-01 |       1  |       NaN  *      |
 | W - Mom  | 0.75 | 1.2E-01 | 1.2E+00 |      26  |       NaN  *      |
 | P - Mass | 1.74 | 2.0E-02 | 6.9E-01 |    1248  |  8.3  Nan  *      |
 +----------+------+---------+---------+----------+-------------------
 +--------------------------------------------------------------------+
 | ERROR #004100018 has occurred in subroutine FINMES.                |
 | Message:                                                           |
 | Fatal overflow in linear solver.                                   |
 +--------------------------------------------------------------------+

After which the CFX-Solver terminates. The " * " means that there has been a floating point exception in the linear solver, usually a floating point overflow.

Sometimes a linear solver failure can be less dramatic, such as

 ======================================================================
 TIME STEP =   2   SIMULATION TIME = 1.00E+11   CPU SECONDS = 2.52E+01
 ----------------------------------------------------------------------
 | Equation | Rate | RMS Res | Max Res | Location |  Linear Solution  |
 +----------+------+---------+---------+----------+-------------------+
 | U - Mom  | 0.00 | 3.7E-05 | 4.9E-04 |      48  |       2.6E+01  F  |
 | V - Mom  | 0.00 | 3.7E-05 | 4.9E-04 |      38  |       2.6E+01  F  |
 | W - Mom  | 0.00 | 2.8E-04 | 7.1E-03 |      37  |       8.4E+01  F  |
 | P - Mass | 0.00 | 1.3E-07 | 3.8E-06 |      37  |  8.3  1.1E+02  F  |
 +----------+------+---------+---------+----------+-------------------+
 | H-Energy | 0.00 | 2.6E-02 | 1.9E-01 |     748  | 10.2  5.0E-04  OK |
 +----------+------+---------+---------+----------+-------------------+
 | K-TurbKE | 0.00 | 0.0E+00 | 5.9E-34 |    1200  |  5.6  0.0E+00  OK |
 +----------+------+---------+---------+----------+-------------------+
 | E-Diss.K | 0.00 | 0.0E+00 | 5.7E-34 |    1200  |  5.6  0.0E+00  OK |
 +----------+------+---------+---------+----------+-------------------+

This time the CFX-Solver continues with mixed results (that is, sometimes it will recover and converge, sometimes not). The "F" in the last column means that the linear solver failed to reduce the residuals of the linearized equations (the solution was diverging).

When the linear solver fails, it can mean that non-physical boundary conditions have been applied, or that the initial values were inappropriately set. For details, see Boundary Condition Modeling. A good set of initial conditions can be generated by solving a simpler flow. For instance, assume that the flow you want to model is turbulent and compressible. You want to model it using the model, with the most accurate discretization, with several pressure specified opening boundaries and a complex, curved geometry. There is no good initial values guess, and the linear solver might fail no matter what you try. However, if you instead modeled laminar flow, with the most robust discretization, and changed the boundary conditions to be velocity specified inflows with only one pressure-specified opening, the solution will converge with almost any initial value you choose. You could then use this converged result as the much better initial value for the real problem of interest.