class finesse.gaussian.BeamParam(wavelength=1.064e-06, nr=1, *args, **kwargs)[source]

Gaussian beam complex parameter.

BeamParam is effectively a complex number with extra functionality to determine beam parameters. The wavelength of light and index of refraction of the medium default to \(\lambda = 1064\,\mathrm{nm}\) and \(n_r = 1\), respectively.

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(q=c) # where c is a complex number

where \(w_0\) is the radius of the beam at the waist-position \(z_0\), and \(z_R\) is the Rayleigh range.

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

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

wavelength : float, optional

Wavelength of the beam light, defaults to 1064 nm.

nr : float, optional

Refractive index, defaults to unity.



Flag indicating whether the beam parameter is a symbolic object.

The refractive index associated with the BeamParam.


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


The radius of the beam.


Divergence of the beam.


Radius of curvature of the beam (in metres).


BeamParam.__init__(self[, wavelength, nr])

Initialize self.

BeamParam.eval(self, \*\*kwargs)

Evaluate the symbolic beam parameter.


The wavelength of the beam (in metres).


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


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

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

Computes the radius of the beam at a specified distance from/to the beam waist position.

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

Computes the Gouy-phase at a specified distance from/to the beam waist position.


The radius of the waist of the beam (in metres).

BeamParam.curvature(self[, z, wavelength, …])

Curvature of the beam as a function of the optical axis distance.

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.mismatch(q1, q2)

The mismatch parameter (1-overlap) as taken from the Bayer-Helms paper.

BeamParam.overlap_contour(q1, M, t)

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


Computes and returns the complex conjugate of the beam parameter.


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


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


Reverses the direction of the beam parameter by setting q.real = - q.real.