# Full Multigrid convergence is too slow. What could possibly be causing it?

I've coded full multigrid in Matlab and it doesn't seem to be converging fast enough. When I increase the number of grids or the number of iterations, it converges to the analytical solution. But FMG shouldn't need that many iterations and it should work even for fewer grids.

I realize this is a very vague question, but are there any ideas why this may be?

-
It would be useful if you stated what you think is "too slow". What convergence factors do you observe? –  Wolfgang Bangerth Jan 5 '13 at 4:38
@WolfgangBangerth Well I'm pretty sure (by my testing of a standard v-cycle), that I shouldn't need to run 30 iterations of FMG at 6 grids to get it to converge. It just doesn't make sense that such a versatile method should take that long. What do you mean by convergence factors? –  AlanH Jan 6 '13 at 1:25
The convergence factor is the ratio of errors (or residuals) between successive iterations. For multigrid, typical convergence factors are 0.1-0.5. If it were, say, 0.1, then you'd need 6 iterations to reduce the error by a factor of $10^6$. If it were 0.5, you'd need 30 iterations to reduce it by a factor of $10^9$. –  Wolfgang Bangerth Jan 6 '13 at 1:42

## 1 Answer

I assume you are solving a nice elliptic problems like the Laplacian with smooth coefficients. (You should always check convergence in this friendly setting first.)

1. Confirm that interpolation is as accurate as necessary. There usual rule for vertex-centered MG is that the sum of interpolation and restriction orders should be at least as high as the order of the operator, and preferably higher. This requirement is reduced by one order for cell-centered (aggregation) coarsening. For FMG, you should use an even higher order interpolation the first time you visit a fine grid (when you're transferring the full solution rather than just corrections). You can verify order of accuracy using analytic functions.
2. Check that the smoother is stable and damped correctly (if applicable). On structured grids, you can confirm that your smoother's performance matches the analytic predictions from local Fourier analysis.
3. Check that two-grid convergence factors match the predictions from local Fourier analysis. (Use a problem with an analytic solution, or even solve $A x = 0$ with initial guess $x \ne 0$.)
4. Check that the above is satisfied for V-cycles with more than two grids.
5. Check that you are reaching discretization error in one F-cycle.

Consult Achi Brandt's Multigrid Guide for further details on the issues above and far more depth. You may also find this advice helpful.

-