|
[Sponsors] |
June 22, 2006, 11:55 |
Is TDMA used for pressure solver?
|
#1 |
Guest
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? |
|
June 22, 2006, 14:04 |
Re: Is TDMA used for pressure solver?
|
#2 |
Guest
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:http://phase.hpcc.jp/people/tatebe/r...blication.html. also related source code is freely availible from: http://phase.hpcc.jp/people/tatebe/software/mgcg/ |
|
June 23, 2006, 05:04 |
Re: Is TDMA used for pressure solver?
|
#3 |
Guest
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. |
|
June 25, 2006, 20:37 |
Re: Is TDMA used for pressure solver?
|
#4 |
Guest
Posts: n/a
|
Thanks Tom
I use MPI. but, what kind of preconditining you mean? and pls, expain in detail. and any refrerence?? |
|
June 25, 2006, 23:03 |
Re: Is TDMA used for pressure solver?
|
#5 |
Guest
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. http://www.cs.sandia.gov/CRF/aztec1.html
|
|
June 26, 2006, 05:32 |
Re: Is TDMA used for pressure solver?
|
#6 |
Guest
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. |
|
May 16, 2010, 15:48 |
parallel
|
#7 |
Senior Member
A_R
Join Date: Jun 2009
Posts: 122
Rep Power: 17 |
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. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
A New Solver for Supersonic Combustion | nakul | OpenFOAM Announcements from Other Sources | 19 | February 27, 2024 10:44 |
[Other] A New Solver for Supersonic Combustion | nakul | OpenFOAM Community Contributions | 20 | February 22, 2019 10:08 |
thobois class engineTopoChangerMesh error | Peter_600 | OpenFOAM | 4 | August 2, 2014 10:52 |
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 15:08 |