Take the 2-minute tour ×
Computational Science Stack Exchange is a question and answer site for scientists using computers to solve scientific problems. It's 100% free, no registration required.

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?

share|improve this question
    
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 1

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.