Finesse 2.0

(Frequency domain INterfErometer Simulation SoftwarE)

This is the main page for Finesse 2. If you are just starting, we recommend that you use the latest version, Finesse 3, from https://finesse.ifosim.org/.

Finesse is an interferometer simulation program. It calculates light amplitudes in a user-specified interferometer configuration and can generate output signals for various photo detector types. All calculations are done in the frequency domain, Gaussian beams can be used to model spatial effects. Finesse is open source software distributed for OSX, Linux, and Windows. It has benefited from years of employment by scientists working on gravitational wave detectors.

Finesse is written in C and is compiled into a single binary executable called 'kat'. Today the preferred method of using Finesse is from Jupyter notebooks, using its Python wrapper Pykat (requires Python 3.x.)

Finesse example: Modelling and measuring the signal response of Advanced LIGO by Craig Cahillane, 2019. A sketch of the Advanced LIGO optical setup is shown on the left. The plot on the right shows a comparison of a Finesse model, an analytic computation with measured data from Advanced LIGO. The data shows the signal response (transfer function) of the interferometer to differential arm (DARM) length modulation.

1. Try Finesse online
2. Installing Finesse
3. Running Finesse in a Jupyter notebook
4. Documentation
5. Finesse examples
6. Keep in touch!
7. Tools and Downloads
8. Get the source code


1. Try Finesse online

You can try Finesse in an online Jupyter notebook before you install it on your own computer. The link http://www.gwoptics.org/finesse/binder will open interactive notebook, hosted on https://mybinder.org, in which we have pre-installed Finesse and Pykat. The initial loading of that page will be slow, but then you can play with Finesse in a full Jupyter environment (note that you cannot save your work).


2. Installing Finesse

The recommended and supported way of installing Finesse is via using the 'conda' package manager from Anaconda. You need to download and install Anaconda for Python 3.x from https://www.anaconda.com/.

We recommend creating a dedicated environment, for example using the Anaconda Navigator, or on the command line using the 'conda' command:
conda create --name finesse 
conda activate finesse
To install FINESSE and PYKAT together (recommended) use:
conda install -c gwoptics pykat
We recommend Jupyter notebooks for using Finesse, you can install Jupyter via:
conda install -c anaconda jupyter

We have created a more detailed installation guide for teaching Finesse in workshops and summer schools, available at http://www.gwoptics.org/learn/schools/SoftwareInstall.pdf. Remember that installing Finesse via Conda will not make Finesse accessible system wide. It will only be accessible from the Conda environment you install it in. This typically isn't an issue, as you can set your Conda environment to activate when you start your terminal (on OSX and Linux). On Windows, you can run everything from the Anaconda Prompt as this correctly sets up your environment. Note that Finesse is developed primarily for Linux and macOS, and while it does work on Windows, some features are not available in that system. In case this is a problem, you might consider using the Windows Subsystem for Linux (WSL) and then install Finesse for Linux.

You can sometimes try newer versions of Finesse by directly installing it from the source code, however in general we cannot provide support for installing from source code.


3. Running Finesse in a Jupyter notebook

Once you have Pykat, Finesse and Jupyter installed, open a Jupyter notebook in the environment that they have been installed in.

Below is a simple example program to show how Finesse can be used in a notebook. For further examples and for guidance on getting started with Finesse, we encourage you to explore your Learn interferometry tutorials.

from pykat import finesse
from pykat.commands import * 

kat = finesse.kat()
code = """
l laser 1 0 n1
s space 1 n1 n2
pd pout n2
xaxis laser P lin 1 10 100
"""
kat.parse(code)
out = kat.run()
out.plot()

4. Documentation

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. The online Cheatsheet provides some answers to commonly asked questions.

For an overview of the mathematics involved in interferometry and laser optics, we recommend our free review article Interferometer Techniques for Gravitational-Wave Detection.


5. 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. Many of these examples below are taken from the review article Interferometer Techniques for Gravitational-Wave Detection. Other examples correspond to actual research work, mostly within the gravitational wave community. We encourage people to share their examples in our Interferometer Simulation Logbooks.

Reflection, transmission

Changing the refection and transmission of one mirror. The very first introduction to the Finesse syntax.

Length and Tunings

The phase of a light field reflected from a beam splitter; a short demonstration of how length and positions of optics are handled.

Modulation and Bessel functions

Phase modulation is applied to a laser beam to generate five pairs of sidebands; and the amplitude of the three first harmonics is plotted.

Video of a flashing cavity

How to use Finesse to make a video of the modes flashing in an optical cavity; recreating the typical monitor output of cavity experiments.

Radiation pressure effect

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.

Squeezing and homodyne
detections

We superimpose a laser beam with a squeezed vacuum input and detect the result with quantum noise detectors.

 
Cavity automatic alignment

Computing error signals for a cavity auto-alignment system (and keeping the cavity on resonance with Pound-Drever-Hall).

Virgo arm cavity commissioning

A set of 10 Finesse input files and a technical note describing the detector characterisation regarding the Virgo north arm cavity in 2004.

Advanced LIGO and LG33 modes

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.

Optical spring

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.

Quantum-noise limited sensitivity

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.

Multimode squeezing

A simple example demonstrating the simultaneous squeezing of multiple spatial optical modes.

 

6. Keep in touch!

We have created a dedicated website for sharing simulation examples: Interferometer Simulation Logbooks. Logbooks are a common tool for recording progress in collaborative research projects.

We provide a `finesse-users' mailing list for announcements related to Finesse. To subscribe to this list please send an email to 'finesse-users-request (at) nikhef.nl' with the subject 'subscribe'. Similarly you can unsubstribe by sending an email to the same address with the subject 'unsubscribe'.

If you experience any problem with installing or running Finesse, you can contact us at: 'finesse-support (at) nikhef.nl'

If you are a member of the gravitational wave community (LIGO, Virgo, KAGRA), you can also access the following (Albert.Eistein login):


7. Tools and Downloads

The following links provide direct links to useful downloads related to Finesse.

Zip files of the Finesse executables for Linux, Windows and OS X of the latest stable version can be downloaded here:

8. Get the source code

Finesse is an open source project released under the GPL3 license.
The Finesse source is available at: https://git.ligo.org/finesse/finesse
The Pykat source code can be obtained from: https://git.ligo.org/finesse/pykat