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
Beamsplitter
cav
cavity
Cavity
dbs
DirectionalBeamsplitter
gauss
gauss*
gauss**
Gauss
gouy
Gouy
isol
diode
Isolator
l
laser
light
Laser
lens
lens*
lens**
lens***
Lens
m
m1
m2
mirror
Mirror
mod
Modulator
sq
squeezer
Squeezer
s
space
Space

Detectors

Legacy name(s)

New name(s)

Python API

ad
AmplitudeDetector
beam
CCD
CCDScanLine
CCDPixel
bp
BeamPropertyDetector
xd
MotionDetector
pd[n]
PowerDetector
PowerDetectorDemod1
PowerDetectorDemod2
qnoised[S/N]
QuantumNoiseDetector
QuantumNoiseDetectorDemod1
QuantumNoiseDetectorDemod2
qshot[S/N]
QuantumShotNoiseDetector
QuantumShotNoiseDetectorDemod1
QuantumShotNoiseDetectorDemod2

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.
Model.add_frequency
fsig name f
(Setting the frequency)
Model.fsig
fsig name comp ...
(Applying a signal)
SignalGenerator
func
set
put
put*
Replaced with KatScript Expressions and references.
Symbol
Parameter.ref
lambda
lambda0
Model.lambda0
lock
lock*
Lock
mask
Replaced by mask property of the relevant detector.
MaskedDetector.mask
maxtem
Model.modes
pdtype
Use pdtype keyword argument for detectors
Use pdtype keyword argument for detectors
phase
Not implemented.
Model.phase_level
Model.phase_config
retrace
Not implemented.
Model.sim_trace_config
startnode
Replaced by priority argument to gauss / cav.
TraceDependency.priority
tem
Laser.tem
var
variable
const
Variable

Axes

Legacy name(s)

New name(s)

Python API

noxaxis
N.B. This is now the default when no analyses are specified.
Noxaxis
xaxis
x2axis
x3axis
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\)