finesse.analysis.actions.locks.RunLocks

Overview

class finesse.analysis.actions.locks.RunLocks(*locks, method='proportional', scale_factor=1, sensing_matrix=None, max_iterations=10000, display_progress=False, optimize_phase=False, d_dof_phase=1e-09, set_gains=True, d_dof_gain=1e-09, exception_on_fail=True, no_warning=False, pre_step=None, show_progress_bar=None, name='run locks')[source]

Bases: Action

An action that iteratively moves the system to lock. Currently, lock error signals must be readouts, not detectors, for use in this action.

Parameters:
*lockslist, optional

A list of locks to use in each RunLocks step. If not provided, all locks in model are used.

methodstr, either “newton” or “proportional”

Which method to use in the locking iterations.

scale_factorfloat

Factor by which to multiply all DOF changes. Should be set below 1 if it is desired to minimize overshooting.

sensing_matrixSensingMatrixSolution or None

Sensing matrix of gains used in locking, of the type that would be returned by state.apply(SensingMatrixDC(lock_dof_names, readout_names) If None, the sensing matrix is recalculated. Recommended to be None except when locking multiple times in a row, e.g. with DragLocks.

max_iterationsint

The maximum number of locking steps in each execution of RunLocks.

display_progressboolean

When true, displays the status of the error signals during locking iterations.

optimize_phaseboolean

When true, optimize readout demodulation phases between lock DOFs and their paired readouts prior to running locks.

d_dof_phasefloat

Step size to use when optimizing the demodulation phase for each error signal/DOF pair.

set_gainsboolean

Only applies if method is “proportional”. If true, sets the gains for each error signal/DOF pair. If false, uses pre-set gains.

d_dof_gainfloat

Step size to use when calculating the gain for every pair of error signals and DOFs.

exception_on_failboolean

When true, raise exception if maximum iterations are surpassed.

no_warningboolean

When true, don’t even raise a warning if maximum iterations are reached. Recommended to be false unless repeatedly testing locking.

pre_stepAction

Action to apply on each step of the lock

show_progress_barboolean

Will enable the progress bar when true.

namestr

Name of the action.

Methods

RunLocks.__init__(*locks[, method, ...])

RunLocks.complete_pbar()

RunLocks.init_pbar(locks)

RunLocks.update_pbar()

RunLocks.update_pbar_lock(lock_name, is_locked)