finesse.knm.bayerhelms.compute_bayerhelms_coeff

finesse.knm.bayerhelms.compute_bayerhelms_coeff(qx1, qx2, qy1, qy2, double xgamma, double ygamma, int n1, int m1, int n2, int m2, double nr=1.0, double wavelength=1064e-9, bool reverse_gouy=False)

Computes the coupling coefficient, via Bayer-Helms [24], from mode (n1, m1) -> mode (n2, m2).

Note

Use make_bayerhelms_matrix() to compute a scattering matrix of these coefficients rather than calling this function in a loop.

Parameters:
qx1BeamParam or complex

Input beam parameter in the tangential plane.

qx2BeamParam or complex

Output beam parameter in the tangential plane.

qy1BeamParam or complex

Input beam parameter in the sagittal plane.

qy2BeamParam or complex

Output beam parameter in the sagittal plane.

xgammafloat

Misalignment angle in the tangential plane (in radians).

ygammafloat

Misalignment angle in the sagittal plane (in radians).

n1int

Input tangential mode index.

m1int

Input sagittal mode index.

n2int

Output tangential mode index.

m2int

Output sagittal mode index.

nrfloat, optional; default: 1.0

Refractive index of the associated medium.

wavelengthfloat, optional; default: 1064 nm

Wavelength of the beam (in metres).

Returns:
coeffcomplex

The complex coupling coefficient for the specified mode coupling.