  Effective relaxation methods are necessary for good multigrid convergence.
For many equations, standard Jacobi and Gau{\ss}-Seidel are inadequate, and
more sophisticated space decompositions are required; examples include problems
with semidefinite terms or saddle point structure. In this paper we present a
unifying software abstraction, PCPATCH, for the topological construction of
space decompositions for multigrid relaxation methods. Space decompositions are
specified by collecting topological entities in a mesh (such as all vertices or
faces) and applying a construction rule (such as taking all degrees of freedom
in the cells around each entity). The software is implemented in PETSc and
facilitates the elegant expression of a wide range of schemes merely by varying
solver options at runtime. In turn, this allows for the very rapid development
of fast solvers for difficult problems.
