
[Sponsors] 
October 1, 1999, 10:12 
looking for a Fortran Subroutine!

#1 
Guest
Posts: n/a

Dear colleagues, I have numerical problems.
The ADI algorithm allows us to solve a tridiagonal matrix system where f(i,j) is a scalar fonction with known coefficients AD(i,j), AU(i+1,j), AL(i1,j) and RES(i,j) so that we can find the modification df(i,j) of f(i,j). This is quite good approach for 2D flow problems. Here is my question: Is there some algorithm for 3D flows? f(i,j,k) is the function defined at point (i,j,k) with coefficients A(i,j1,k+1) A(i,j,k+1) A(i,j+1,k+1) A(i,j1,k) A(i,j,k) A(i,j+1,k) A(i,j1,k1) A(i,j,k1) A(i,j+1,k1) and RES(i,j,k) that allow me to find modification df(i,j,k) of f(i,j,k)???? I am expecting help from your specialists! 

October 2, 1999, 10:41 
Re: looking for a Fortran Subroutine!

#2 
Guest
Posts: n/a

Hi, Vincent.
You question is not exactly clear. Do you call the Thomas technique used for solving tridiagonal matrix the ADI algorithm? Or do you imply that you would like to have an extension of the Thomas technique for the case of a matrix with five nonzero diagonals, two of which are at large distance from the central three diagonals? In ADI, as I was taught, we use Thomas method in one direction, say, i, at one step, and in another direction, say, j, at another step. That is why it is called alternation direction. Or is it all just because of my not knowing English abbreviations for those methods? Or do you mean that you are timestepping (or 'supersonically' spacestepping) in j in your 2D case and in i in your 3D case? Anyway, below are some hints. Just translate them from my idea that we are talking about an elliptic problem to whatever necessary. Sure, you can use Thomas method in i, then j, then k directions, but I do remember that there can be some problems with stability. As for the fivediagonal case, no, there is no method which would be comparable to Thomas technique. What there is is more complicated, slower, and requires more memory. Strictly speaking the Thomas technique is the Gauss elimination applied to a tridiagonal matrix. If you do Gauss elimination for that fivediagonal case, all the space between the diagonals becomes filled with nonzeros, resulting in the loss of efficiency. No way around, except some specific matrices. Yours Sergei 

Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Fortran Subroutine Error  sergiorbrett  CFX  12  September 3, 2012 07:40 
Fortran subroutine (Perl not found)  gillou_sk8@hotmail.com  CFX  0  June 20, 2008 09:59 
error on CFX compile fortran subroutine  billpeace  CFX  0  May 18, 2006 04:44 
FORTRAN Subroutine  Neser25  CFX  3  October 20, 2005 14:55 
Fortran subroutine  Thomas  CFX  10  March 18, 2005 08:42 