It is quite easy to implement multigrid on a rectangular grid but what about an non-rectangular?How to coarse a non-rectangular grid and apply multigrid(assume an easy non-rectangular grid capital letter L)?What about more complicated geometries?


The catch here is that refining a mesh is easy/mechanical, but coarsening really isn't. So think about the problem from the other direction: mesh your problem as coarsely as possible, just enough to capture the (geometrical) features of the domain. This mesh is probably not fine enough to accurately represent the solution, but would be if you refined it globally a few times.

If you keep track of the node/element relationships between these different refinements, then you've got the basic ingredients of multigrid: the mesh that you'd like to solve (the finest one), and a sequence/hierarchy of nested grids back to a very coarse one (with sufficiently few DoF's that it can be solved easily).

  • $\begingroup$ There are also unstructured agglomeration algorithms that allow you to not have to limit yourself this way $\endgroup$ – EMP Nov 26 '19 at 22:41
  • $\begingroup$ In such types of domains, I would also suggest you look at the problem the other way round. Is there a coarse mesh which you can refine multiple times to achieve both, geometric correctness and high resolution? Then hierarchical hybrid grids (google) are a scalable MG approach to achieve excellent performance in extremely multi-core settings. There are also a couple of extension to this type of methods for parametric domains, etc. $\endgroup$ – Christian Waluga Nov 27 '19 at 7:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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