This example shows the basic usage of the multilevel functions in
-deal.II. It solves the Poisson equation with Dirichlet boundary
-conditions similar to @ref step_5 "step-5".
-
-
- In order to allow sufficient flexibility in conjunction with systems of
+deal.II. It solves the same problem as used in @ref step_6 "step-6",
+but demonstrating the things one has to provide when using multigrid
+as a preconditioner. In particular, this requires that we define a
+hierarchy of levels, provide transfer operators from one level to the
+next and back, and provide representations of the Laplace operator on
+each level.
+
+In order to allow sufficient flexibility in conjunction with systems of
differential equations and block preconditioners, quite a few different objects
-have to be created before starting the multilevel method. These are
+have to be created before starting the multilevel method, although
+most of what needs to be done is provided by deal.II itself. These are
<ul>
<li>An the object handling transfer between grids; we use the
-MGTransferPrebuilt class for this;
-<li>The solver on the coarsest level; here, we use MGCoarseGridHouseholder;
-<li>The smoother on all other levels; here the MGSmootherRelaxation class
+ MGTransferPrebuilt class for this that does almost all of the work
+ inside the library.
+<li>The solver on the coarsest level; here, we use MGCoarseGridHouseholder.
+<li>The smoother on all other levels, which in our case will be the
+ MGSmootherRelaxation class using SOR as the underlying method
<li>And MGMatrix, a class having a special level multiplication, i.e. we
-basically store one matrix per grid level and allow multiplication with it.
+ basically store one matrix per grid level and allow multiplication
+ with it.
</ul>
+Most of these objects will only be needed inside the function that
+actually solves the linear system. There, these objects are combined
+in an object of type Multigrid, containing the implementation of the
+V-cycle, which is in turn used by the preconditioner PreconditionMG,
+ready for plug-in into a linear solver of the LAC library.
+The multilevel method in deal.II follows in many respects the outlines
+of the various publications by James Bramble, Joseph Pasciak and
+Jinchao Xu (i.e. the "BPX" framework). In order to understand many of
+the options, a rough familiarity with their work is quite helpful.
+However, in comparison to this framework, the implementation in
+deal.II has to take into account the fact that we want to solve linear
+systems on adaptively refined meshes. This leads to the complication
+that it isn't quite as clear any more what exactly a "level" in a
+multilevel hierarchy of a mesh is.
-These objects are combined in an object of type Multigrid, containing the
-implementation of the V-cycle, which is in turn used by the preconditioner
-PreconditionMG, ready for plug-in into a linear solver of the LAC library.
-
-
-
-The multilevel method in deal.II follows in many respects the outlines
-of the various publications by James Bramble, Joseph Pasciak and Jinchao Xu. In
-order to understand many of the options, a rough familiarity with their work is
-quite helpful.