|
Software Tools for Advanced
|
|
The goals of the STAIC-group are to share and compare software tools used and written by members of the group to simulate various aspects of advanced interferometers. On our annual workshops we present our programs, discuss the features and compare them with other programs.
This webpage is intended to provide everybody with a list and short summaries of the programs, links to ftp sites (coming soon) and e-mail addresses of the authors or authorized users of the codes.
The page is maintained by the LIGO group of the University of Florida. But because of the nature of this page, we can't keep it up to date without the help of all members of the group.
Because of the experimental character of all programs presented here, we can't guarantee that the results are OK. Please report every bug to the authors or authorized users.
If you want to add new programs, new ftp sites, new comments, please contact Guido Mueller
We had three workshops so far:
The End to End model of LIGO is a time domain simulation program for
gravitational wave detectors. The foundation of this program is written in C++. It provides an object oriented framework and is optimized for speed. This
part is like a tool box. These fundamental tools, called primitive modules,
are for example "electric field", "laser", "mirror", "digital filter", "spring", "blade", etc.
The time domain modal model is used to simulate the optical system. This
can be used for the study of longitudinal and rotational motions of
mirrors, thermal lensing effects, etc. The mechanics part is also
implemented in a modular way, and one can construct SUS/SEI systems by
combining rigid objects, springs and also black boxes characterized by
measured transfer functions.
In order to use this program for a simulation of a specific system, one
uses a GUI to construct the system by combining tools in this "tool box".
Tools are provided for most of the commonly used hardwares, and low level
programming is rarely needed to simulate common setups, like optical
configurations, control systems and mechanical structures. A new hardware
feature can be easily inserted by writing a new primitive module, either
by C++, C or FORTRAN.
More informations about the End to End-model can be found at: http://www.ligo.caltech.edu/~e2e/
We have implemented in MATLAB 5 a collection of scripts and classes designed to allow straightforward modeling of static properties of optical interferometers. In particular, we have used these classes to build an object-oriented model of the effects of thermal distortion on the optical performance characteristics of the LIGO I/II/III and GEO interferometers. Available objects include laser_field (currently restricted to the Hermite-Gauss basis), mirror, beamsplitter, detector, fpi (i.e., a Fabry-Perot interferometer), michelson, michelson_fp (a michelson with fpi arms), ligo (a generalized object allowing continuous evolution between the LIGO I, II, and III configurations), and geo. We have included the effects of thermal lensing due to TEM_00 power absorption in both the substrates and coatings, and the effects of mirror/wavefront curvature mismatch at each reflection. Additional systematic perturbations (e.g., mirror tilt and optical surface imperfections) can be included in the model by adding the appropriate matrix operators to the mirror and beam splitter classes. Currently, these classes can be used on any platform that supports the MATLAB 5 environment.
Melody is available at http://www.phys.ufl.edu/~mueller/SOFTWARE/.
Release notes and latest updates are also available at Amber Bullington's webside http://www.stanford.edu/~abull .
The computer simulation of electronic circuits is a well-established discipline. The widely known program SPICE, e.g., is very powerful at simulating things such as MOS transistors, transient behavior, integrated circuits, digital logic devices, etc. For many of the circuits that we need, however, the emphasis is on other aspects:
LISO is available at ftp.rzg.mpg.de/pub/grav/ghh/liso/
OptoCad is a Fortran 90 module for tracing Gaussian beams
through an optical setup. This optical setup is specified by an
input file containing the specifications of all optical components in the
setup and the characteristics of one or more Gaussian input beams.
Following the input beam(s), OptoCad traces the
beam through the optical setup, determining the surface hit next,
calculating the exact position of the hit, the Gaussian beam parameter
immediately before and after the surface, i.e. after reflection or
refraction, and the power and power density of the beam. For any
cavities encountered by the beam, OptoCad calculates the
characteristics of the cavity, like position and radius of the waist,
and Rayleigh length for both, tangential and sagittal plane, as
well as beam radius and wavefront curvature at the entrance surface.
These data are used to calculate the mode and impedance matching of
the cavity input beam, assuming perfect geometrical alignment.
Cavities can also be nested or coupled, but the calculation of
bandwidth, free spectral range and finesse are somewhat problematic
in these cases.
There are, of course, a number of restrictions:
OptoCad can only follow beams in one plane, i.e. it is essentially
two-dimensional, it calculates the beam parameters for TEM00 modes
only, for optical cavities it always assumes perfect geometrical
alignment. There is no graphical user interface; input and output
are via ASCII files, but output can also be generated as PostScript
files showing beams and components graphically. Some of these
limitations may be overcome sooner or later, others may not.
OptoCad is available at ftp.rzg.mpg.de/pub/grav/ros/
This program is a Mathematica model to simulate
the static and dynamic response of an interferometer
in the frequency domain.
The frequency dependent photo current in a photo detector
anywhere in the system can in principle be evaluated.
Optical components are represented
by matrices so that the whole interferometer itself can be
then represented by a matrix. The basic algorithm solves analytically the
linear equations that couple the four ports of the
interferometer (see [1] for details).
Although this matrix technique can be adapted to various different
interferometer configurations the algorithm has been used
mostly for dual recycled interferometers such as GEO 600 and the
Garching 30m prototype.
The program is a very useful tool when looking for a
good operating point and for designing servo loops. Expected
error signals at DC and harmonics of the modulation frequency
are derived with the static
response of the interferometer as a function
of mirror tuning. For designing servo loops one has to know
the transfer function of the plant which is in this case the
Michelson interferometer. This information can be evaluated using
the dynamic response.
A convincing verification of the model was obtained
by comparing the simulations with measured transfer functions of the 30m
prototype with detuned dual recycling.
[1] J. Mizuno, I. Yamaguchi: "Analysis of multiple-mirror optical systems using matrices", accepted by JOSA A
DRint is available at ftp.rzg.mpg.de/pub/grav/soft/
This object oriented program can calculate the dynamic and static response of a dual recycled cavity enhanced interferometer.
The static response uses the transfer functions of the interferometer for light impinging on the power recycling mirror and detected at the desired port.
The dynamic response takes advantage of the fact that every mirror movement generates sidebands at that particular mirror. These sidebands can be seen as an input field impinging on this mirror and traveling through the interferometer to the desired detector port. The amplitudes and phases of these sidebands at the detector are calculated using this time the transfer functions from the oscillating mirror to the detector. We can also calculate differential and common modes of mirror movements by adding the sidebands generated from different mirrors with the right phase. Demodulating these sidebands with the appropriate input fields gives us the photo diode signal.
As most of these objects are simplified versions of the objects written by Ray Beausoleil (without any thermal distortion and no transversal modes) it should be possible to upgrade these objects to include transversal modes and imperfect mirrors.
InterCal is available at http://www.phys.ufl.edu/~mueller/SOFTWARE/.
GLIC is a set of short, not too complicated, matlab routines that allow calculation of both quasi-static responses (move mirrors slowly and look for the error signals) and frequency response (move a mirror and get a `Bode' plot etc. of the transfer function to an error point) in the usual DR/RSE configuration (or anything simpler). Most of the techniques are (and were developed) in common to those of Jun Mizuno's OPTMAT/VISP and derivatives, but the topology of the interferometer is fixed. The motiviation for writing the code was a need for something faster than the Mathematica version of Jun's code, and yet will easy availability of the usual Matlab control system tools. Sample versions of the code are available from k.strain@physics.gla.ac.uk and are tested for Matlab 5.0.
GLIC is available at ftp.rzg.mpg.de/pub/grav/soft/ .
Two simple Matlab programs are presented. The programs are designed to
make use and modifications easy but are limited in the applications. The
first
program, called "ad_resp", calculates the fields in the Interferometer
and the output signals for arbitrary motion of the mirrors. The model is
based on the adiabatic approximation for the fields and, therefore, is
limited to the slow motion of the mirrors. The optical configuration is
that of a power recycled Michelson with Fabry-Perot arms, which is a
current
LIGO configuration. However, the program can be modified to include a
dual
recycling Interferometer. The program can also be used for a numerical
calculation of the matrix of the derivatives for the output signals.
The second program, "fp_dyn", calculates the fields in the cavity and
the
mirror positions, taking into account full dynamics. It is based on the
iteration equations for the field evolution and the 2d order
differential
equations for the mirror motion. The model includes the mirror's
inertia,
radiation pressure of the laser on the mirrors and the control forces.
The
program can also be used to analyze stability of the cavity during lock
acquisition.
Twiddle is a Mathematica 3.0 based notebook program designed to calculate
frequency response of an arbitrary interferometer configuration. This is
useful for deriving signal extraction schemes and doing servo design to
control an interferometer.
The interferometer is built in an "ifo" notebook, by means of specifying
optical components and the optical paths which connect them. Furthermore,
the "character" of the input light is specified here, that is, all the
modulation frequencies and their relative phases and amplitudes.
In a separate working notebook (or "driver"), Twiddle builds a matrix
from the self-consistent field equations, and then solves for the field
equations of the entire interferometer, as well as the power build up of
the incident frequencies at each optical port of the interferometer.
Transfer functions are calculated by assuming a signal input of a
particular frequency at the mirrors being shaken, then calculating the
transmission of these signals to the desired output. At the output,
sinusoidal demodulation of arbitrary specified phase gives the desired
transfer function for that frequency. Signal frequencies are looped over,
building the transfer function in a manner analogous to a swept-sine.
The current version only calculates frequency responses, however functions
to calculate the DC matrix of discriminants, as well as functions to
examine the interferometer response to sweeping of various interferometer
parameters (i.e., cavity phases, mirror reflectivities, etc.) have been
written. Contact JM for more information (below).
If interested in obtaining a copy of Twiddle, please contact James Mason
at jim@ligo.caltech.edu, or Hiro Yamamoto at hiro@ligo.caltech.edu.
FINESSE is a frequency domain interferometer simulation. It calculates
light
amplitudes in a user specified interferometer configuration. All
calculations are done in the frequency domain (i.e. a steady state is
assumed). It is basically a numeric code written in C
that solves the linear set of equations which describes the
interferometer.
Error signals, transfer functions, shotnoise limited sensitivities and
light field amplitudes can be calculated for almost any arbitrary
interferometer configuration. The input and output is organized via text
files.
To simulate a certain interferometer configuration, the user has
to write an input text file which describes the interferometer
in form of components and connecting nodes. FINESSE stores the result
in an output text file and uses GNUPLOT for graphical output.
The program is very fast and easy to use.
It is very well suited to check a number of different
ideas in a short period of time.
Finesse is available at http://www.rzg.mpg.de/~adf
Rsenoise is a matlab code that calculates the shot noise limited sensitivity of a dual recycled cavity enhanced interferometer. It also calculates the transfer of amplitude and frequency noise from the input to the dark port detector and specifies the specs on amplitude and frequency noise.
(Summary from Guido Mueller)
Rsenoise is available at http://www.phys.ufl.edu/~mueller/SOFTWARE/Rsenoise.tar.gz
Isolation model constructor is developed to model and predict the behavior
of isolation systems. The code models the isolation system as a set of
springs, masses, sensors, actuators, and controllers then creates a
linearized model of that system around the equilibrium condition. The code
is written completely in Matlab, which has an excellent set of tools for
conducting system identification and controller design. In order to build a
model of a system, the user need to input the physical and geometrical
parameters of that system to the model constructor in form of data
structures defined in the code. Then, the model constructor will construct
a linear model of that system in four submodels: the mechanical model, the
sensor model, actuator model and the controller model. The interface of
these submodels are well defined. The user can connect these submodels
according to the user's need. Simulink is highly recommended to do the
connection. The code requires Matlab 5.3 and control toolbox.
The Isolation model constructor is available at http://www.phys.ufl.edu/~mueller/SOFTWARE/Mech2.tar.gz
FFT is a FORTRAN-90-coded numerical simulation program designed to model the steady-state Electric fields in a LIGO interferometer with imperfect optics. A relaxation method is used to determine the steady state fields that are propagated through the interferometer using Fast Fourier Transforms, thus the name FFT. Imperfections modeled by FFT include misalignment and mismatch of the laser beam, finite mirror size including "clipping", curvature distortions, mirror and beam splitter tilts, surface roughness, and substrate inhomogeneities. FFT can also be used to study various non-standard LIGO configurations such as non-spherical mirrors (see LIGO G010297-00-D). We have tested and made available versions of FFT designed to run under the MPI architecture on the V-Class HP-UX cluster at CACR (skinner.cacr.caltech.edu) for the Dual Recycling configuration of Advanced LIGO and the upgraded 40m and for the Power Recycling configuration of LIGO-I. These two versions are called MPI DR FFT and MPI PR FFT respectively. Also available are "scalar" versions of FFT designed to run on a single SUN workstation for both the DR and PR configurations. The FFT source code was originally conceived and written by Jean-Yves Vinet and Patrice Hello of the VIRGO Project, and was generously shared with LIGO in an early phase of development. It was significantly modified and refined by Brett Bochner (with others at MIT LIGO) whose MIT PhD thesis (Modeling the Performance of Interferometric Gravitational-Wave Detectors with Realistically Imperfect Optics; LIGO P980004-00-R) was based on calculations performed using a version of FFT that ran under the (now antiquated) paragon architecture on the Caltech TREX cluster (upgraded from the original SUN single processor UNIX Fortran version). The most complete description of the basic algorithms, limitations, "operating instructions", and history of FFT are to be found in Bochner's thesis. An extensive cross validation of the PR code with the entirely independent MELODY modal (MatLab based) model (see R. Beausoleil LIGO G010301-00-Z; available from http://www.ligo.caltech.edu) has been performed and is documented by a publication in final draft (LIGO T01…… ). For information on PR MPI FFT please e-mail Ericka d'Ambrosio or Bill Kells. To obtain information and source code for DR MPI FFT please see http://www.csudh.edu/neutrino/ligo and/or send e-mail to Ken Ganezer of CSUDH. Information on the scalar SUN (PR and DR) versions of FFT can also be obtained from Ken Ganezer or George Jennings.