QRAYPKS is a general-purpose FORTRAN optics-analysis computer program that enables the computation of path lengths to an unprecedented level of precision. The impetus for developing QRAYPKS was the need to mathematically model an outer-space laser interferometer to be used in detecting gravitational waves; the interferometer is expected to have a baseline about 5 million kilometers long, and it is necessary to be able to compute the length of the baseline to subpicometer precision. QRAYPKS can also be used to model other large optical systems in their entirety.
The computer codes used heretofore in designing lenses and other optical systems are capable of single- or double-precision arithmetic and are suitable for modeling of optical systems with dimensions up to a few meters, but double-precision arithmetic cannot, by itself, resolve path lengths to the subpicometer level over millions of kilometers. In principle, one could obtain the required precision from such a double-precision code by breaking a ray-tracing problem into multiple parts, each small enough that double precision would yield a meaningful result; however, this approach would be time-consuming and susceptible to error.
QRAYPKS is primarily a ray-tracing code: it traces user-specified rays through an optical system that consists of refractive and reflective elements. QRAYPKS can find the intercepts of rays with high-order aspherical surfaces in three dimensions. It can also perform diffraction analysis, approximating a diffraction integral as a sum.
The input to QRAYPKS for specifying an optical system is similar to the input to an optical-design computer program called "CODEV." The main output of QRAYPKS consists of distances along rays between optical surfaces. In addition, because QRAYPKS carries a local coordinate frame with each ray, one can utilize the coordinate frame as part of the basis of a polarization ray-tracing code.
QRAYPKS affords the required path-length precision through the use of quadruple-precision arithmetic. To take advantage of this capability, one must run QRAYPKS on a Digital Alpha (or equivalent) computer, the FORTRAN compiler of which supports quadruple-precision arithmetic. Preferably, the computer should contain integrated circuits capable of performing quadruple-precision arithmetic in hardware, because a software implementation of quadruple-precision arithmetic can multiply the computation time by a factor as large as 100. The machine e (the smallest increment that, when added to 1, gives a result different from 1) in QRAYPKS is ≈10 -32: This level of precision is more than adequate to resolve a subpicometer difference in path length over a multimillion-kilometer baseline.
This program was written by Eugene Waluschka of Goddard Space Flight Center. For further information, access the Technical Support Package (TSP) free on-line at www.nasatech.com/tsp under the Software category.