(Frequency domain INterfErometer Simulation SoftwarE)
At GEO 600 we have created a fast and easy to use interferometer simulation to design and debug laser interferometers. We wanted to be able to simulate many different user-defined optical setups and we would like to playfully teach and learn more about laser optics. Finesse has a long pedigree and has benefited from years of real-life employment by the optics groups of gravitational wave detectors. We are committed to adapting the code to new challenges posed by new types of interferometry in future projects, maintaining the code and the trust which has been built through years of testing against experimental results.
|Download||Simple Examples||Tools||Get the Source|
|Syntax Reference||Complex Examples||Documentation||Git repository|
|Finesse Forum||History and Impact||Changes||Redmine page|
Getting started with Finesse!
Trying out Finesse for yourself is very simple. The following steps guide you through the installation of the program and how to run a simple example. To do your own simulations you should read the manual and the syntax reference.
- Download the binary distribution for your operating system (Windows, Linux, OS X) and unzip the zip file. This will create a directory with the following files: kat or kat.exe (the executable) and kat.ini, the initialisation file. In addition, you may want to try the program using my example input files, these have the extension *.kat. Download the examples here: Finesse_examples.zip and copy the *.kat files into the same same folder as the Finesse executable.
- Finesse is a text-based application that you have to run from within a terminal or command window. You can start the program by typing `kat' (or `kat.exe', or `./kat', depending on your OS) which will print a small banner; `kat -h' will give you a short syntax reference for input files; `kat -hh' prints further help.
- If you want Finesse to automatically generate graphical output, you have to have Gnuplot or Python installed and Finesse must know the correct command to start it (see the manual for more details). Finesse also generates a *.m file for each simulation, that can be used with Matlab to plot the result.
- We use PyKat, to do our Finesse simulations from within IPython notebooks, and recommend this as the best way to perform and share real simulation tasks.
Please let me know if the above did not work for you!
Simple Finesse examples
We have collected a number of simple example files available for download as a zip file: Finesse_examples.zip. In addition, this page features several examples that come with more explanation and visualisation in order to illustrate how you can use Finesse. Most of these examples below are taken from the review article Interferometer Techniques for Gravitational-Wave Detection published in Living Reviews in Relativity.
Changing the refection and transmission of one mirror. The very first introduction to the Finesse syntax.
The phase of a light field reflected from a beam splitter; a short demonstration of how length and positions of optics are handled.
Phase modulation is applied to a laser beam to generate five pairs of sidebands; and the amplitude of the three first harmonics is plotted.
How to use Finesse to make a video of the modes flashing in an optical cavity; recreating the typical monitor output of cavity experiments.
Shaking a mirror with light. An amplitude modulated laser beam is reflected of a suspended mirror to create a modulation of the mirror's position, a very simple demonstration of a radiation pressure simulation.
We superimpose a laser beam with a squeezed vacuum input and detect the result with quantum noise detectors.
More complex Finesse examples
This section features examples that correspond to actual research work, mostly within the gravitational wave community. Some are simple, because they relate to quick laboratory tests; some others include the full set of a large gravitational wave detector. If you have an interesting or educational example from your own work, please let me know!
Computing error signals for a cavity auto-alignment system (and keeping the cavity on resonance with Pound-Drever-Hall).
A set of 10 Finesse input files and a technical note describing the detector characterisation regarding the Virgo north arm cavity in 2004.
Modelling an Advanced LIGO arm cavity with the input laser beam being a Laguerre-Gauss (LG33) mode. A mirror surface map based on measured data is applied to the end mirror.
One of the most interesting effects of radiation pressure in interferometry is the optical spring. A slightly detuned cavity is used to create an optical spring between two mirrors.
A simplified Advanced LIGO model is used to plot the quantum-noise limited sensitivity of an advanced gravitational wave detectors with suspended mirrors and high laser power.
A simple example demonstrating the simultaneous squeezing of multiple spatial optical modes.
Get the executable for Linux, Windows and OS X of the latest stable version here. If you experience any problem with installing or running Finesse, please contact us, we are happy to help! You can try newer versions of Finesse by directly installing in from the source code.
- Download Finesse 2.1 for Windows (64bit)
- Download Finesse 2.1 for Windows (32bit)
- Download Finesse 2.1 for Linux (64bit)
- Download Finesse 2.1 for Linux (32bit)
- Download Finesse 2.1 for OS X (64 bit, 10.10 and higher)
- The Finesse manual for 2.x - pdf file with more than 200 pages
- Finesse_examples.zip a set of Finesse example files
- Dowload the free review article Interferometer Techniques for Gravitational-Wave Detection
for more Finesse examples linked to a text-book like introdcution to laser optics
- README - the Finesse README file, a short intro
- INSTALL - installation instructions
- CHANGES - list of changes between revisions
- old download page - other related files and binaries
- Luxor - a graphical user interface for Finesse
The USB flash drive
During the GWADW workshop in May 2014 in Japan we distributed USB flash drives to mark the release of Finesse 2.0. The USB drives contained the latest binaries along with a collection of documents (papers, notes and presentations) about Finesse that may be useful for those interested in optical simulations. Also included are Finesse input files for all the major gravitational wave detectors: Advanced LIGO, Advanced VIRGO, KAGRA, GEO600 and the Einstein Telescope, that you can experiment with. For those who did not attent the workshop we offer the USB drive image for download: finesse_usb_052014.zip (100 Mbytes zip file!)
- The Finesse manual contains an extensive description of the program, describes its basic use as well as several advanced concepts. Furthermore the manual gives a detailed account of the physics and mathematics implemented for the numerical modelling.
- Note that the manual can be slightly out of date. The most recent information about Finesse can be found in the Changes file.
- The online Syntax reference is the best place to learn and recall how to read or write a Finesse input file. In addition starting Finesse with `kat -h' or `kat -hh' prints short help screens to the terminal output.
- For an overview of the mathematics involved in interferometry and laser optics, we recommend our free review article Interferometer Techniques for Gravitational-Wave Detection.
Tools and Utilities
Finesse is designed as a stand-alone program which performs one task per run as specified in a text input file. However, with additional tools or scripts you can greatly extend the power of Finesse. The following list links to pages which provide and explain three such tools:
- PyKat: A new Python wrapper and set of tools for running Finesse, for example, for automating complex tasks or for post-processing simulation results. Try it out in an IPython notebook!
- SimTools: Matlab utility functions for optical simulations. The package includes custom made Matlab functions to be used with Finesse, for example to read/write/edit Finesse input files, read the output files.
- Compute Control matrices: To compute control matrices or, more generally, to perform a sequence of simulations from one single input file you can use the Perl script `mkat'.
- Run Finesse on a Cluster (using Condor): If the simulation task takes a huge amount of computation time you can, in many cases, greatly speed up the computation by using a computer cluster. A Python script for Condor simplifies this process.
- Call Finesse dynamically from Matlab/Octave: Finesse on its own is not very well suited for certain, more complex simulation tasks. For example, if you need non-linear couplings between several parameters or dynamic switching between various parameter tunings. In these cases it is very useful to let Finesse interact with Matlab/Octave. These Mex Files allow you to connect to a Finesse process via a network connection.
- Editor colour scheme for Finesse files: For those who use Emacs, Vim, XEmacs or Notepad++ to create and edit Finesse input files, these syntax highlighting modes should be very useful.
- Luxor is a graphical user interface for Finesse. This GUI written by Jan Harms provides the user with a clean and simple interface to use and run Finesse: You can create the input file graphically and run the simulation with a click of a button. Professional users of Finesse will probably prefer the command line approach as it offers more flexibility and control but Luxor is a great tool for the casual user.
Get the source, join the Finesse development!
Finesse is an open source project released under the GPL3 license. The source is available in a public git repository. We would like you to help us, with feedback and suggestions, by submitting example file or by contributing directly to the code development. Therefore we have setup a Redmine project site for Finesse. On these pages you will find information on the Finesse source code and how to get involved:
- Build Finesse from the source code: short and simple instructions on how to download the source code and compile Finesse.
- Report a bug: If you find a bug, please submit it here, so it will be added to the issues track list.
- Developer Wiki pages: You want to join the development? Find out here how to get started!
- Browse the source code: You can browse the source code online and track the differences between different revisions.
- Changes between different version: This file collects short descriptions of the changes to the latest version of Finesse.
There is also a public and private chat forum for Finesse users: