CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

Diagonally preconditioned biconjugate gradient

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   June 14, 2005, 13:55
Default Hi, I would like to know wh
  #1
Senior Member
 
Billy
Join Date: Mar 2009
Posts: 167
Rep Power: 17
billy is on a distinguished road
Hi,

I would like to know what are the major diferences between "Diagonally preconditioned biconjugate gradient" and the "Incomplete-Cholesky preconditioned biconjugate gradient" solvers.

Billy.
billy is offline   Reply With Quote

Old   June 14, 2005, 14:16
Default There's some brief technical i
  #2
New Member
 
Chris Greenshields
Join Date: Mar 2009
Posts: 28
Rep Power: 17
chris is on a distinguished road
There's some brief technical info at the following link [paper page 41, PDF page 47]:
http://www-2.cs.cmu.edu/~quake-paper...e-gradient.pdf
chris is offline   Reply With Quote

Old   June 14, 2005, 16:20
Default Hi Billy, This is to do wit
  #3
Senior Member
 
Hrvoje Jasak
Join Date: Mar 2009
Location: London, England
Posts: 1,907
Rep Power: 33
hjasak will become famous soon enough
Hi Billy,

This is to do with parallelism. Basically, you can do various kinds of preconditioning with the Conjugate Gradient solver. If you do nothing, the solver is a disaster.

The "best" kind of preconditioning we've got in FOAM is the Incomplete Cholesky. However, the preconditioner works by visiting rows of the matrix (cells) in a particular order and the efficiency of preconditioning depends on that order.

All is well when you're doing simulations on a single CPU. However, when you do a decomposition in parallel, each CPU needs to do its own preconditioning on the local cells (because the cells on other processors cannot be accessed (in order). Therefore, for a parallel run, the incomplete Cholesky preconditioning (ICCG) will give you a slightly different result than the identical run in serial (number of solver iterations may be slightly larger and you get different round-off).

Diagonal preconditioning, on the other hand, does not depend on the ordering of cells, but is much (well, hmm) worse than ICCG. Therefore, when doing single-CPU runs, you really have no reason to run anything else than ICCG (maybe AMG, but that's another, and painful, topic).

However, sometimes you can get into a situation when you absolutely desperately need the same result in parallel and serial, e.g. when chasing bugs. :-) In that case, using Diagonal preconditioning (DCG) will allow you to do that, but you'll pay with the increased simulation time.

Enjoy,

Hrv
__________________
Hrvoje Jasak
Providing commercial FOAM/OpenFOAM and CFD Consulting: http://wikki.co.uk
hjasak is offline   Reply With Quote

Reply


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 Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Preconditioned Conjugate Gradient Solver! Chidu Main CFD Forum 1 January 21, 2004 12:43
Help with Biconjugate Gradient to solve a system Isa Main CFD Forum 2 December 20, 2003 08:19
Preconditioned Gmres carlos Main CFD Forum 2 April 14, 2003 06:24
Diagonally Implicit Runge Kutta Anthony Iannetti Main CFD Forum 1 February 3, 2001 01:14
Diagonally Dominate Runge Kutta Method Anthony Iannetti Main CFD Forum 0 January 23, 2001 22:27


All times are GMT -4. The time now is 12:43.