STAIC

Software Tools for Advanced
Interferometer Configurations

Chair: Ken Strain


Last Workshop:

Joe Giaimie hosted the last STAIC-workshop. It was held on monday 03/20th and Tuesday 03/21st at Louisiana State University in Baton Rouge.
Thanks again to Joe Giaimie and Warren Johnson for organizing everything.

This is the homepage of the STAIC-group, which is part of the Advanced Interferometer configurations working group in the Ligo Scientific collaboration (LSC).

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:


List of Programs:


Back to Top

The End to End model

contact Hiro Yamamoto .

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/


Back to Top

MELODY - Thermal distortion in LIGO-interferometers

written by Ray Beausoleil.

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 .


Back to Top

LISO - Program for Linear Simulation and Optimization of analog electronic circuits

written by Gerhard Heinzel.

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:

The frequency response of several interesting circuits had been found analytically by the author using Mathematica, assuming ideal op-amps. The attempt to extend these analytical models to real op-amps showed, however, that the analytical solutions very quickly become too complex to be useful. In particular the noise behavior gets very complicated to compute. SPICE models provided by op-amp manufacturers do usually not correctly predict the noise behavior of the circuits. Therefore a program was written that computes these aspects of a given circuit numerically.

LISO is available at ftp.rzg.mpg.de/pub/grav/ghh/liso/


Back to Top

OptoCad

written by Roland Schilling .

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/


Back to Top

DRint - Simulation program for Michelson based interferometers

written by Jun Mizuno. Contact Andreas Freise for more informations.

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/


Back to Top

InterCal

written by Guido Mueller.

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/.


Back to Top

GLIC

written by Ken Strain.

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/ .


Back to Top

ad_resp and fp_dyn

written by Malik Rakhmanov.

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.


Back to Top

Twiddle

contact Jim Mason.

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.


Back to Top

Finesse

written by Andreas Freise.

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


Back to Top

Rsenoise

contact Jim Mason.

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


Back to Top

Isolation model constructor

contact Wensheng Hua, Brian Lantz, Sam Richman.

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


Back to Top

FFT Full Field Relaxation Code

contact Ken Ganezer, George Jennings, Ericka d'Ambrosio, Bill Kells.

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.