CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   Main CFD Forum (http://www.cfd-online.com/Forums/main/)
-   -   convergent prob. in solving poisson eq(neumann BC) (http://www.cfd-online.com/Forums/main/3111-convergent-prob-solving-poisson-eq-neumann-bc.html)

yf yap February 8, 2001 11:29

convergent prob. in solving poisson eq(neumann BC)
 
for a poisson equation with neumann boundary condition on a rectangular domain, let's say 41x41 grid points, i coded a program to solve it. using ADI, i can only obtain solution after more than 1000+ iterations. questions: 1) what can be done to ADI in order to accelerate convergence? 2) normally, how many (roughly) iterations are needed to obtain the solution for this class of problem, poisson eq with neumann BC? any advice would be appreciated. thanks. regards, yfyap

John C. Chien February 8, 2001 13:12

Re: convergent prob. in solving poisson eq(neumann
 
(1). For the information to go from corner to corner, you have 41+41 points. Then, multiply this number by a factor of 10. (2). That will give you a minimum number of iterations. One thousand iterations is not a large number at all.

andy February 8, 2001 13:33

Re: convergent prob. in solving poisson eq(neumann
 
ADI within a multigrid scheme on a uniformish grid for a Poisson equation (well suited to MG) the number of iterations will reduce to about 5 or so. It will also hold independent of grid size (i.e. 5 iteration for 41x41 and 5 iteration for 401x401).

However. Each iteration will be more expensive (perhaps 5 times more expensive). Also, if the grid structure becomes complex then the scheme will have to be more sophisticated or else the number of iterations will start to creep up. But what really raises the number of iterations is solving a set of Navier-Stokes equations with a turbulence model instead of a Poisson equation.


Sebastien Perron February 8, 2001 14:25

Re: convergent prob. in solving poisson eq(neumann
 
For your information, the discretised poisson equation gives a linear system that is very ill-conditioned. The conditon number for a structured mesh with constant step h is 4/(PI^2*h^2)+O(1).

Other solutions to your problem:

1) Fast poisson Solver;

2) Solve rows and columns of the mesh with Thomas algorithm and use a loop.

3) SOR with Jacobi pre-conditionning and optimal parameter w=2/(1+sqrt(1-rho^2)), rho is the spectral radius, approx= 1-h^2

yf yap February 8, 2001 22:21

Re: convergent prob. in solving poisson eq(neumann
 
dear andy,

nice suggestion, it seems attractive enough to have just several iterations. thanks a lot.

regard, yfyap

yf yap February 8, 2001 22:22

Re: convergent prob. in solving poisson eq(neumann
 
dear John,

in you commend, you mentioned "multiply this number by a factor of 10", what is "this number" and how "this number be incorperated into the ADI scheme? after descretizing the poisson eq., for ADI, we have:

U[i-1][j][k+1] - (2+zeta)*U[i][j][k+1] + U[i+1][j][k+1] =-U[i][j-1][k] - (2-zeta)*U[i][j][k] + U[i][j+1][k] + source

U[i][j-1][k+2] - (2+zeta)*U[i][j][k+2] + U[i][j+1][k+2] =-U[i-1][j][k+1] - (2-zeta)*U[i][j][k+1] + U[i+1][j][k+1] +source

is it that "this number" is zeta, the acceleration factor?

thanks. regards, yfyap

yf yap February 8, 2001 22:24

Re: convergent prob. in solving poisson eq(neumann
 
dear Sebastian,

is fast poisson solver a pakage or an algorithm?

for your second suggestion, this is what i did by using ADI, but what do you mean by "use a loop". for ADI, iterations are performed until solution is obtained. thanks.

regards, yfyap

John C. Chien February 9, 2001 01:35

Re: convergent prob. in solving poisson eq(neumann
 
(1). In each iteration, the minimum distance the information can propagate is one grid point (or cell) in your case. (2). For the information to travel from one corner to another corner in 2-D is (41+41)=82 points. So, it takes at least 82 iterations for the information from one corner to propagate to the other corner. At that point, the far corner picks up the boundary condition of the first corner. It then combines that information with its own boundary condition and start sending it back grid point by grid point. (3). After 164 iterations, the first corner receives the returned signal from the far corner. And this time, something can happen: (a). if the first corner is fixed value boundary, it can mix the incoming signal with this fixed boundary condition and then send the signal back, (b). if the first corner is floating boundary condition, it must adjust itself with the returned signal and starts the process all over again. (4). Based on my experience, this process will have to be repeated at least 10 times to even out the transient signals or errors. So, you need at least 82x10=820 iterations. This represents only "five" round trip of information propagation. Naturally, if you use direct solver, it takes only one iteration. ADI will reduce the fluctuations, but the principle holds. (5). In real life, can you settle the middle east conflict in five round trips? By the time the signal returns, it will have to deal with a new government.

Sebastien Perron February 9, 2001 09:07

Re: convergent prob. in solving poisson eq(neumann
 
1) Fast Poisson Solver are meant to solve Block TST matrices such as the ones you get using the ADI method with a constant space step (Block TST matrices). Except for multigrid methods, these might be the fastest methods that can be used to solve the poisson equation. Sorry I only have general references on the subject and can't give you a good one to implement the method. But you can try this one:

A. Iserles, A first course in the numerical Analysis of Differential Equations, Cambridge University Press, London, U.K. 1996.

+This site has a free solver: http://www.fftw.org/

2) As for "LOOP", I meant performing iterations until convergence.

yf yap February 9, 2001 22:06

Re: convergent prob. in solving poisson eq(neumann
 
dear John, thanks a lot for spending your precious time clarifying the above matter. regards, yfyap


All times are GMT -4. The time now is 23:56.