(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.)
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 finesseTo install FINESSE and PYKAT together (recommended) use:
conda install -c gwoptics pykatWe 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.
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.
detections
We superimpose a laser beam with a squeezed vacuum input and detect the result with quantum noise detectors.
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.
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):
- Finesse chat channel on our Mattermost server: https://chat.ligo.org/ligo/channels/finesse
- Ifosim (interferometer simulaltion) chat chanel: https://chat.ligo.org/ligo/channels/ifosim
- Ifosim mailing list: https://grouper.ligo.org/mailinglists/ifosim
- Ifosim gitlab group to collect optical modelling work: https://git.ligo.org/IFOsim/
- Finesse_playougrund repositories collecting Finesse models: https://git.ligo.org/IFOsim/Finesse_playground
7. Tools and Downloads
The following links provide direct links to useful downloads related to Finesse.
- Editor colour scheme for Finesse files: For those who use VS Code, Emacs, Vim, XEmacs or Notepad++ to create and edit Finesse input files, these syntax highlighting modes should be very useful.
- The Finesse manual for 2.x - pdf file with more than 200 pages
- Finesse_examples.zip - a set of Finesse example files
- Free review article on Interferometer Techniques for Gravitational-Wave Detection
for more Finesse examples linked to a text-book like introduction to laser optics - README.md (README.html) - the Finesse README file, a short intro
- Install.md (Install.html) - installation instructions
- CHANGES - list of changes between revisions
- kat-2.3.1-win_64bit.zip - Finesse 2.3.1 for Windows (64bit)
- kat-2.3.1-linux_64bit.zip - Finesse 2.3.1 for Linux (64bit)
- kat-2.3.1-osx_64bit.zip - Finesse 2.3.1 for OS X (64 bit, 10.10 and higher)
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