------------------------------------------------------------------------ FINESSE 0.99.8 o_.-=. (\'".\| Frequency domain INterferomEter Simulation SoftwarE .>' (_--. _=/d ,^\ 21.01.2010 A. Freise (afreise@googlemail.com) ~~ \)-' ' / | INSTALL ' ' ------------------------------------------------------------------------ 1. Introduction 2. Installation 3. Short Syntax Reference 4. Further development 5. Copyright and Disclaimer ________________________________________________________________________ 1. Introduction This is a short guide for installing and running FINESSE. Please see `Finesse-0.99.8.pdf' (or later) for the manual and `CHANGES' for the latest additions. If you have any problems, suggestions or advice, please don't hesitate to contact me. FINESSE is a interferometer simulation program written in C. It calculates light amplitudes in a user specified interferometer configuration. It can generate output signals for various photo detector types. All calculations are done in the frequency domain (i.e. a steady state is assumed). This is done (in the following order) by: - reading a text input file which describes the interferometer and the computation task - generating the set of linear equations which describes the coupling of the light amplitudes - solving numerically the linear equation system for each data point and calculating the output signals - writing the data into an output file - writing a Gnuplot file and a Matlab file, which can be used for plotting data. FINESSE can further automatically start Gnuplot to plot the data to the specified terminal (X11, postscript,...) 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. Furthermore, an x-axis has to be specified, i.e. which parameters are to be tuned. When starting the program this input file is read and the specified data is calculated. The program writes several text files: - the file with extension `.out' contains the calculated data - a file with extension `.gnu' is a batch file for Gnuplot - similarly a file with extension `.m' is a Matlab script file - in addition all screen output is stored in a logfile (extension `.out'). By default Gnuplot is then started to plot the data. FINESSE uses Gnuplot to generate plots of the calculated data. Gnuplot is a free program available for different operating systems. If you don't have Gnuplot installed yet, you should do so. To download it look at http://www.gnuplot.info. Alternativly you can use the command `gnuterm no' to prevent FINESSE from starting Gnuplot and use the Matlab scripts to plot the data instead. The backbone of the program is based on the source code of a program called LISO which is written by Gerhard Heinzel. He kindly allowed me to copy his code which saved me a lot of time and trouble. Currently Paul Cochrane is adding a quantum noise extension to FINESSE while at the same time improving and restructuring the entire source code. ________________________________________________________________________ 2. Installation There are binaries available for several operating systems. After downloading the appropriate package for your operating system from http://www.gwoptics.org/finesse/ you can install FINESSE simply by unpacking the zip (or tar.gz) file. This will create a directory `Finesse0998' with all the necessary files. In addition you can download a small collection of simple example files. These examples should run on any system but probably you won't get any graphical output without changing some default settings (see below). You should use FINESSE from a console window. First you need to change into the working directory which contains all required files (the FINESSE binary 'kat', the init file 'kat.ini' and an interferometer input file). If you call the program by typing `kat' on the console without any option or filename a short message on the usage will be displayed. Using the option `-h' a short help screen with a short syntax reference is printed (i.e. `./kat -h' or `kat.exe -h'). If you want automatically plot the results you need to have Gnuplot installed. Furthermore you must tell FINESSE where to find the Gnuplot executable. This is done by editing the file `kat.ini'. Unix: you can easily find the Gnuplot executable with the command `which gnuplot'. This should show the full path, e.g. `/usr/bin/gnuplot'. Next open `kat.ini' with a text editor and change the line beginning with `GNUCOMMAND' to: GNUCOMMAND "/usr/local/bin/gnuplot -persist" Windows: you can use the `find' function of the Explorer to find the Gnuplot executable. Then open `kat.ini' with a text editor and change the line beginning with `GNUCOMMAND'. E.g. to: GNUCOMMAND "c:\Programme\gnuplot\Wgnuplot.exe FILENAME" Now you should be able to start FINESSE with an example file (assuming you have copyied the respective files into a working directoy). E.g.: ./kat 3D.kat (for Unix) and kat.exe 3D.kat (for Windows) This starts FINESSE which will print some text to the console that will look like this: adf@lp32:~/kat/new/io > ./kat 3D.kat ------------------------------------------------------------------------ FINESSE 0.99.6 (build 3007) o_.-=. Frequency domain INterferomEter Simulation SoftwarE (\'".\| 26.02.2008 A. Freise (freise@rzg.mpg.de) .>' (_--. _=/d ,^\ Input file 3D.kat, ~~ \)-' ' Output file 3D.out, / | Gnuplot file 3D.gnu ' ' Tue Feb 26 12:01:12 2008 ------------------------------------------------------------------------ ** plotting only one output (use 'multi' to plot all). 100% writing gnuplot/matlab batch files... calling gnuplot... FINESSE writes the calculated data into the file `3D.out' and a batch file `3D.gnu'. Then Gnuplot is started and the data from `3D.out' is plotted (the plot from this example was used for the cover picture for the manual). ________________________________________________________________________ 3. Short Syntax Reference for FINESSE 0.99.8 : ------------------------------------------------------------------------ FINESSE 0.99.8 - Help Screen - A. Freise 21.01.2010 ------------------------------------------------------------------------ ** usage (1) kat [options] infile [outfile [gnufile]] or (2) kat [options] basename in (2) e.g. basename 'test' means input filename : 'test.kat', output filename : 'test.out' and Gnuplot batch filename : 'test.gnu'. ** Available options : -v : prints version number and build date -h : prints this help (-hh prints second help screen) -c : check consistency of interferometer matrix -max : prints max/min --server : starts Finesse in server mode --noheader : suppresses header information in output data files --perl1 : suppresses printing of banner --quiet : suppresses almost all screen outputs -sparse, -klu : switch to SPARSE or KLU library respectively ** Available interferometer components : l name P f [phase] node - laser m name R T phi node1 node2 - mirror (or: m1 name T Loss phi ... m2 name R Loss phi ... ) s name L [n] node1 node2 - space bs name R T phi alpha node1 node2 node3 node4 - beamsplitter (or: bs1 name T Loss phi ... bs2 name R Loss phi ... ) isol name S node1 node2 - isolator mod name f midx order am/pm [phase] node1 node2 - modulator lens f node1 node2 - thin lens ** Detectors : pd[n] name [f1 [phase1 [f2... ]]] node[*] - photodetector [mixer] pdS[n] name [f1 phase1 [f2... ]] node[*] - sensitivity pdN[n] name [f1 phase1 [f2... ]] node[*] - norm. photodetector ad name [n m] f node[*] - amplitude detector shot name node[*] - shot noise bp name x/y parameter node[*] - plots beam parameters cp cavity_name x/y parameter - plots cavity parameters gouy name x/y space-list - plots gouy phase beam name [f] node[*] - plots beam shape qshot name num_demod f [phase] node[*] - quantum shotnoise detector qshotS name num_demod f [phase] node[*] - quantum shotnoise sens. ** Available commands : fsig name component [type] f phase [amp] - signal tem input n m factor phase - input power in TEMs mask detector n m factor - mode mask for outputs pdtype detector type-name - set detector type attr component M value Rcx/y value x/ybeta value - attributes of m/bs (alignment angles beta in [rad]) map component [angle] [mapname] filename - read mirror map file savemap component mapname filename - save coefficients to file maxtem order - TEM order: n+m<=order gauss name component node w0 z [wy0 zy] - set q parameter gauss* name component node q [qy] (q as 'z z_R') - set q parameter cav name component1 node component2 node - trace beam in cavity startnode node - startnode of trace retrace [off] - re-trace beam on/off deriv_h value - set deriv_h for diff phase 0-7 (default: 3) - change Gouy phases (1: phi(00)=0, 2: gouy(00)=0, 4: switch ad phase) ** Plot and Output related commands : xaxis[*] component param. lin/log min max steps - parameter to tune x2axis[*] component param. lin/log min max steps - second x-axis for 3D plot noxaxis - ignore xaxis commands const name value - constant $name variable name value - variable $name set name component parameter - variable $name func name = function-string - function $name lock[*] name $var gain accuracy - lock: make $var to 0 put component parameter $var/$x1/$x2 - updates parameter noplot output - no plot for 'output' trace verbosity - verbose tracing yaxis [lin/log] abs:deg/db:deg/re:im/abs/db/deg - y-axis definition scale factor [output] - y-axis rescaling diff component parameter - differentiation deriv_h value - step size for diff ** Auxiliary plot commands : gnuterm terminal [filename] - Gnuplot terminal pause - pauses after plotting multi - plots all surfaces GNUPLOT \ ... \ END - set of extra commands for plotting. ________________________________________________________________________ 4. Further development I am still finilaising a new feature that enables Finesse to apply mirror surface maps. The next major change will possibley be to inlcude a more correct description of quantum noise, i.e. including possible correlations between shotnoise and radiation pressure noise. Gratings components have been added to FINESSE in order to study all-reflective interferometers. However, the gratings are not yet available with all features; this is work in progress. And in addition, I would like to add the following features (as soon as I find time): - modulators for which the user can specify the "carrier" frequency. would solve the "sidebands of sidebands" problem (see manual). - beam analyser should perform a mode decomposition when (optionally) a beam parameter is given 5. Copyright and Disclaimer FINESSE and the accompanying documentation and the example files have been written by: Andreas Freise School of Physics and Astronomy University of Birmingham B15 2TT Birmingham UK afreise@googlemail.com Parts of the FINESSE source and `mkat' have been written by Gerhard Heinzel, the document `sidebands.ps' by Keita Kawabe; parts of the code have been written by Paul Cochrane. THE SOFTWARE IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND. Copyright (c) by Andreas Freise 1999-2010 For the moment I only distribute a binary version of the program. You may freely copy and distribute the program for non-commercial purposes only. Especially you should not charge fees or request donations for any part of the FINESSE distribution (or in connection with it) without the author's written permission. No other rights, such as ownership rights, are transferred.