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.
- 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:
objectWigner 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
- 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.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
- result
WignerMomentsHG 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).