machines coupled through MPI, for example. In that case, it would be
simpler if one could use a black-box preconditioner that uses some
sort of multigrid hierarchy for good performance but can figure out
-level matrices and similar things out by itself. Algebraic multigrid
+level matrices and similar things by itself. Algebraic multigrid
methods do exactly this, and we will use them in
-step-31 for the solution of a Stokes problem.
+step-31 for the solution of a Stokes problemm and in step-32 and
+step-40 for a parallel variation.
+
+Finally, one may want to think how to use geometric multigrid for
+other kinds of problems, specifically
+@ref vector_valued "vector valued problems". This is the topic of
+step-56 where we use the techniques shown here for the Stokes
+equation.
above. Nonetheless, the improvement by a factor of 3-6 for moderate problem
sizes is quite impressive.
-<h5>Combining block preconditioner and multigrid</h5>
+
+<h5>Combining the block preconditioner and multigrid</h5>
An ultimate linear solver for this problem could be imagined as a
combination of an optimal
preconditioner for $A$ (e.g. multigrid) and the block preconditioner
described above, which is the approach taken in the step-31
-tutorial program.
+and step-32 tutorial programs (where we use an algebraic multigrid
+method) and step-56 (where we use a geometric multigrid method).
+
<h5>No block matrices and vectors</h5>
Another possibility that can be taken into account is to not set up a block