Finesse 2 support

Supported legacy syntax

Finesse 3 supports most common Finesse 2 syntax via its legacy parsing mode. Legacy parsing is available either via the Command line interface (using --legacy) or in Python using Model.parse_legacy() or Model.parse_legacy_file().

The Finesse 2 syntax supported by the legacy parser is listed below, along with links to the relevent Finesse 3 KatScript syntax and Python API. Directives not listed below are not supported. The supported parameters for each directive can be found in the Finesse 2 manual.

Warning

Support for Finesse 2 script support is only provided as a convenience to assist in transitioning to Finesse 3. New scripts should always be written in Finesse 3 script.

Components

Legacy name(s)

New name(s)

Python API

bs
bs1
bs2
beamsplitter
cav
cavity
dbs
gauss
gauss*
gauss**
gouy
isol
diode
l
laser
light
lens
lens*
lens**
lens***
m
m1
m2
mirror
mod
sq
squeezer
s
space

Detectors

Legacy name(s)

New name(s)

Python API

ad
beam
bp
xd
pd[n]
qnoised[S/N]
qshot[S/N]

Commands

Legacy name(s)

New name(s)

Python API

attr
Replaced with arguments to the relevent components.
See relevent component constructors.
attr mass
attr tf
Replaced with dedicated mechanics components e.g. pendulum, free_mass.
See components under components.mechanical.
fadd
(Implemented in Finesse 3 as
freq name frequency)
Not implemented.
fsig name f
(Setting the frequency)
Model.fsig
fsig name comp ...
(Applying a signal)
func
set
put
put*
Replaced with KatScript Expressions and references.
lambda
lambda0
lock
lock*
mask
Replaced by mask property of the relevant detector.
maxtem
pdtype
Use pdtype keyword argument for detectors
Use pdtype keyword argument for detectors
phase
Not implemented.
Model.phase_config
retrace
Not implemented.
startnode
Replaced by priority argument to gauss / cav.
tem
var
variable
const

Axes

Legacy name(s)

New name(s)

Python API

noxaxis
N.B. This is now the default when no analyses are specified.
xaxis
x2axis
x3axis
yaxis
Not implemented.
Model.yaxis
scale
Not implemented.
Not implemented.

Internal differences from Finesse 2

Modulator sideband amplitudes

Finesse 2 uses a Bessel function routine optimised for speed of calculation. This causes modulator field amplitudes to be incorrect by a small amount only for extreme values of modulation depth when more than one modulation is performed. Finesse 3 uses a correct implementation, and so will differ from Finesse 2 slightly.

The following table lists the modulation indices for which Finesse 2’s error is distinguishable from numerical noise (greater than \(10^{-14}\)):

Order, \(n\)

Modulation index, \(m\)

1

Always Correct

2

\(0.482 \le m \le 2.0\)

3

\(0.958 \le m \le 3.0\)

4

\(2.128 \le m \le 4.0\)

5

\(2.920 \le m \le 5.0\)