# Part I

Introduction

Systems with strong gravitational fields, particularly systems which may contain event horizons and/or
apparent horizons, are a major focus of numerical relativity. The usual output of a numerical relativity
simulation is some (approximate, discrete) representation of the spacetime geometry (the 4-metric and
possibly its derivatives) and any matter fields, but not any explicit information about the existence, precise
location, or other properties of any event/apparent horizons. To gain this information, we must
explicitly find the horizons from the numerically-computed spacetime geometry. The subject of
this review is numerical algorithms and codes for doing this, focusing on calculations done
using the 3 + 1 ADM formalism [14, 163]. Baumgarte and Shapiro [27, Section 6] have also
recently reviewed event and apparent horizon finding algorithms. The scope of this review is
limited to the finding of event/apparent horizons and omits any but the briefest mention of
the many uses of this information in gaining physical understanding of numerically-computed
spacetimes.
In this review I distinguish between a numerical algorithm (an abstract description of a mathematical
computation; also often known as a “method” or “scheme”), and a computer code (a “horizon finder”, a
specific piece of computer software which implements a horizon finding algorithm or algorithms). My main
focus is on the algorithms, but I also mention specific codes where they are freely available to other
researchers.
In this review I have tried to cover all the major horizon finding algorithms and codes, and to
accurately credit the earliest publication of important ideas. However, in a field as large and
active as numerical relativity, it is not unlikely that I have overlooked and/or misdescribed
some important research. I apologise to anyone whose work I’ve slighted, and I ask readers to
help make this a truly “living” review by sending me corrections, updates, and/or pointers to
additional work (either their own or others) that I should discuss in future revisions of this
review.
The general outline of this review is as follows: In the remainder of Part I, I define notation and
terminology (Section 1), discuss how 2-surfaces should be parameterized (Section 2), and outline some of
the software-engineering issues that arise in modern numerical relativity codes (Section 3). I then discuss
numerical algorithms and codes for finding event horizons (Part II) and apparent horizons (Part III).
Finally, in the appendices I briefly outline some of the excellent numerical algorithms/codes available
for two standard problems in numerical analysis, the solution of a single nonlinear algebraic
equation (Appendix A) and the time integration of a system of ordinary differential equations
(Appendix B).