2.3 release

main changes: This release contains multiple fixes that have been made over nearly two years. Few additional features have been added in this release, it predominatly has bug fixes for both physics and in general. The features that have been added are still experimental and typically revolve around mode-matching sensing/actuation, so are not suggested to be used currently.

syntax change:

  • Refractive index warning at 4 now instead of 3 due to Silicon test mass modelling being more frequent

added features:

  • Astigmatic lenses: lens** name fx fy node1 node2 lens*** name px py node1 node2 fx,fy,px,py also work as xaxis and put targets. These astigmatic parameters are only available when you define the component with lens** or lens*** otherwise you can only tune with f and p.

  • Overall amplitude of the map applied to a mirror can be changed with the map_amp attribute. Added so that you can lock drag some a map from off to on from some known DC operating point.

  • Modulators can have tilt modulation applied

  • Laser can now fsig modulate the waist size and position effects to compute how beam shape noise transfer functions behave. This will generate the additional n+-2 and m+-2 modes signal sidebands around the carrier field:

     l l1 1 0 n0 
     tem l1 0 0 0 0
     tem l1 2 0 1 0
     s s1 0 n0 n1
     ad a00 0 0 0 n1
     ad a20 2 0 0 n1
     ad u00 0 0 $fs n1
     ad l00 0 0 $mfs n1
     ad u20 2 0 $fs n1
     ad l20 2 0 $mfs n1
     ad u40 4 0 $fs n1
     ad l40 4 0 $mfs n1
     pd1 P $fs n1
     fsig noise l1 z 1 0 1
     # or this for waist modulation fsig noise l1 w0 1 0 1
     maxtem 4
     yaxis abs:deg
  • Can switch off the mode self-coupling term for beam shape modulations above with:

     conf l1 z_fsig_self_coupling 1

    This removes the phase modulation like term that appears with waist position modulation.

  • Xaxis stepping using Kahan summation now to ensure we hit zero more accurately

  • Signal matrix calculations are not performed when computing the DC lock point now. This means that signal matrix calculations cannot be used for computing the DC operating point anymore, however this shouldn't really have been a use case anyway.

bug fixes:

  • tf2 won't add duplicate of a real pole/zero, it only adds a conjugate if it's a complex ones
  • Minus sign fixes have been applied for suspended components: mirrors and beamsplitters this doesn't seem to have affected any results shown before, but does affect the sign of some transfer functions. The minus sign problem was the direction in which a mirror moves relative the force applied to it.
  • RF frequency mixing matrix wasn't getting reset between runs and causing spurious frequency couplings
  • Fixed problem with small signals jumping between being either a TF or a signal, getting an odd factor of two occasionally
  • Beamsplitter fsig targetting z was not being applied
  • $fs was not working correctly when fsig was first frequency and RF the second
  • Beam trace wasn't taking into account axis flip for sagittal plane on reflection which leads to the wrong cavity parameters being show for odd-number mirror cavities. This doesn't affect any actual calculation of optical fields amplitudes, just detector and trace outputs.
  • Windows named pipe correctly closed, hopefully stops Windows pykat connection being dropped when too many connections are left open.
  • Rebuild flag for knm calculations was getting overwritten for m and bs when using x2axis, this is fixed now.
  • Laser frequency modulation amplitude factor is now fixed, erroneous 4pi factor
  • segfault when using slink fixed
  • modulator phase fsig lower sideband conjugate missing, now included
  • dbs component now checks refractive index differences stopping weird beam parameter propagations.