Detectors

amplitude_detector
ad

Represents an amplitude detector which calculates the amplitude and phase of light fields at one frequency.

Syntax

ad name node f n=none m=none

Required

name: Name of newly created detector.

node: Node to read output from.

f: Frequency of light to detect (in Hz).

Optional

n: Tangential mode index to probe. Defaults to None such that all fields of the given frequency are summed.

m: Sagittal mode index to probe. Defaults to None such that all fields of the given frequency are summed.

astigd

Detector for astigmatism figure-of-merit at a given node.

Syntax

astigd name node

Required

name: Name of the detector.

node: Node to compute astigmatism at.

beam_property_detector
bp

Probe for detecting the properties of a beam at a given node.

Syntax

bp name node prop direction=x q_as_bp=false

Required

name: Name of newly created detector.

node: Node to read output from.

prop: The property of the beam to detect. See above for options.

Optional

direction: Plane to detect in - ‘x’ for tangential, ‘y’ for sagittal.

q_as_bp: If detecting q, should the detector output return BeamParam object instead of just a complex number.

ccd

Camera for detecting the full image of the beam in terms of the intensity.

Syntax

ccd name node xlim ylim npts w0_scaled=true

Required

name: Unique name of the camera.

node: Node at which to detect.

xlim: Limits of the x-dimension of the image. If a single number is given then this will be computed as \(x_{\mathrm{lim}} = [-|x|, +|x|]\).

ylim: Limits of the y-dimension of the image. If a single number is given then this will be computed as \(y_{\mathrm{lim}} = [-|y|, +|y|]\).

npts: Number of points in both axes.

Optional

w0_scaled: Flag indicating whether the \(x\), \(y\) axes should be scaled to the waist-size of the beam parameter at node.

ccdline

Camera for detecting a slice of the beam in terms of the intensity.

Syntax

ccdline name node npts x=none y=none xlim=none ylim=none w0_scaled=true

Required

name: Unique name of the camera.

node: Node at which to detect.

npts: Number of points in slice axis.

x: The x coordinate of the slice. If ylim is given and this is not specified then defaults to zero. If xlim is given and this is also specified then it is ignored.

y: The y coordinate of the slice. If xlim is given and this is not specified then defaults to zero. If ylim is given and this is also specified then it is ignored.

xlim: The limits of the x-axis scan lines. A single number gives \(x_{\mathrm{axis}} \in [-|x|, +|x|]\), or a tuple of size two gives \(x_{\mathrm{axis}} \in [x[0], x[1]]\).

ylim: The limits of the y-axis scan lines. A single number gives \(y_{\mathrm{axis}} \in [-|y|, +|y|]\), or a tuple of size two gives \(y_{\mathrm{axis}} \in [y[0], y[1]]\).

Optional

w0_scaled: Flag indicating whether the \(x\), \(y\) axes should be scaled to the waist-size of the beam parameter at node.

ccdpx

Camera for detecting a single pixel of the beam in terms of the intensity.

Syntax

ccdpx name node x=0 y=0 w0_scaled=true

Required

name: Unique name of the camera.

node: Node at which to detect.

Optional

x: The x co-ordinate of the pixel.

y: The y co-ordinate of the pixel.

w0_scaled: Flag indicating whether the \(x\), \(y\) axes should be scaled to the waist-size of the beam parameter at node.

cp

Probe for detecting the properties of a cavity.

Syntax

cp name cavity prop direction=x q_as_bp=false

Required

name: Name of newly created cavity property detector.

cavity: The cavity to probe. If the name is provided then the CavityPropertyDetector.cavity attribute will point to the corresponding Cavity object when adding this detector to a Model instance.

prop: Property of the cavity to probe. See above for options.

Optional

direction: Plane to detect in.

q_as_bp: If detecting q, should the detector output return BeamParam object instead of just a complex number.

fcam

Camera for detecting the full image of the beam in terms of amplitude and phase.

Syntax

fcam name node xlim ylim npts f=0 w0_scaled=true

Required

name: Unique name of the camera.

node: Node at which to detect.

xlim: Limits of the x-dimension of the image. If a single number is given then this will be computed as \(x_{\mathrm{lim}} = [-|x|, +|x|]\).

ylim: Limits of the y-dimension of the image. If a single number is given then this will be computed as \(y_{\mathrm{lim}} = [-|y|, +|y|]\).

npts: Number of points in both axes.

Optional

f: Field frequency offset from the carrier to detect.

w0_scaled: Flag indicating whether the \(x\), \(y\) axes should be scaled to the waist-size of the beam parameter at node.

fline

Camera for detecting a slice of the beam in terms of amplitude and phase.

Syntax

fline name node npts x=none y=none xlim=none ylim=none f=0 w0_scaled=true

Required

name: Unique name of the camera.

node: Node at which to detect.

npts: Number of points in slice axis.

x: The x coordinate of the slice. If ylim is given and this is not specified then defaults to zero. If xlim is given and this is also specified then it is ignored.

y: The y coordinate of the slice. If xlim is given and this is not specified then defaults to zero. If ylim is given and this is also specified then it is ignored.

xlim: The limits of the x-axis scan lines. A single number gives \(x_{\mathrm{axis}} \in [-|x|, +|x|]\), or a tuple of size two gives \(x_{\mathrm{axis}} \in [x[0], x[1]]\).

ylim: The limits of the y-axis scan lines. A single number gives \(y_{\mathrm{axis}} \in [-|y|, +|y|]\), or a tuple of size two gives \(y_{\mathrm{axis}} \in [y[0], y[1]]\).

Optional

f: Field frequency offset from the carrier to detect.

w0_scaled: Flag indicating whether the \(x\), \(y\) axes should be scaled to the waist-size of the beam parameter at node.

fpx

Camera for detecting a single pixel of the beam in terms of the amplitude and phase.

Syntax

fpx name node x=0 y=0 f=0 w0_scaled=true

Required

name: Unique name of the camera.

node: Node at which to detect.

Optional

x: The x co-ordinate of the pixel.

y: The y co-ordinate of the pixel.

f: Field frequency offset from the carrier to detect.

w0_scaled: Flag indicating whether the \(x\), \(y\) axes should be scaled to the waist-size of the beam parameter at node.

gouy

Detector to measure the accumulated gouy phase across a sequence of spaces.

Syntax

gouy name from_node=none to_node=none via_node=none direction=x {arg1{ arg2{ ...}}}

Required

name: Name of newly created gouy detector.

*args: A sequence of spaces or space names.

from_node: An OpticalNode instance, or a data type which can be converted to an optical node.

to_node: An OpticalNode instance, or a data type which can be converted to an optical node.

via_node: An OpticalNode instance, or a data type which can be converted to an optical node.

direction: Plane to detect in - ‘x’ for tangential, ‘y’ for sagittal. Defaults to ‘x’.

knmd

Direct probe of coupling coefficients at a component.

Syntax

knmd name comp coupling n1=none m1=none n2=none m2=none

Required

name: Name of newly created KnmDetector.

comp: A component which can scatter modes.

coupling: Coupling direction string, e.g. “11” for coupling coefficients on reflection from the front surface of a mirror.

n1, m1, n2, m2: int or None: From (n1, m1) and To (n2, m2) mode indices of the coupling coefficient(s) to retrieve. See above for the options.

mmd

Detector for mode mismatch figure-of-merit for a specified node coupling.

Syntax

mmd name node1 node2 direction=x percent=false

Required

name: Name of the detector.

node1: Input node or port. If a Port instance is given then this node will be the input node of that port. Note that this node cannot be an output node.

node2: Output node or port. If a Port instance is given then this node will be the output node of that port. Note that this node cannot be an input node.

Optional

direction: Plane of computation, defaults to “x” for the tangential plane. Changing to “y” will compute the mode mismatch in the sagittal plane.

percent: Whether to calculate the mode mismatch as a fraction (default behaviour) or a percentage.

motion_detector
xd

Represents a motion detector which calculates the amplitude and phase of surface motion.

Syntax

xd name node

Required

name: Name of newly created motion detector.

node: Node to read output from.

power_detector_dc
pd

Represents a power detector with no RF demodulations. It calculates the DC laser power at a node in Watts of optical power.

Syntax

pd name node pdtype=none

Required

name: Name of newly created power detector.

node: Node to read output from.

power_detector_demod_1
pd1

Represents a power detector with one RF demodulation. It calculates the RF beat power at a node in Watts of optical power.

Syntax

pd1 name node f phase=none

Required

name: Name of newly created power detector.

node: Node to read output from.

f: Demodulation frequency in Hz

Optional

phase: Demodulation phase in degrees

power_detector_demod_2
pd2

Represents a power detector with two RF demodulation. It calculates the RF beat power at a node in Watts of optical power.

Syntax

pd2 name node f1 phase1 f2 phase2=none

Required

name: Name of newly created power detector.

node: Node to read output from.

f1: First demodulation frequency in Hz

phase1: First demodulation phase in degrees

f2: Second demodulation frequency in Hz

Optional

phase2: Second demodulation phase in degrees

quantum_noise_detector
qnoised

Represents a quantum noise detector with no RF demodulations.

Syntax

qnoised name node nsr=false sources=none exclude_sources=none

Required

name: Name of newly created quantum noise detector.

node: Node to read output from.

Optional

nsr: If true, calculate the noise-to-signal ratio rather than the absolute noise value.

sources: If given, only detect quantum noise contributions from these components.

exclude_sources: If given, don’t detect quantum noise contributions from any of these components, even if given in sources.

quantum_noise_detector_demod_1
qnoised1

Represents a quantum noise detector with 1 RF demodulation.

Syntax

qnoised1 name node f phase nsr=false sources=none exclude_sources=none

Required

name: Name of newly created quantum noise detector.

node: Node to read output from.

f: Demodulation frequency in Hz

phase: Demodulation phase in degrees

Optional

nsr: If true, calculate the noise-to-signal ratio rather than the absolute noise value.

sources: If given, only detect quantum noise contributions from these components.

quantum_noise_detector_demod_2
qnoised2

Represents a quantum noise detector with 2 RF demodulations.

Syntax

qnoised2 name node f1 phase1 f2 phase2 nsr=false sources=none exclude_sources=none

Required

name: Name of newly created quantum noise detector.

node: Node to read output from.

f1: First demodulation frequency in Hz

phase1: First demodulation phase in degrees

f2: Second demodulation frequency in Hz

phase2: Second demodulation phase in degrees

Optional

nsr: If true, calculate the noise-to-signal ratio rather than the absolute noise value.

sources: If given, only detect quantum noise contributions from these components.

quantum_shot_noise_detector
qshot

Represents a quantum shot noise detector with no RF demodulations.

Syntax

qshot name node nsr=false

Required

name: Name of newly created quantum shot noise detector.

node: Node to read output from.

Optional

nsr: If true, calculate the noise-to-signal ratio rather than the absolute noise value.

quantum_shot_noise_detector_demod_1
qshot1

Represents a quantum shot noise detector with 1 RF demodulation.

Syntax

qshot1 name node f phase nsr=false

Required

name: Name of newly created quantum shot noise detector.

node: Node to read output from.

f: Demodulation frequency in Hz

phase: Demodulation phase in degrees

Optional

nsr: If true, calculate the noise-to-signal ratio rather than the absolute noise value.

quantum_shot_noise_detector_demod_2
qshot2

Represents a quantum shot noise detector with 2 RF demodulations.

Syntax

qshot2 name node f1 phase1 f2 phase2 nsr=false

Required

name: Name of newly created quantum shot noise detector.

node: Node to read output from.

f1: First demodulation frequency in Hz

phase1: First demodulation phase in degrees

f2: Second demodulation frequency in Hz

phase2: Second demodulation phase in degrees

Optional

nsr: If true, calculate the noise-to-signal ratio rather than the absolute noise value.

splitpd
Syntax

splitpd name node direction {kwarg1=value{ kwarg2=value{ ...}}}