finesse.components.laser module

Laser-type optical components for producing beams.

class finesse.components.laser.Laser(*args, **kwargs)[source]

Bases: Connector, FrequencyGenerator

Represents a laser producing a beam with associated properties such as power and frequency.

Parameters

namestr

Name of the newly created laser.

Pfloat, optional

Power of the laser (in Watts), defaults to 1 W.

ffloat or Frequency, optional

Frequency-offset of the laser from the default (in Hz) or Frequency object. Defaults to 0 Hz offset.

phasefloat, optional

Phase-offset of the laser from the default, defaults to zero.

signals_onlybool, optional

When True, this laser component will only inject signal sidebands. They will use the current carrier value as a scaling terms but the carrier will not be injected into the simulation. This allows a user to just inject signal sidebands into a model.

Attributes

add_gouy_phasebool

When set to True the gouy phase of the current beam parameters values at the laser will be added to the optical field outputs during the simulation. When False, it will not. This can be used with set_output_field() to force a particular optical field output from a laser.

DEFAULT_POWER_COEFFS = {(0, 0): (1.0, 0.0)}
property P

P : float, optional Power of the laser (in Watts), defaults to 1 W.

property f

f : float or Frequency, optional Frequency-offset of the laser from the default (in Hz) or Frequency object. Defaults to 0 Hz offset.

get_output_field(homs)[source]

Get optical field outputted as a HOM vector.

Returns the complex amplitude of the modes specified in homs. This does not respect the add_gouy_phase` attribute of the laser element and will always return the complex amplitude without the gouy phase. If the gouy phase is required then it is recommended to use a FieldDetector at the laser output with add_gouy_phase set to True.

Parameters

homssequence

Collection of (n, m) higher order modes to retrieve the output field for. Typically this is just the model.homs value. The output E vector will match the ordering of homs.

Returns

sequence

The output fields for homs. If a given (n, m) has no defined coefficients, its field defaults to 0.

property phase

phase : float, optional Phase-offset of the laser from the default, defaults to zero.

property power_coeffs[source]

The relative power factors and phase offsets for each HGnm mode.

Getter:

Returns the mode factors and phase offsets as a dict with the mode indices as keys. Read-only.

set_output_field(E, homs)[source]

Set optical field outputted using HOM vector.

This changes the output power and mode content of the laser to match the requested E field.

Parameters

Esequence

The complex optical field amplitude for homs.

homssequence

Sequence of (n, m) higher order modes. Typically this is just the model.homs value. It should match the size of E.

Notes

If you do not want the gouy phase due to the current beam parameter values set at the laser to be added to the output, set the add_gouy_phase attribute of the laser element to False.

property signals_only

signals_only : bool, optional When True, this laser component will only inject signal sidebands. They will use the current carrier value as a scaling terms but the carrier will not be injected into the simulation. This allows a user to just inject signal sidebands into a model.

tem(n, m, factor, phase=0.0)[source]

Distributes power into the mode HGnm.

Parameters

n, mint

Mode indices.

factorfloat

Relative power factor, modes with equal factor will have equivalent power distributed to them.

phasefloat, optional; default = 0.0

Phase offset for the field, in degrees.

Notes

This does not change the total power of the laser, rather, it redistributes this power into / out of the specified mode.

class finesse.components.laser.LaserMechPort(name: str, component: Connector, node_type: NodeType = NodeType.MECHANICAL)[source]

Bases: Port