finesse.gaussian.BeamParam

Overview

class finesse.gaussian.BeamParam(wavelength=None, nr=1, *args, **kwargs)[source]

Bases: object

Gaussian beam complex parameter.

This can be a symbolic beam parameter or numeric. For example, if transform_beam_param() is called using a symbolic ABCD matrix then a symbolic BeamParam instance will be created automatically.

The wavelength of the laser beam defaults to the current value for lambda0 in the config file being used, if it is not given as an argument during construction of a BeamParam.

The index of refraction of the associated medium defaults to unity, if it is not given as an argument during construction of a BeamParam.

The following are legal initialisations of a BeamParam object:

q = BeamParam(w0=w0, z=z)
q = BeamParam(z=z, zr=zr)
q = BeamParam(w=w, rc=rc)
q = BeamParam(w=w, S=S)
q = BeamParam(q=c) # where c is a complex number or symbol

Descriptions of these variables are as follows:

  • \(z\) — distance to the waist position (in metres). Negative values indicate a beam converging to the waist, positive is a beam diverging from the waist.

  • \(w_0\) — radius of the beam at the waist (in metres).

  • \(zr\) — Rayleigh range of the beam (in metres).

  • \(w\) — radius of the beam at the current position (in metres).

  • \(rc\) — radius of curvature of the wavefront (in metres).

  • \(S\) — curvature (or defocus) of the wavefront (in metres).

  • \(q\) — the complex beam parameter itself.

The default wavelength and refractive index values can also be changed with (for example):

q = BeamParam(wavelength, nr, w0=w0, zr=zr)

Note that BeamParam objects can also be symbolic by passing any value in *args or **kwargs as a symbolic expression.

Parameters

wavelength : float, optional

Wavelength of the beam light, defaults to the value given for lambda0 in the config file being used.

nr : float, optional

Refractive index, defaults to unity.

Properties

BeamParam.Rc

Radius of curvature, \(R_c\), of the beam, in metres.

BeamParam.S

Defocus (wavefront curvature), \(S\), of the Gaussian beam, equivalent to the reciprocal of BeamParam.Rc.

BeamParam.divergence

Divergence of the beam.

BeamParam.imag

The imaginary part of the complex beam parameter, equal to the Rayleigh range \(z_R\) of the beam (in metres).

BeamParam.nr

The refractive index associated with the BeamParam.

BeamParam.psi

Gouy phase, \(\psi\), of the Gaussian beam.

BeamParam.q

The complex beam parameter value (\(q\)).

BeamParam.real

The real part of the complex beam parameter, equal to the relative distance to the beam waist (in metres).

BeamParam.symbolic

Flag indicating whether the beam parameter is a symbolic object.

BeamParam.w

The radius of the beam, \(w\), in metres.

BeamParam.w0

The radius of the waist, \(w_0\), of the beam, in metres.

BeamParam.wavelength

The wavelength of the beam (in metres).

BeamParam.z

The relative distance to the waist of the beam (in metres).

BeamParam.zr

The Rayleigh range (\(z_R\)) of the beam (in metres).

Methods

BeamParam.__init__([wavelength, nr])

BeamParam.beamsize([z, wavelength, nr, w0])

Computes the radius of the beam as a function of any of the dependent arguments.

BeamParam.conjugate()

Computes and returns the complex conjugate of the beam parameter.

BeamParam.curvature([z, wavelength, nr, w0])

Curvature of the beam wavefront as a function of any of the dependent arguments.

BeamParam.depends_on()

A list of the model parameters that the symbolic beam parameter depends upon.

BeamParam.eval([as_bp, subs])

Evaluate the symbolic beam parameter.

BeamParam.gouy([z, wavelength, nr, w0])

Computes the Gouy-phase as a function of any of the dependent arguments.

BeamParam.mismatch(q1, q2)

Computes the mode mismatch via an alternate form of \(1 - \mathcal{O}\), where \(\mathcal{O}\) is the overlap (see BeamParam.overlap()).

BeamParam.overlap(q1, q2)

Computes the projection from one beam parameter to another to give a measure of the overlap between the two beam parameters.

BeamParam.overlap_contour(q1, M, t)

This function returns a set of beam parameters that are mismatched to q1 by an overlap M.

BeamParam.reverse()

Returns the reversed beam parameter.

BeamParam.roc([z, wavelength, nr, w0])

Radius of curvature of the beam as a function of any of the dependent arguments.