CFD Online Discussion Forums

CFD Online Discussion Forums (
-   Main CFD Forum (
-   -   About multigrid methods (

Lionel S. April 8, 2007 11:00

About multigrid methods
Hi all,

I'm working on a small Navier-Stokes 2D solver, and after several tests, it seems that it's not obvious to make a solver converge with conjugate gradients or biconjugate gradient methods, even using multigrid methods.

It seems that most of the time, the correction computed by coarser mesh fails to improve convergence on fine mesh. Did someone have similar problems ?

As I read somewhere, multigrid methods are quite "ad hoc", so I wonder where I could find some theory or practical tricks about multigrid methods.

Thanks for any suggestions


kc April 9, 2007 19:43

Re: About multigrid methods
Hi Lionel:

perhaps u can perform more cycles at the coarse grid levels, b4 prolongation is performed to the finest grid level?


Lionel S. April 10, 2007 06:01

Re: About multigrid methods
Hi KC,

Actually, the number of cycles is adaptative. I make sub-cycles as far as it doesn't converge to a great precision. as soon as I have a good residual on a grid, I perform prolongation to the finer grid, and so on.

But unfortunately, it doesn't improve convergence on finer grid level.

zyno April 11, 2007 01:40

Re: About multigrid methods
You must be doing wrong agglomoration. If you are merging more than 3-4 volumes to make coarser volume, the convergence could be hampered. Best way is to merge two volumes at a time, based on the coefficient. Chose the neghbour with largest coefficient and merge it with it. (this is the best tip for this).

Lionel S. April 11, 2007 09:16

Re: About multigrid methods
Ok, thank you for this advice. In fact I was merging serveral cells (4 most of the time in structured meshes) based on geometry, not on coefficients.

zyno April 11, 2007 18:45

Re: About multigrid methods
The biggest problem in the way I asked you to merge is you have to generate agglomoration every time you iterate. I do not know how Fluent starCCM etc manage it, but it seems they generate on each iteration. (it seems with fluent).

Lionel S. April 12, 2007 06:40

Re: About multigrid methods
I don't really understand why. Because if I choose agglomeration in function of matrix coefficients (i.e. agglomerate elements having the biggest flux from each to other) the agglomeration won't change from one iteration to next.

... Or maybe do you mean at each time step (or non-linear update of matrix coefficient) ?

By the way, sometimes I wonder if Fluent updates the matrix coefficient at each linear (conjugate gradients or whatever) iteration or only from a "pseudo-time-step" to next one.

kc April 13, 2007 19:59

Re: About multigrid methods
I presume that the element of the coefficient matrix (say: pressure equation) will be changed in the initial phase of the solution. If the solution is approaching convergence, of course, it is hardly to note any changes in the coefficient matrix, and therefore agglomeration can be stopped.

The reason in altering the agglomeration configuration (based on largest neighbouring coefficient) is to ensure desirable convergence at each multigrid cycle, by considering the stiffness direction (anisotropy) of the matrix itself. When there is any changes in the coefficient matrix, the agglomeration algorithm should be activated again to form a new desirable 'coarse level' matrix, with the aim of promoting convergence.

I presume that for a algebraic multigrid method, agglomeration is not an expensive process in fact, as compared to those required for a FAS cycle implemented in the Geometric Multigrid process, whereby agglomeration is done based on the 'Geometry' itself.

-khai ching-

student April 19, 2007 00:39

Re: About multigrid methods
hi facing the same problem.. presently im solving cavity flow problem using FAS(multigrid) with simple algorithm in finite volume method using colocated grids. can u give ur mail id . i will contact u..

Lionel S. April 19, 2007 15:37

Re: About multigrid methods
Ok: lionel.selosse_(AT)_econophone_(DOT)_ch

surely you have to replace the _(AT)_ and the _(DOT)_ , it's just to avoid automated spamming...

student April 20, 2007 09:22

Re: About multigrid methods
this is my id

All times are GMT -4. The time now is 20:07.