This is a book for students of General Relativity, by a student of General Relativity.

Most of us understand the subject to the extent that we do, due to the detailed computations we have carried out and whose significance we have tried to understand. Our intent here is to provide examples of the computational techniques, and a compendium of sometimes useful and occasionally interesting results, which might enable us as students to develop some intuition about the applications of Riemannian Geometry to the study of GR.

There are several over-arching questions which have guided our investigations and which give some shape to this work:

Most students will find these questions interesting in their own right, yet they are almost completely ignored in most texts. The typical student of GR usually has little time to completely analyze the Schwarzschild Solution to Einstein's Equations before embarking on an individual course of research. This leaves no opportunity for a leisurely and moderately thorough examination of a variety of metrics which might lead to greater understanding.

By beginning with topologically simple spaces such as spheres and tori, and moving on to spacetimes of physical interest such as cosmological and black hole solutions to Einstein's Equations, we hope to provide the student with an aid in building insight through examining a large number of spaces and spacetimes. In each case (at least until we encounter dust and supergravity solitons), we discuss (in "natural coordinates") the form of the metric in D dimensions, examine the Christoffel Symbols, Riemann Curvature and Ricci tensor components, and analyze various curvature invariants which might be useful in characterizing the metrics as a class.

This work should be especially interesting to those who are interested in programming computers to do computations in GR. Each time a computation involves an essentially new algorithm, code examples (using Mathematica) are provided which illustrate the implementation. These examples have all been tested in actual practice, and once the student has used them to build computational software, the results presented in the text constitute a rather large test bed for verification purposes. And for the serious student of algebraic computation, the appendices include discussions of implementations using traditional computing languages and parallel algebraic computation.

A word about the manifolds which we will examine: they are, in the grand scheme of things, extremely simple. We will restrict ourselves to discussing real manifolds without boundary, and those we do discuss will be highly symmetric. Our primary focus is on gravity, and the field equations involved are so complicated that only highly symmetric solutions are known. This does not mean that they are unrealistic, although it is to be expected that nature does not exhibit any of them as presented here. Their relevance lies in the limiting case, and because understanding begins where we are capable of it.

Organization of the book

First we must say that this book will be meaningless to those who have not studied, for example, Wald's "General Relativity" [Wald]. We will assume that the reader is familiar with at least chapters 1-6 and 12 (covering basic relativity and tensor analysis, including cosmological solutions and black holes). We will also assume that those students interested in the code examples have at least a rudimentary knowledge of the control structures and syntactical elements of some procedural language, and have access to Mathematica for trying them out.

After a summary section on tensor algebra and a discussion of curvature invariants, the remaining sections deal with space(time)s and problems of interest to the geometer as well as the General Relativist or the student of Supergravity. Those sections can be read independently as needed. The appendices include supplemental material which focuses on techniques rather than space(time)s, although the sections on geodesics and functional computation contain examples of computations traditionally described in most books on GR.

The section on curvature tensors is a summary of the sorts of computations covered in most texts, and we do not attempt to either explain or justify them. This section presents many code examples and is the basis for much of the programming needed to reproduce the results of later sections. It contains a number of examples of the sort of good programming practices we mention below.

The section on curvature invariants motivates our interest in them, discusses some of their past uses and the problems associated with choosing invariants of interest. We then choose a set of invariants which will be used as a base for our comparisons in the remainder of the book.

The sections on spheres and tori provide conceptually simple examples to begin with, although many who have not explored tori for their own sake may find them much more complicated than they expected! The section on cosmological solutions to Einstein's Equations begins with simple anti-de Sitter and de Sitter spacetimes, and then discusses Friedmann-Robertson-Walker cosmologies in general.

The section on black holes first examines at length the Kerr-Newman black hole in 4 dimensions, due to its importance as the most general model for astrophysical black holes. The remainder of the section specializes to the Kerr black hole, and discusses its generalization to higher dimension. This is followed by a section on collapsing inhomogeneous dust, which is used to illustrate techniques used in the solution of Einstein's Equations, and in finding potential relationships between different metrics.

The sections on supergravity membranes and warped product metrics will be of most interest to those working on the more speculative frontiers of physics (although with its interest in diverse dimensions, much of the entire book is implicitly on the speculative side!). The main utility of the supergravity section is in the coding examples it presents for dealing with spinors, while the warped product section limits itself to a few general results which are simple enough to be useful. There is certainly more that could be done in this area, but the complexity of the results leads us to believe that much of that work would have limited use.

The first appendix discusses the numerical integration of the geodesic equations, as well as some tools useful in the analysis of geodesics. The second appendix gives several code examples for the visualization of complex invariants which might be useful. Although certainly we expect to learn more from analytical results, an occasional picture may indeed be worth something. The third appendix illustrates the functional techniques used to develop many of the results in the text, and applies them to the canonical problem of the Lagrangian Formulation of GR.

The fourth appendix discusses the parallelization of the algorithms for computing curvature invariants. For most computations in fewer than 10 dimensions, parallelization is not necessary, but in general it provides at least the proof of concept required to indicate that virtually any invariant you might wish to compute is in some sense a practical computation. Since it is now possible to use computers to calculate results which are impossible to replicate by hand, it is incumbent upon us to publish the software used to perform such computations. For that reason, this section includes links to a working application which uses these algorithms. Details of the implementation of (at least part of) that application are discussed in the fifth appendix.

About the Code Examples

Mathematica was chosen as the language for code examples for several reasons:

  1. it is commonly available and used for such computations;
  2. its syntax makes it an effective pseudo-code language;
  3. it is convenient for prototyping.

As in all computer programming, the programmer is rewarded by the use of good programming practices, which we have tried (with perhaps variable success) to adhere to here:

We encourage the student programmer to follow these practices religiously - they will make a profound difference to you when you have to work with your code after any extended hiatus!

Most of the problems discussed in this text are computable using Mathematica on a modern PC, although some are beyond its capabilities in a reasonably finite length of time (for instance, the Euler class of a Kerr black hole in 8 or 10 dimensions). There are several generic ways to increase Mathematica efficiency:


We have adopted several conventions which it is prudent to clarify at the outset:

Acknowledgments and Mea Culpas

The author would like to thank Paul Esposito, Richard Gass, Mark Jarrell, Cenalo Vaz and Louis Witten for interesting and enlightening discussions during this very extended project. He would also like to thank David Michaels for his help in maintaining the cluster on which the parallel work was done.

While every attempt has been made to ensure the accuracy of the contents of this text, errors do occur and slip past even the most conscientious author's eyes. Please send an e-mail if you have any concern about anything in the text.

The next section reviews results on curvature tensors in arbitrary dimensions.

©2005, Kenneth R. Koehler. All Rights Reserved. This document may be freely reproduced provided that this copyright notice is included.

Please send comments or suggestions to the author.