Skip to content
Tags give the ability to mark specific points in history as being important
  • 3.0a27 protected
    - Allow detectors and ports to be visualized with component_tree method. See an example in the [docs](
    - Fix `finesse.gaussian.HGMode` ignoring shape of the given y vector when n=m.
    - Option to keep only a subset of symbols in symbolic `Model.ABCD` method
    - Add options to specify the plane of incidence for a beamsplitter and to misalign a beamsplitter
    - Add pytest-xdist and configure it for faster (parallel) test running
    - Fix slow optimal q detector test slowdown
    - Fix broken cli test overwriting user config
  • 3.0a26 protected
    - Fixed inadvertently adding cython as a runtime dependency in 3.0a25
    - Added documentation on defining manual beam parameters
    - Expanded docstring on mirror curvature
    - Better error message for degree of freedom illegal self referencing
    - Generate conda files automatically from pyproject.toml
  • 3.0a25 protected
    - Add support for numpy2: Release compiled with numpy2, backwards compatible up to numpy 1.22
    - allow masses and moments of inertia to change during simulations (kevin)
    - Expand example 7 to include plot in dB's. (aaron jones)
    - Documentation page on using python API to create and visualize models (plus improvements on default graph visualization)
    - Documentation page on how to use maps on lenses and mirrors (Daniel)
    - allow quantum noise detectors to run when there is no fsig set. In such cases no workspace is returned for the detector so it won't be computed (Daniel)
  • 3.0a24 protected
    New features
    Add FrequencyResponse4 action:
    add plot_field method to EigenmodesSolution:
    Documentation changes
    Documentation on degree of freedom command/component:
    new example: inference on RoC to examples:
    Adding a link to the finesse-ligo documentation:
    Fix/benchmark creation tests:
    Fix/641 ignore hidden folders during pyx files compilation checks:
  • 3.0a23 protected
    - Fix memory leak issue during model building
    - Changing the 'disabled' argument of the Lock component to 'enabled' to avoid double negative if conditions in the code
    - Minor performance fixes
    - Fix for the Optimizer action that would sometimes leave the model in an incorrect state after optimization
    - "Did you mean" suggestions for katscript keyword arguments on syntax errors
    - Adds warning for unreasonable katscript line lengths and better message on parsing recursion errors
    - Evaluate symbolic references in the component info tables
    - allows overlap_contour to work with (qx,qy) input
  • 3.0a22 protected
    - phase_config now locked when the model is built
    - Symbol.lambdify was added to change Finesse symbolic expressions into a Python callable function
    - Added initial benchmarking tests for tracking performance changes over time
    - KnmMatrix.plot can be set to amplitude or phase now with the mode option
    - Locks now throw an explicit exception LostLock when it fails
    - Added Matplotlib helper function that plots arrows along a line at several points
  • 3.0a21 protected
    Adds support for Python 3.12
  • 3.0a20.post8 protected
    Even more CI fixes for 3.0a20
  • 3.0a20.post7 protected
    Even more CI fixes for 3.0a20
  • 3.0a20.post6 protected
    Even more CI fixes for 3.0a20
  • 3.0a20.post5 protected
    More CI fixes for 3.0a20
  • 3.0a20.post4 protected
    More CI fixes for 3.0a20
  • 3.0a20.post2 protected
    7afdd7f0 · allow master runs for CI ·
    more CI fixes
  • 3.0a20.post1 protected
    7afdd7f0 · allow master runs for CI ·
    more CI fixes
  • 3.0a20.post3 protected
    7afdd7f0 · allow master runs for CI ·
  • 3.0a20.post0 protected
    Fixing CI pipeline
  • 3.0a20 protected
    - Python 3.8 support dropped:
    - Matplotlib 3.8 now works: 
    - FrequencyResponse action fixed when using two element frequency vector:
    - Now compiles with Cython 3, provides better debugging. Performance seems similar but not yet confirmed.
    - Can trace beams in reverse for propagating through isolating components:
    - Wavefront curvature added to the beam propagation data:
    - KatScript will now take the Python class name as an option for elements and actions:
    - EigenmodeSolution for a cavity now has method to compute roundtrip loss:
    - Map now has a `remove_piston` term method:
    - New `DCFields` action to return a solution containing the DC optical fields at every node and frequency:
  • 3.0a19 protected
    d04610ee · fixing revert error ·
    - Requiring Matploblib < 3.8 until fixes are made for plotting routines
    - Parameters that are external controlled, such as those set by a DegreeOfFreedom will explicitly shown the symbolic reference now as opposed to hiding it. See #571
  • 3.0a18 protected
    - Fixed FieldDetector not conjugating lower sideband
    - Fixed DegreeOfFreedom using custom AC_IN and AC_OUT not filling the matrix correctly
    - Variable element removed, now calls model.add_parameter instead. this means some code using `var.value.value` will no longer work.
    - Added extra factorisation step when refactor returns a singular matrix with KLU, a warning will show when this happens.
    - Model.display_signal_blockdiagram now takes nodes name list and only show paths with those nodes in for cleaner diagrams
    - Model.path can take a symbolic=True keyword argument now for calculating symbolic path lengths
    - phase_level deprecated and replaced with model.phase_config method
    - unparing unsupported KatScript values will result in a __FIX_ME__ token
    - Parameters now support boolean checks
    - Python 3.11 wheels now built
    - SetLockGains now just optimises gains and not demodulation phases
    - OptimiseRFReadoutDemodPhaseDC now accepts Readout detector outputs `REFL9_I` or `REFL9_Q` for example, to optimise for either quadrature. Readout names supported and will default to `_I` with a warning
    - Fixed Hello-Vinet function `substrate_thermal_expansion_depth` #567
  • 3.0a17 protected
    - Fixing block diagram generation for signal paths
    - DOF has simpler interface for specifying just a DC actuation instead of using LocalDegreesOfFreedom
        - This also allows user to specify their own AC connections to the DOF.AC.i and DOF.AC.o as they see fit
    - Reworking signal node and port connections and attached_to attributes so they work
    - Wires now connect anything to anything, had some logic about input and output that isn't needed anymore. Wires also have a gain now for simply rescaling inputs before summing with multiple other signal nodes