ties
The approximate response function of the goniometer is given in equation (2.2). However this is only valid for a perfect system. In reality, it is influenced by the optics and the laser. The involved theory of beam propagation is well understood. Due to its linearity the calculations are easy. However, due to the numerous optical surfaces and the three- dimensional geometry (corner cubes and polarization), an analytical calculation of the interferometer response function is rather difficult. Though a Monte-Carlo simulation of the interferometer is perfectly possible.
One target of such an analysis was to estimate the induced non-linearity of the interfer- ometer response-function. On the long range domain of several degrees such as different Bragg orders or calibration points this is induced by misalignment of the optical elements, asymmetric path length while having a divergent beam and a non-planar wave front on an expanded photo detector. On the short range domain – the distance of one wavelength or small-integer fractions of it – frequency mixing is important. In the final layout, it is mainly induced by non-orthogonal reflections, stray light and bad alignment. Another target was to estimate the influence of drifts of an optical element on the interferometer output.
Commercial software for optical calculation is available. However none of them corre- sponded to the specific requests, in particularly polarization and frequency mixing, but they also provide only limited configuration and batch possibilities to simulate the long range displacement of the retro reflectors during the calibration. Access to intermediate data is hardly available. Documentation about the calculation methods and numerical precision are sometimes poor.
A.2.1
Program hierarchy and principles of the algorithm
Therefore a Monte-Carlo simulation was written from scratch in the languages “C++” and “perl”. The highly speed optimised C++ core-part uses a single text file as input for the configuration. This describes one static situation of the full interferometer. Several millions of photons are then simulated and the result is put to one or several text files
A.2. MONTE-CARLO SIMULATION OF INTERFEROMETER PROPERTIES
which describe the signal in the photo detectors. The highly flexible perl part modifies the configuration file such that e.g. the rotation of an interferometer arm is pictured in several steps and each of them the C++ program is called. The perl program will also collect and combine the resulting output files.
As the perl program is only a manipulation of text files including some rotation and translation of three-dimensional coordinates, the following description applies to theC++
program. This simulation provides one or several light sources at which photons are generated randomly according to a given spatial and angular distribution. For each photon the path through the interferometer is calculated. At each collision with an optical surface that would split the light, randomly only one of the possible paths is followed in the calculation. At the detector all photons are summed up according to their phase or other properties.
The algorithm determines automatically which element is hit next. However, for each element a set of exclusive successors can be defined to reduce computing time. This can be abused to disable parts of the interferometer if other parts need to be investigated with higher statistics.
The polarization is stored as a unity vector perpendicular to the current direction of the photon. At each interaction point it may change according to the rules described below. The wavelength is attributed to the photon at its generation in the light source. The heterodyne frequency split is realistically implemented by a slightly different wavelength. The optical refractive index of any material will influence the actual value of the wave- length. The phase of the optical wave is calculated from the path length and the actual wavelength. The phase value at the collision point with the detector is most crucial as it is used for calculating the signal intensity. This is done by summing the complex amplitude. Usually this is done per detector pixel. It can be done also separated by wavelength, and thus frequency to reconstruct the time shape of the detector signal.
A.2.2
Available optical elements
The simulation provides different types of optical elements which can be freely positioned and oriented in space. Depending on their physical meaning some of them have param- eters. Each element is simplified as a planar surface with a circular diameter. A solid object, like an optical flat, must be described by at least two elements: an entry and an exit surface.
laser generate photons with a specified space- and divergence-profile. Wavelength, phase and polarization can be specified.
passive surface usually indicates the surface of a massive object and hence the change of the refractive index, as for a mirror or an optical flat, including any coating. Two different reflective indexes may be specified for two orthogonal directions in the surface plane. Each element may accept an overruling transmission and reflection probability.
active surfaces are used for functional complex objects which would occupy high com- puting time when build from basic passive elements. Such functions can be as simple as polarizer and retarders or as complex as an AOM for wavelength shifting.
detector several types of detectors are available and can be combined. They store and sum the properties of the photons such as phase, travelled path, polarization and frequency.
beam dump provides a way to count photons which are lost at a particular spot, without having the full computing overhead of a “detector” element.
During the calculated path of a photon it is never split. In case of two successive light paths one is chosen according to the transmission or reflectivity probability. This choice incorporates the polarization: The polarization of a photon is stored as a vector orthogonal to its direction. Each surface can have two distinct orthogonal orientations which can react differently on the polarization of the photon. Hence, the projection of the current photon polarizations is calculated. The photon polarization is adjusted randomly to one of the surface orientations. The calculated projection is used as an amplitude of the photon to assure the normalization of the light intensity.
Of course this method neglects single photon interference effects. But in this purpose the light source can be considered as perfectly coherent. However, this indicates that many photons are necessary for an accurate result. Consequently for the sake of computation time it is useful to implement some objects as active surface instead of passive ones, e.g. retarder plates as active surface rudely re-orienting the polarization vector.
The numerical precision of most computer programs is 15 decimal digits provided by a usual 64 bit double data type. The required accuracy comes quite close to this limit. To avoid numerical artefacts the C++ code uses 80 bit long double variables providing a precision of 19 decimal bit. All values are stored in full SI units as metres or seconds without any prefix.
On a Pentium-4 single core processor at 3.2 GHz the calculation takes per photon about 1.3 ms when simulating the full interferometer. For precision of λ/14000 considering a curved wave front about 20 million events and thus 7 hours are necessary.