You are here: Wiki_Virgo_LSC>Main Web>OptSimulation (25 Jun 2018, JeromeDegallaix)Edit Attach

Advanced Virgo Optical Simulations

This pages motivates and introduces the optical simulation tools in use at Virgo

The development of optical simulation tools is one of the primary goals of the previous Optical Simulation and Design (OSD) subsystem of Virgo.

Simulations task list

Why simulations?

Inside Advanced Virgo (AdV), the EM fields are complex and difficult to model analytically, especially in the presence of asymmetries, mirror defects, and 3D setups.

Consequently, simulations are an essential part of the baseline design phase of any part of AdV. What's more, an updated and relevant set of simulation tools is crucial to the construction phase to check the design consistency, by inputing simulations with real mirror parameters and results from the pre-commissioned subsystems (such as the laser, TCS systems).

Furthermore, simulations are essential to the commissioning phase. Indeed, the multiplicity of tools allows for cross-checks, and decreases the risk of errors.

Finally, the development phases of such tools in various laboratories of the Virgo Collaboration themselves allow for a better comprehension of the results and increases local experience of optical simulation.

Families of simulation tools

The complexity of the optical phenomena occurring in the Virgo interferometer brings many diverse and specialized approaches to the simulation of these phenomena. We will review the five main approaches to optical simulation, which are:
  • FFT codes
  • modal codes
  • ray tracing codes
  • time domain simulations
1. Modal Codes

These codes expand the electric field on a base of Hermite-Gauss or Laguerre-Gauss modes. In AdV, the convenient base is that formed of the eigenmodes of the perfect and cold 3-km cavity (with no thermal effects).

These codes are in general very useful in the early phases of the design, in which no large defects are considered, since a low number of modes is required. As it has been showed by works carried out inside the OSD group, the precision and convergence of these codes must be carefully checked when they are used to reproduce marginally stable cavities or small spatial defects.

Only those tools currently can simulate properly the quantum effects (radiation pressure noise and shot noise) or complex optomechanical interactions (optical spring for example). Modal expansions are also very handy to calculate transer functions.

Let us mention:
  • Finesse (C, soon Python), note that Finesse also supports quantum noise calculations (filtering cavities for example)
  • Optickle (MATLAB)
Page for the finesse installation and use
Finesse installation

Installation 101 to run Finesse within a Python notebook.

  1. blah blah install this find here
  2. and that / that
  3. and do not forget that

Exemple of notebook
How to compile the finesse executable

The latest version of Finesse can be found here: To install the latest packages, the following commands (for linux) can be used:

git clone
git clone
And also from: (must use the graphical interface there unless you have an account)

Then go to the /finesse directory and use:

git pull
make realclean
./ --build

If you are missing the GNU Scientific Library (GSL), you have to install it manually, that is the development version which is necessary:

sudo apt-get install libgsl0-dev

2. FFT Codes

In the Fast Fourier Transform (FFT) codes, the electric field is expanded in plane wave components through FFT transform. The plane waves are propagated independently through free space and optical components according to the laws of geometrical optics. The resulting steady-state fields are computed by inverse Fourier transform and recombined to form the final electric field in the setup.

The advantage of these codes is the fact that no priors on the fields are needed and that they can give precise results. The drawback is that these code are in general slower than modal codes and their use is probably less effective in the first phases of the design.

4. Ray Tracing Codes

In a ray tracing code simulation, input beams and an optical setup are specified as input. The input beams are then traced through the setup, either recursively (non-sequential tracing, the code determines itself which optics are impacted by which beams) or not (sequential tracing, the order of the impacts of the beams on the optics is an input from the user). The beams' axises are calculated according to the laws of geometrical optics, and their Gaussian parameters according to methods such as phase matching on the surface of the optics.

These are general codes which each offer special features (cavities, interferences, reverse ray tracing). These codes are most useful during design phases as well as during commissioning phases for ghost beam hunting, optimization and adjustments of optical benches, especially when they allow scripting.

Main software:
5. Time Domain Simulation

Members of LIGO developed the end-to-end model (E2E), which is a time domain modal code which includes many effects, including radiation pressure. It is extremely slow, but useful for studying interferometer dynamics (and in particular, transient effects).
Noise Calculator

The Gravitational Wave Interferometer Noise Calculator (GWINC) does not actually simulate an interferometer, but calculates the contributions of various noise sources and the resulting detection ranges for specific astrophysical sources.
  • GWINC (MATLAB), available on the local Virgo SVN repository
-- Main.Duque - 23 Aug 2017
Topic revision: r11 - 25 Jun 2018, JeromeDegallaix
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Wiki_Virgo_LSC? Send feedback