Multilevel support

Classes that have to do with multigrid algorithms.

The main class with implementation of the multigrid scheme is Multigrid with its function Multigrid::cycle(). It uses the following abstract classes in order to perform the multigrid cycle:

  1. MGMatrixBase contains the level matrices with a fairly general implementation in MGMatrix
  2. MGCoarseGridBase is the solver on the coarsest level.
  3. MGSmootherBase performs smoothing on each level.
  4. MGTransferBase organizes the transfer between levels.

Additionally, there is a class PreconditionMG, which is a wrapper around Multigrid with the standard interface of deal.II Preconditioners. PreconditionMG also uses the classes inheriting from MGTransferBase, for instance MGTransferPrebuilt, where it uses MGTransferPrebuilt::copy_to_mg() and MGTransferPrebuilt::copy_from_mg_add(), which transfer between the global vector and the level vectors.

Finally, we have several auxiliary classes, namely MGLevelObject, which stores an object on each level

See the step-16 example program on how to use this functionality.


deal.II documentation generated on Thu Jul 29 2010 19:25:40 by doxygen 1.7.1