finesse.utilities.wigner module

Wigner moment operators and functions written to work on an optical fields described in a HG mode basis, rather than a cartesian grid, which makes many calculations faster and more pratical when working in FINESSE.

Code is predominantly written by Alexei Ciobanu, some code tidying and documentation by Daniel Brown.

finesse.utilities.wigner.D_hg(n, q, lam=1.064e-06, include_gouy=False)[source]
finesse.utilities.wigner.D_hg_full(N, q, lam=1.064e-06, include_gouy=False)[source]
finesse.utilities.wigner.E_1D_to_2D(E_1D, homs)[source]
class finesse.utilities.wigner.WignerMomentsHG(xu: float, xy: float, xv: float, xx: float, ux: float, uy: float, uv: float, uu: float, yx: float, yu: float, yv: float, yy: float, vx: float, vu: float, vy: float, vv: float, wig_matrix: ndarray, m2: float, m2x: float, m2y: float, wig_zx: float, wig_zrx: float, wig_qx: complex, wig_wx: float, wig_qy: complex, wig_wy: float, wig_x: float, wig_y: float, wig_u: float, wig_v: float)[source]

Bases: object

Wigner moment outputs from the Hermite-Gaussian wigner function wigner_moments_2D_hg().

Attributes

xu, xy, xv, xx, ux, uy, uv, uu, yx, yu, yv, yy, vx, vu, vy, vv: float

elements of the wigner matrix for easier access

wig_matrixarray_like

4x4 Wigner moment matrix

m2, m2x, m2yfloat

Total M2 (M-squared) value, and the M2 values in the x and y directions

wig_qx, wig_qycomplex

x and y complex gaussian beam parameter for this Wigner basis

wig_zx, wig_zr, wig_wx, wig_zx, wig_zr, wig_wy

Waist position, Rayleigh range, and spot size of the Wigner bases in the x and y directions

wig_x, wig_yfloat

Displacement of beam in units of meters

wig_u, wig_vfloat

Angle of beam in units of radians

m2: float
m2x: float
m2y: float
uu: float
uv: float
ux: float
uy: float
vu: float
vv: float
vx: float
vy: float
wig_matrix: ndarray
wig_qx: complex
wig_qy: complex
wig_u: float
wig_v: float
wig_wx: float
wig_wy: float
wig_x: float
wig_y: float
wig_zrx: float
wig_zx: float
xu: float
xv: float
xx: float
xy: float
yu: float
yv: float
yx: float
yy: float
finesse.utilities.wigner.X_hg(n, q, lam=1.064e-06, include_gouy=False)[source]
finesse.utilities.wigner.X_hg_full(N, q, lam=1.064e-06, include_gouy=False)[source]
finesse.utilities.wigner.gauss_norm(n, q, lam=1.064e-06, include_gouy=True)[source]

The normalization factor for a 1D HG electric field distribution to ensure that the overlap integral equates to 1.

Traditionally the normalization includes a Gouy phase factor for free space propagation but that can be turned off by setting include_gouy=False

Parameters

nint

1D Hermite-gaussian mode order

qcomplex

Gaussian beam parameter

lamfloat

Wavelength

finesse.utilities.wigner.herm(n, x)[source]
finesse.utilities.wigner.q2w(q, lam=1.064e-06)[source]

Get beam size from q parameter.

Parameters

qcomplex

Gaussian beam parameter

lamfloat

Wavelength

finesse.utilities.wigner.q2w0(q, lam=1.064e-06)[source]

Get waist size from q parameter.

Parameters

qcomplex

Gaussian beam parameter

lamfloat

Wavelength

finesse.utilities.wigner.wigner_moments_2D_hg(E, qx, qy, lam=1.064e-06, assume_wigner_matrix_symmetry=True, include_gouy=False)[source]

Function for computing the Wigner moments of a set of HG mode amplitudes in a given basis (qx,qy). This function also computes other useful metrics from the Wigner moments such as the M2 (M-squared) and the Wigner basis of a beam.

Parameters

Earray_like

HG mode coefficient matrix. If you have a 1D array of HG mode amplitudes use the E_1D_to_2D method to convert it first.

qx, qycomplex | finesse.gaussian.BeamParam

x and y direction complex guassian beam paramters

lamfloat

wavelength of light used

include_gouybool

Include Gouy phase in HG normalisation [experimental]

assume_wigner_matrix_symmetrybool

When True only lower half of the Wigner matrix is calculated

Returns

resultWignerMomentsHG

Collection of calculations outputs from Wigner moment calculations

Notes

It should be noted that the Wigner basis calculation and the M2 values along each axis (m2x, m2y) are only valid in the case where the general astigmatic wigner moments of the beam are close to zero. The general astigmatic components of a wigner distribution are xv, vx, yu, uy and potentially xy, yx, uv, vu (not sure about those).