08-08-2012, 12:21 PM
Numerical Solution by Gauss-Seidel Iteration
Section 2.6.3 Gauss Seidel.pdf (Size: 52.68 KB / Downloads: 263)
A finite difference solution results in a system of algebraic equations that must be solved
simultaneously. In Section 2.6.2, we looked at placing these equations into a matrix equation
( A X = b ) that was solved by a single matrix inversion (or the equivalent mathematical
manipulation). The matrix A is large (M N x M N) but sparse and therefore MATLAB can
handle it relatively efficiently. However, an alternative technique, Gauss-Seidel iteration, can
also be used to approximately solve the system of equations using an iterative technique. The
Gauss-Seidel method requires much less memory than the direct matrix solution method and in
some cases it may require less computational effort as well.
The algebraic equations that are obtained by the numerical model do not need to be placed into a
matrix equation form in order to carry out Gauss-Seidel iteration. Rather, the temperature matrix
is initially set up using a set of reasonable guess values for the temperature at each node. The
finite difference equation that results from an energy balance on each control volume is solved
explicitly for the temperature of the node, Ti,j, as a function of the temperatures of the
surrounding nodes. Using this set of equations, each node in the matrix Ti,j is calculated in a
logical order using the current values of the temperature of the surrounding nodes. The
difference between the original and recalculated value of each temperature is computed and the
maximum value of this error is recorded for each iteration. The process is repeated (i.e., the
Gauss-Seidel process is iterated) until the numerical error associated with the iteration is less
than some tolerance (i.e., the iteration is complete). The Gauss-Seidel iteration process is
illustrated using the EPL mask problem that was discussed in Section 2.6.2.