CFD Online Logo CFD Online URL
Home > Forums > Main CFD Forum

Is TDMA used for pressure solver?

Register Blogs Members List Search Today's Posts Mark Forums Read

LinkBack Thread Tools Display Modes
Old   June 22, 2006, 10:55
Default Is TDMA used for pressure solver?
Posts: n/a
Do you use TDMA for pressure eq'?

In my case, immersed boundary method usually cause a divergence problem with TDMA for pressure solver, so I use conjugate gradient method. (FVM, non-staggered)

But, it is hard to parallelize (preconditioning) and very slow comparing TDMA. -- am i wrong??

What do you recommend for pressure solver?
  Reply With Quote

Old   June 22, 2006, 13:04
Default Re: Is TDMA used for pressure solver?
Posts: n/a
You can use diagonal preconditioner that is fully parallel. If convergence rate is too slow you can you GMRES method that is more rubost and has faster convergence than CG (althouth it is memory intensive), it is fully parallel (with diagonal preconditioner)

Also if you think that your TDMA solver is parallel!! you can use one or more iterations of it as preconditioner in krylov-subspace solver such as CG and Bicgstab.

But generally the best treatment for convergence problem in ellyptic systems (such as pressure eq.) is allpication of multigrid methods. As you deal with structured grid implementation of multigrid is very easy. I recommend multigrid preconditioned conjugate gradient method, MGCG, (multigrid is preconditioner of CG), it is parallel with high convergence rate in comparison with simple multigrid sor or GS relaxations. for more information see seris of paper due to: o. tatebe wich are availible from: also related source code is freely availible from:

  Reply With Quote

Old   June 23, 2006, 04:04
Default Re: Is TDMA used for pressure solver?
Posts: n/a
Why is it hard to parallelize?

Are you using MPI/MPP or openMP?

With openMP nearly all the do loops should parallelize trivially leaving only the inner products which can be parallelized using the openMP reduction statement.

With MPI/MPP you need to do a little more work (but not much). Basically you need to ensure that each PE's halo is corrected in the subroutines that calculate the matrix product and preconditioning steps as well as ensuring that all PE's comunicate in the calculation of the inner products.

  Reply With Quote

Old   June 25, 2006, 19:37
Default Re: Is TDMA used for pressure solver?
Posts: n/a
Thanks Tom

I use MPI. but, what kind of preconditining you mean? and pls, expain in detail. and any refrerence??
  Reply With Quote

Old   June 25, 2006, 22:03
Default Re: Is TDMA used for pressure solver?
Posts: n/a
A parallel iterative library is available from Sandia National Labs. It is called Aztec. It uses several methods including the conjugate gradient method.
  Reply With Quote

Old   June 26, 2006, 04:32
Default Re: Is TDMA used for pressure solver?
Posts: n/a
All I mean by preconditioning is multiplying the problem Ax=b by another matrix M (which must be easy to calculate) to obtain MAx=Mb. If M were the inverse of A this would give you the solution. The simplest form of preconditioning is if M contains the reciprical of the diagonals of A ( so that MA has 1's on the diagonal). In practice any M that can be obtained via an fixed point iteative method will do; e.g. Jacobi, Guass-Seidel, SOR, ADI etc.

The main point of preconditioning is that the "combined iterative" scheme converges faster than the component parts.

You should look at the book "Matrix computations" by Golub and van Loan (there's also a book by Yousef Saad which I believe is online).

The problem with the preconditioner step is, if you require bit reproducability across PE's, that they can be fairly difficult to progam (i.e. ILU or SIP).

Since you already appear to have a TDMA (by which I assume you mean ADI) solver I would use this for your preconditioner.
  Reply With Quote

Old   May 16, 2010, 14:48
Default parallel
Senior Member
niaz's Avatar
Join Date: Jun 2009
Posts: 120
Rep Power: 10
niaz is on a distinguished road
Dear friends
it is not a hard problem. you can use a simple technique to parallel all solvers.
you should use red-black algorithm for doing this.
niaz is offline   Reply With Quote


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
A New Solver for Supersonic Combustion nakul OpenFOAM 7 January 3, 2017 10:25
thobois class engineTopoChangerMesh error Peter_600 OpenFOAM 4 August 2, 2014 09:52
A New Solver for Supersonic Combustion nakul OpenFOAM Announcements from Other Sources 18 February 19, 2013 08:48
Working directory via command line Luiz CFX 4 March 6, 2011 21:02
why the solver reject it? Anyone with experience? bearcat CFX 6 April 28, 2008 14:08

All times are GMT -4. The time now is 17:00.