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 |
|---|---|---|
bsbs1bs2beamsplitter |
Beamsplitter |
|
cavcavity |
Cavity |
|
dbs |
DirectionalBeamsplitter |
|
gaussgauss*gauss** |
Gauss |
|
gouy |
Gouy |
|
isoldiode |
Isolator |
|
llaserlight |
Laser |
|
lenslens*lens**lens*** |
Lens |
|
mm1m2mirror |
Mirror |
|
mod |
Modulator |
|
sqsqueezer |
Squeezer |
|
sspace |
Space |
Detectors
Legacy name(s) |
New name(s) |
Python API |
|---|---|---|
ad |
AmplitudeDetector |
|
beam |
CCDCCDScanLineCCDPixel |
|
bp |
BeamPropertyDetector |
|
xd |
MotionDetector |
|
pd[n] |
PowerDetectorPowerDetectorDemod1PowerDetectorDemod2 |
|
qnoised[S/N] |
QuantumNoiseDetectorQuantumNoiseDetectorDemod1QuantumNoiseDetectorDemod2 |
|
qshot[S/N] |
QuantumShotNoiseDetectorQuantumShotNoiseDetectorDemod1QuantumShotNoiseDetectorDemod2 |
Commands
Legacy name(s) |
New name(s) |
Python API |
|---|---|---|
attr |
Replaced with arguments to the relevent components.
|
See relevent component constructors.
|
attr massattr tf |
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 |
|
funcsetputput* |
Replaced with KatScript Expressions and references.
|
SymbolParameter.ref |
lambdalambda0 |
Model.lambda0 |
|
locklock* |
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_levelModel.phase_config |
retrace |
Not implemented.
|
Model.sim_trace_config |
startnode |
TraceDependency.priority |
|
tem |
Laser.tem |
|
varvariableconst |
Variable |
Axes
Legacy name(s) |
New name(s) |
Python API |
|---|---|---|
noxaxis |
N.B. This is now the default when no analyses are specified.
|
Noxaxis |
xaxisx2axisx3axis |
XaxisX2axisX3axis |
|
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\) |