CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   Main CFD Forum (http://www.cfd-online.com/Forums/main/)
-   -   Gauss-Seidel (http://www.cfd-online.com/Forums/main/1837-gauss-seidel.html)

 W.M.Leung February 17, 2000 23:18

Gauss-Seidel

Hello Can anybody tell 1>whether Gauss-Sedel method is the fast iterative method(convergence)? 2>are there any other iterative method which is faster than G-S? 3>In general, how many number of iteration it need, say the number of unknowns are 100x100? Thank You very much

 I. Dotsikas February 18, 2000 08:08

Re: Gauss-Seidel

Gaus Seidel is a rather slow iterative Method. Actually I am not aware of any other Method that is slower. (Jordan Method is a little bit slower).

2. There is an other Method that is faster than Gaus-Seidel: the TDMA (Thomas- Algorithm) Itīs quite simple to programm, you may find many references to this Algorithm (netlib etc). Some faster Methods use Decompostion (ILU, LU) or Multigrid. Start with the Thomas Algorithm. Itīs as easy to program as the Gaus-Seidel.

3. It depends on your Problem and the special occasion you are working on. Actually you can calculate the difference between two runs and so decide when your solution is the nummerical approximation of your problem. Some times you donīt have to solve your equations up to convergence. You save much time if you let your solver do some iterations and then go on with the next equation. This is the case if you have material properties that show a strong temperature dependance while you solve a set of equations. Because of the iterative Nature of the problem you are allowed to do so.

best Regards

Yiannis Dotsikas

 Keith Walters February 18, 2000 11:26

Re: Gauss-Seidel

There are definitely faster methods to solve a linear system than G-S. If you have banded matrices you can use the Thomas algorithm. For multi-dimensions you can do a line-by-line approach which is an iterative application of the Thomas algorithm. These only work for structured grid applications, for unstructured you generally have to use a point-by-point method.

For a math class project I took a CFD code that I had already written and used a number of different techniques to solve the linear system, including the "new" Krylov subspace methods. I found that the driver in flow problems was the nonlinear (outer) iteration convergence, and not solving the linear (inner) system. With G-S, you don't have to completely converge the inner system before you re-linearize at the outer step, but you still get benefit by "pushing" the result in the right direction. As such, in terms of overall computation time, nothing outperformed good old Gauss-Seidel. One caveat: You have to make sure that your coefficient matrix is diagonally dominant.

As for iterations to convergence, that will depend on just how diagonally dominant your coefficient matrix is.

Keith

 COBOK February 18, 2000 12:27

Re: Gauss-Seidel

It greatly depends upon the structure of your matrix.

In general, Gauss-Seidel method is slow. There are much better iterative methods. In order to get an answer to your question, you need to provide us with at least the following information: (*) is your matrix symmetric; (*) is it positive definite; (*) is it banded (block-banded).

 W.M.Leung February 18, 2000 22:17

Re: Gauss-Seidel

Hi, COBOK For my case, the matrix have all the three properties you mentioned,1>symmetric, 2>positive definite, 3>band matrix

 COBOK February 19, 2000 12:15

Re: Gauss-Seidel

The Cholessky decomposition method may okay for your problem, but since the matrix is banded... BTW, what is the bandwidth of your matrix? As for starter, I'd recommend to go through the books/reports/proceedinds (some of them are good): 1)Rheinboldt, W.C., Methods for solving systems of nonlinear equations,2nd ed., Philadelphia : Society for Industrial and Applied Mathematics,1998. 2)Greenbaum, A.,Iterative methods for solving linear systems, Philadelphia, PA : Society for Industrial and Applied Mathematics, 1997. 3)Kelley, C. T., Iterative methods for linear and nonlinear equations, Philadelphia, Society for Industrial and Applied Mathematics,1995. (4)Tidriri, M. D., Krylov methods for compressible flows, Hampton, VA : Institute for Computer Applications in Science and Engineering, NASA Langley Research Center,<Springfield, Va. : National Technical Information Service, distributor, 1995>, NASA-CR-198176 (5)Iterative methods for large linear systems, (eds)D.R. Kincaid, L.J.Hayes., Boston : Academic Press, c1990. (6)An iterative implicit diagonally-dominant factorization algorithm for solving the Navier-Stokes equations, Shu-Cheng Chen, Nan-Suey Liu, and Hyun Dae Kim., NASA-TM-105259 (7) Iterative methods of large linear systems and their applications, (eds) M.Natori and T. Nodera.<Yokohama, Japan> : Keio University, 1989. (8) Iterative solution of large linear systems, D.M.Young., New York, Academic Press, 1971. (9)Varga, R.S., Matrix iterative analysis, Englewood Cliffs, N.J., Prentice-Hall, 1962

I'd advise you to read some chapters in these references, so that you get an idea where to start. After that you can eihter implement some algorithm that you think is the best you found, or try to find a free code on the net. Unfortunately, I do not have any, but maybe someone else could direct you.

 Amadou Sowe February 23, 2000 15:34

Re: Gauss-Seidel

The Jacobi iterative method is slower than Gauss-Seidel. The S.O.R (Successive Over Relaxation method) is an accelerated, in terms of convergence, Gauss-Seidel method.

 yangang bao February 25, 2000 11:52

Re: Gauss-Seidel

Nobody is using Gauss-Seidel method lonely if he wants to solve some practical problems. However, combined with multigrid algorithm, Gauss-Seidel is still a good one, since it is easy to implement compared with other algorithm, such as ILU, CGStab, GMRes, SSOR, etc.

Good luck.

 All times are GMT -4. The time now is 09:36.