finesse.detectors.compute package

Submodules

finesse.detectors.compute.amplitude module

class finesse.detectors.compute.amplitude.ADWorkspace(owner, sim)

Bases: MaskedDetectorWorkspace

freq_idx

freq_idx: ‘Py_ssize_t’

hom_idx

hom_idx: ‘Py_ssize_t’

is_f_changing

is_f_changing: ‘bool’

node_id

node_id: ‘Py_ssize_t’

ntype

ntype: object

scaling

scaling: ‘double’

solver

solver: finesse.simulations.homsolver.HOMSolver

class finesse.detectors.compute.amplitude.KnmDetectorWorkspace(owner, sim)

Bases: DetectorWorkspace

from_idx

from_idx: ‘Py_ssize_t’

knm_matrix

knm_matrix: finesse.knm.matrix.KnmMatrix

to_idx

to_idx: ‘Py_ssize_t’

finesse.detectors.compute.camera module

Functions for computing images of a beam at arbitrary points in the interferometer configuration.

Camera Equations

Each function in this sub-module has two modes - single frequency (mimicking amplitude detectors at each coordinate) and multi frequency (mimicking CCD cameras).

Single-frequency mode

If the argument f (i.e. the field frequency to probe) is specified then this function computes the amplitude and phase of the light field at this given frequency, for the specified x and y coordinate. The light field at frequency \(\omega_{\mathrm{i}}\) is given by a complex number (\(z\)) and is calculated as follows:

\[z(x, y) = \displaystyle\sum_{\mathrm{j}} \sum_{nm} u_{nm}(x, y) a_{\mathrm{j}nm} \quad\text{with}\quad \left\{\,\mathrm{j}\,|\,\mathrm{j} \in [0, \dots, N] \wedge \omega_{\mathrm{j}} = \omega_{\mathrm{i}}\right\}. \]

Multi-frequency mode

Otherwise, if f is not specified, then this function acts like a CCD camera for the given pixel. It plots the beam intensity as a function of the x and y coordinates given. The output is a real number computed as:

\[s(x, y) = \displaystyle\sum_{\mathrm{ij}} \sum_{nm} u_{nm}(x, y) u_{nm}^*(x,y) a_{\mathrm{i}nm} a_{\mathrm{j}nm}^* \quad\text{with}\quad \left\{\,\mathrm{i,j}\,|\,\mathrm{i,j} \in [0, \dots, N] \wedge \omega_{\mathrm{i}} = \omega_{\mathrm{j}}\right\}. \]
class finesse.detectors.compute.camera.CCDLineWorkspace(owner, sim, out)

Bases: CameraWorkspace

class finesse.detectors.compute.camera.CCDPixelWorkspace

Bases: CameraWorkspace

class finesse.detectors.compute.camera.CCDWorkspace(owner, sim, out)

Bases: CameraWorkspace

class finesse.detectors.compute.camera.CameraWorkspace(owner, sim, values=None)

Bases: MaskedDetectorWorkspace

Workspace class for cameras.

cache(self, bool initial=False)

Cache, or re-cache, the u_nm variables and Gouy phase data.

class finesse.detectors.compute.camera.ComplexCameraValues

Bases: BaseCValues

f

f: ‘double’

class finesse.detectors.compute.camera.ComplexCameraWorkspace(owner, sim)

Bases: CameraWorkspace

class finesse.detectors.compute.camera.FieldCameraWorkspace(owner, sim, out)

Bases: ComplexCameraWorkspace

class finesse.detectors.compute.camera.FieldLineWorkspace(owner, sim, out)

Bases: ComplexCameraWorkspace

class finesse.detectors.compute.camera.FieldPixelWorkspace

Bases: ComplexCameraWorkspace

finesse.detectors.compute.gaussian module

class finesse.detectors.compute.gaussian.AstigmatismDetectorWorkspace(owner, sim)

Bases: DetectorWorkspace

Workspace for node astigmatism calculations used by AstigmatismDetector.

initial
class finesse.detectors.compute.gaussian.BPDetectorWorkspace(owner, sim)

Bases: DetectorWorkspace

Workspace for beam property calculations used by BeamPropertyDetector.

detecting
initial
is_changing
q_as_bp

q_as_bp: ‘bool’

class finesse.detectors.compute.gaussian.BeamProperty(*values)

Bases: IntFlag

DEFOCUS = 8
DISTANCE = 2
DIVERGENCE = 5
GOUY = 4
Q = 7
RAYLEIGH = 3
ROC = 6
SIZE = 0
WAISTSIZE = 1
class finesse.detectors.compute.gaussian.CPDetectorABCDWorkspace(owner, sim)

Bases: DetectorWorkspace

Workspace for obtaining cavity round-trip ABCD matrix, used by CavityPropertyDetector.

class finesse.detectors.compute.gaussian.CPDetectorModeWorkspace(owner, sim)

Bases: DetectorWorkspace

Workspace for cavity property calculations, used by CavityPropertyDetector, for properties which rely on the cavity eigenmode.

detecting
initial
is_changing
q_as_bp

q_as_bp: ‘bool’

class finesse.detectors.compute.gaussian.CPDetectorWorkspace(owner, sim)

Bases: DetectorWorkspace

Workspace for cavity property calculations, used by CavityPropertyDetector, for scalar properties which do not rely on the cavity eigenmode.

detecting
class finesse.detectors.compute.gaussian.CavityProperty(*values)

Bases: IntFlag

ABCD = 7
EIGENMODE = 12
FINESSE = 2
FSR = 3
FWHM = 4
LENGTH = 0
LOSS = 1
MODESEP = 10
POLE = 5
RESOLUTION = 11
RTGOUY = 9
SOURCE_DEFOCUS = 19
SOURCE_DISTANCE = 15
SOURCE_DIVERGENCE = 17
SOURCE_RAYLEIGH = 16
SOURCE_ROC = 18
SOURCE_SIZE = 13
SOURCE_WAISTSIZE = 14
STABILITY = 8
TAU = 6
class finesse.detectors.compute.gaussian.GouyDetectorWorkspace(owner, sim)

Bases: DetectorWorkspace

Workspace for accumulated Gouy phase calculations used by Gouy.

class finesse.detectors.compute.gaussian.ModeMismatchDetectorWorkspace(owner, sim)

Bases: DetectorWorkspace

Workspace for mode mismatch (at a node coupling) calculations used by ModeMismatchDetector.

initial
is_changing
pscale

finesse.detectors.compute.power module

class finesse.detectors.compute.power.PD0Workspace(owner, BaseSimulation sim, values=None, oinfo=None, *, dict pdtype: dict = None)

Bases: MaskedDetectorWorkspace

K
dc_node_id
rhs_index
class finesse.detectors.compute.power.PD1Values

Bases: BaseCValues

f

f: ‘double’

phase

phase: ‘double’

class finesse.detectors.compute.power.PD1Workspace(owner, sim, frequency: Parameter, phase: Parameter, phase_offset=0, *, oinfo=None, pdtype=None)

Bases: MaskedDetectorWorkspace

Aij
K
ac_node_id
cvalues
dc_node_id
homs
is_audio_mixing
is_f_changing
is_phase_changing
is_segmented
output_real
update_beats(self)

Requires full initialisation and self.update_parameter_values calling before using

class finesse.detectors.compute.power.PD2Values

Bases: BaseCValues

f1

f1: ‘double’

f2

f2: ‘double’

phase1

phase1: ‘double’

phase2

phase2: ‘double’

class finesse.detectors.compute.power.PD2Workspace(owner, sim, f1, phase1, f2, phase2, phase1_offset=0, *, oinfo=None, pdtype=None)

Bases: MaskedDetectorWorkspace

K
ac_node_id
cvalues
dc_node_id
homs
is_audio_mixing
is_f1_changing
is_f2_changing
is_phase1_changing
is_phase2_changing
is_segmented
output_real
z1
z2
finesse.detectors.compute.power.check_is_fsig(model, f: Parameter)

Checks if a frequency parameter f is dependant or the same value as the current model signal frequency.

finesse.detectors.compute.quantum module

class finesse.detectors.compute.quantum.QND0Workspace(owner, sim, nsr, sources, exclude_sources)

Bases: DetectorWorkspace

fill_selection_vector(self)
get_source_selection_vector(self)
set_covariance_matrix(self, double complex[::1] v, str name)
class finesse.detectors.compute.quantum.QND1Values

Bases: BaseCValues

f

f: ‘double’

phase

phase: ‘double’

class finesse.detectors.compute.quantum.QNDNValues

Bases: BaseCValues

f1

f1: ‘double’

f2

f2: ‘double’

f3

f3: ‘double’

phase1

phase1: ‘double’

phase2

phase2: ‘double’

phase3

phase3: ‘double’

class finesse.detectors.compute.quantum.QNDNWorkspace(owner, sim, carrier_demods, nsr, sources, exclude_sources)

Bases: DetectorWorkspace

fill_selection_vector(self)
get_source_selection_vector(self)
set_covariance_matrix(self, double complex[::1] v, str name)
class finesse.detectors.compute.quantum.QShot0Workspace(owner, sim, nsr, output_info=None, *)

Bases: DetectorWorkspace

class finesse.detectors.compute.quantum.QShotNWorkspace(owner, sim, list carrier_demods: list, nsr, output_info=None, *)

Bases: DetectorWorkspace

An N RF demodulation quantum shot noise detector workspace.

Parameters

ownerobject

The model element that owns this workspace

simobject

The current Simulation object that this workspace will use to generate its outputs

carrier_demodslist

A list of (frequency, phase) pairs. The frequency and phase object should be

nsrbool

If True, the signal transfer function is computed and then used to compute the noise in equivalent units of the singal being injected at runtime.

class finesse.detectors.compute.quantum.QuantumNoiseDetectorWorkspace(owner, sim)

Bases: DetectorWorkspace

fill_selection_vector(self)
set_covariance_matrix(self, double complex[::1] v, str name)

Module contents