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 | ||
| cavcavity | ||
| dbs | ||
| gaussgauss*gauss** | ||
| gouy | ||
| isoldiode | ||
| llaserlight | ||
| lenslens*lens**lens*** | ||
| mm1m2mirror | ||
| mod | ||
| sqsqueezer | ||
| sspace | 
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 massattr 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) | ||
| funcsetputput* | Replaced with KatScript Expressions and references. | |
| lambdalambda0 | ||
| locklock* | ||
| mask | Replaced by  maskproperty 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 | ||
| tem | ||
| varvariableconst | 
Axes¶
| Legacy name(s) | New name(s) | Python API | 
|---|---|---|
| noxaxis | N.B. This is now the default when no analyses are specified. | |
| 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\) |