finesse_virgo.virgo.Virgo

Overview

class finesse_virgo.virgo.Virgo(files_to_parse=None, display_plots=False, thermal_state=None, use_3f_error_signals=False, with_apertures=False, maxtem=None, verbose=False, x_scale=1, zero_k00=False, add_locks=True, parse_additional_katscript=False, control_scheme=None)[source]

Bases: object

Container for the Virgo tuning script which houses and configures the model through individual steps producing a tuned interferometer.

Parameters:
files_to_parsestr or list of str, optional
File name(s) or directory name to use when parsing.

When a directory name is given, all files with ending .kat will be parsed in alphabetical order. A file name can be given as a string, several file names will be provided as a list of strings. If this variable is not empty, common file included in the package will be used.

display_plotsbool, optional

Automatically display plots for certain methods.

thermal_statestr, optional

Thermal configuration to use when creating the model.

use_3f_error_signalsbool, optional

Sets the control scheme to use the 3f error signals.

verbosebool, optional

Class-wide option to set the verbosity.

add_locksbool, optional
If unset, will skip parsing the locks. Use when the locks should not be

added on initialization.

parse_additional_katscriptbool, optional
If set, will parse the accompanying additional katscript file. Use when

parsing only a modified common file rather than a pretuned file.

x_scalefloat, optional
  • Convenience function to set the x_scale.

zero_k00bool, optional
  • Convenience function to set zero_k00 phase configuration.

with_aperturesbool, optional
  • Convenience function to automaticaly apply apertures to the mirror.

maxtemstr|int|tuple, optional
  • Convenience function to set the modes. Valid options: ‘off’, number

    of maxtem, or tuple with modes and maxtem, e.g., (‘even’, 4).

Properties

Virgo.sensing_matrix

Return the sensing matrix if it exists, otherwise calculate it.

Methods

Virgo.__init__([files_to_parse, ...])

Virgo.add_locks()

Adds the locks contained within the control scheme.

Virgo.adjust_PRC_length()

Virgo.adjust_SRC_length()

Virgo.adjust_recycling_cavity_length(cavity, ...)

Adjust cavity length so that it fulfils the requirement:

Virgo.apply_aperture(mirror[, diameter])

Applies a circular aperture surface map to the mirror.

Virgo.apply_dc_offset([verbose])

_summary_

Virgo.deepcopy()

Virgo.deg2m(deg[, inverse])

Virgo.dof_from_lock(lock)

Extracts the name of the dof controlled by the lock.

Virgo.dof_plot(dof, detector[, axis, ...])

Sweep across a DoF, reading out at the provided detector.

Virgo.get_DARM([dof, readout_port, ...])

Return the DARM transfer function.

Virgo.get_QNLS([axis])

Virgo.get_dof_lock(dof)

Returns the lock object currently enabled for the DOF.

Virgo.get_dof_tunings()

Returns a dictionary of dof tunings, keyed by dof.

Virgo.get_dofs()

Virgo.get_dofs_by_component()

Returns a dictionary, keyed by component name, with a list of dof/amp pairs driving each component.

Virgo.get_dofs_dc()

Virgo.get_error_signals()

Returns a list of error signals, keyed by dof.

Virgo.get_optical_gain(dof_in, dof_out[, ...])

Virgo.get_phi_tunings()

Returns a dictionary of phi tunings, keyed by optic.

Virgo.get_powers()

Return a dictionary of carrier powers keyed by detector.

Virgo.get_sensing_matrix([dofs, readouts, d_dof])

Calculate and return a new sensing matrix.

Virgo.get_settings()

Returns a curated list of important settings from the model.

Virgo.get_tuning(name)

Return the full phi + DC tuning for the optic/dof.

Virgo.get_tunings([include, meters])

Sums together current phi position and all dof contributions.

Virgo.init_control_scheme()

Virgo.make([verbose, dc_lock])

Performs full make process.

Virgo.optimize_TL([accuracy, verbose])

Optimizes the focal point of the thermal lenses by minimizing a figure of merit as defined by the opt_tl detector.

Virgo.optimize_demodulation_phase([dofs, ...])

Optimize the demodulation phases.

Virgo.optimize_lock_gains([sensing_matrix, ...])

Virgo.plot_DARM([dof, readout_port, axis, ax])

Plots the DARM TF.

Virgo.plot_QNLS([axis, ax, shot_noise_only])

Plots the quantum noise limited sensitivity.

Virgo.plot_error_signals([xscale, range, ...])

Plot grid of error signals.

Virgo.plot_powers([xscale, figsize])

Plot grid of dof plots of interest when pretuning.

Virgo.plot_radar(readout[, dofs, ...])

Plots a radar plot for a readout according to the sensing matrix.

Virgo.plot_sensing_matrix([dofs, readouts, ...])

Plots the sensing matrix as a grid of radar plots.

Virgo.pretune([verbose])

Virgo.print_dofs([msg])

Virgo.print_error_signals()

Display a table of DOFs, the readout error signals, and their current values.

Virgo.print_info()

Virgo.print_lengths()

Virgo.print_locks([gain_adjustments])

Virgo.print_powers()

Display a table listing the carrier powers and power ratios.

Virgo.print_pretune_status()

Virgo.print_sensing_matrix()

Convenience function for get/plot/print nomenclature consistency.

Virgo.print_settings()

Virgo.print_thermal_values()

Virgo.print_tunings()

Virgo.sensing_W_to_m(watts, dof[, ...])

Uses the sensing matrix to convert the dof readout power from Watts to meters and vice versa.

Virgo.set_dof_tunings(dof_tunings)

Virgo.set_phi_tunings(phi_tunings)

Sets phi parameter for provided dictionary keyed by mirror.

Virgo.set_thermal_state(state)

Sets thermal parameter values for the provided state.

Virgo.set_tunings(tunings)

Sets the phi parameters on the mirrors and zeroes all dofs so that all tunings are contained within the mirrors (rather than a combination of phi+dof.DC).

Virgo.update_locks()

Virgo.update_sensing_matrix()

Update the local sensing matrix.

Virgo.use_apertures([use_substrate])

Convenience function to use apertures.

Virgo.zero_dof_tunings([dofs])

This function will move the current DoF DC values into the phi parameter of the driven component before resetting the DoF DC value to zero.