  GenEO (`Generalised Eigenvalue problems on the Overlap') is a method for
computing an operator-dependent spectral coarse space to be combined with local
solves on subdomains to form a robust parallel domain decomposition
preconditioner for elliptic PDEs. It has previously been proved, in the
self-adjoint and positive-definite case, that this method, when used as a
preconditioner for conjugate gradients, yields iteration numbers which are
completely independent of the heterogeneity of the coefficient field of the
partial differential operator. We extend this theory to the case of
convection-diffusion-reaction problems, which may be non-self-adjoint and
indefinite, and whose discretisations are solved with preconditioned GMRES. The
GenEO coarse space is defined here using a generalised eigenvalue problem based
on a self-adjoint and positive-definite subproblem. We prove estimates on GMRES
iteration counts which are independent of the variation of the coefficient of
the diffusion term in the operator and depend only very mildly on variations of
the other coefficients. These are proved under the assumption that the
subdomain diameter is sufficiently small and the eigenvalue tolerance for
building the coarse space is sufficiently large. While the iteration number
estimates do grow as the non-self-adjointness and indefiniteness of the
operator increases, practical tests indicate the deterioration is much milder.
Thus we obtain an iterative solver which is efficient in parallel and very
effective for a wide range of convection--diffusion--reaction problems.
