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 [1], 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

qx1 : BeamParam or complex

Input beam parameter in the tangential plane.

qx2 : BeamParam or complex

Output beam parameter in the tangential plane.

qy1 : BeamParam or complex

Input beam parameter in the sagittal plane.

qy2 : BeamParam or complex

Output beam parameter in the sagittal plane.

xgamma : float

Misalignment angle in the tangential plane (in radians).

ygamma : float

Misalignment angle in the sagittal plane (in radians).

n1 : int

Input tangential mode index.

m1 : int

Input sagittal mode index.

n2 : int

Output tangential mode index.

m2 : int

Output sagittal mode index.

nr : float, optional; default: 1.0

Refractive index of the associated medium.

wavelength : float, optional; default: 1064 nm

Wavelength of the beam (in metres).

Returns

coeff : complex

The complex coupling coefficient for the specified mode coupling.