5.2 Gauss-Seidel method
Finite volume numerics generally uses iterative methods to solve each matrix equation. These methods calculate approximate solutions for , which become more accurate with successive iterative solutions.
Iterative methods are preferred because they are more efficient than direct methods, which solve a matrix equation exactly. Gaussian elimination, which is the numerical basis for direct solution methods, has a computational cost . This is prohibitive for many sizes of mesh in finite volume CFD.
Gauss-Seidel1 is a simple, iterative method which is generally effective for solving transport equations such as the example in Sec. 5.1 . The method is illustrated by a sample equation
|
(5.2) |
Starting with, , new values of are calculated by Eq. (5.3a ), Eq. (5.3b) and Eq. (5.3c ) in sequence, where the notation “” denotes “ is assigned the value of ”.
The first solution of Eq. (5.3a) is . The updated is substituted in Eq. (5.3b), whose solution is . Both updated values are substituted in Eq. (5.3c ) to give .
The process is then repeated and through successive sweeps over the equations the solution converges as shown below.
Variable | Start | Sweep 1 | …2 | …3 | …4 |
|
|
|
|
|
|
0.0000 | 2.0000 | 2.4167 | 2.7431 | 2.8821 | |
0.0000 | 0.0000 | 0.5833 | 0.8069 | 0.9121 | |
0.0000 | 1.2500 | 1.6458 | 1.8392 | 1.9266 | |
Variable | Sweep 5 | …6 | …7 | …8 | …9 |
|
|
|
|
|
|
2.9462 | 2.9755 | 2.9888 | 2.9949 | 2.9977 | |
0.9599 | 0.9817 | 0.9916 | 0.9962 | 0.9983 | |
1.9665 | 1.9847 | 1.9930 | 1.9968 | 1.9985 |
The error is , i.e. the difference between the approximate and exact values , and . After 9 sweeps for all variables, i.e. within 0.2% of the exact solution.
In summary, the Gauss-Seidel method is the following sequence of calculations for , repeated until convergence:
|
(5.4) |
Convergence of the method, and convergence measures for iterative methods in general, are discussed in the following sections.