5. Numerics and practical considerations
For the actual numerical integration of the differential equation, we have found the Bulirsch-Stoer method to be both faster and more exact than other methods such as Runge-Kutta. However, the conventional method of rational function extrapolation is rather unstable in this particular case; fortunately, using polynomial extrapolation solves the problem. Although programming the integration is rather straightforward in theory, in numerical practice considerable effort is needed to determine combinations of free parameters which work for all cases. We have tested the finished programme intensively and extensively, for example by comparing the results of calculations for (the value of plays no special role in the integration of the differential equation) with those in Refsdal et al. (1967) or given by the method of elliptical integrals as outlined in Feige (1992) and have used it in Kayser (1995), Helbig (1996) and Helbig & Kayser (1996). For a general discussion of various methods of integrating second-order differential equations, see Press et al. (1992). Those interested in technical details can read the comments in our source code and the accompanying user's guide.
Since , in contrast to the other cosmological parameters, merely inversely scales the angular size distance, our routine actually calculates the angular size distance in units of . This dimensionless quantity must be multiplied by (in whatever units are convenient) in order to obtain the actual distance. Other than reducing numerical overhead, this allows all distances to be calculated modulo , which is convenient for expressing quantities in an -independent manner. In practice, cancels out of many calculations anyway.
Apart from auxiliary routines which the user does not have to be concerned with, our implementation consists of four FORTRAN77 subroutines. The first, INICOS, calculates z -independent quantities used by the other routines, some of which are returned to the calling programme. ANGSIZ calculates the angular size distance. Normally, is used as a z -independent cosmological parameter, on an equal footing with and . If desired, however, the user can let INICOS know that a variable (that is, z -dependent) is to be used; this is given by the function VARETA. We supply an example; the user can modify this to suit her needs. In particular, many different dependencies of on z can be included, and a decision made in the calling programme about which one to use. This feature is also included in our example. ANGSIZ returns only the distance ; if one is interested in the other distances in the bounce models, our subroutine BNGSIZ returns all of these (though internally calculating only the independent distances, of course, depending on the dependence of on z).
Due to the fact that not everyone has a Fortran90 compiler at his disposal, we have coded the routines in FORTRAN77. Only standard FORTRAN77 features are used, and thus the routines should be able to be used on all platforms which support FORTRAN77. Since standard FORTRAN77 is a subset of Fortran90, the routines can be used without change in Fortran90 as well.
With the exception of , all distance measures can be easily transformed into one another. Thus, it suffices to calculate the angular size distance for a given case. 10
When discussing the distance between two objects other than the observer, rather than between the observer and one object, in many cases one of two simplifying assumptions can be made:
In this case, the proper distance at the time of emission between the two objects is , where is the angle in radians between the two objects on the sky.
In this case, the angular size distance between the two objects is .
()) refers to the distance due to () when setting () equal to zero. In the first case, where the two objects are practically at the same redshift, one uses the angular size distance to this redshift to transform the observed difference in angular position on the sky into the proper distance between the two objects at the time of emission. This follows directly from the definition of the angular size distance. Since the distance between the objects is much less than the distance from the observer to the objects, the differently defined distances between the objects are for practical purposes degenerate. A practical example of this case would be the distance between individual galaxies in a galaxy cluster at large redshift. Naturally, one should use one redshift, say, of the cluster centre; the individual redshifts will in most cases be overlaid with the doppler redshift due to the velocity dispersion of the cluster, so the difference in cosmological redshifts is negligible. (Of course, the present distance would be a factor of larger, due to the expansion of the universe, were the objects comoving and not, as in a galaxy cluster, bound.) In the second case, which is typical of gravitational lensing, the angles on the sky between, for example, source and lens, are small enough to be neglected, so that the angular size distance between the objects is determined by the difference in redshift. If neither of these assumptions can be made, any sort of distance between the two objects is probably of no practical interest. (Of course, there is the trivial case where the redshifts are all in which case one can simply use , and as normal spherical coordinates.)
© European Southern Observatory (ESO) 1997
Online publication: July 3, 1998