finesse.knm.compute_knm_matrix_bh

finesse.knm.compute_knm_matrix_bh(double complex qx1, double complex qy1, double complex qx2, double complex qy2, double xgamma, double ygamma, double nr_out, const int[:, ::1] homs, double lambda0, bool reverse_gouy, double complex[:, ::1] out=None)

Compute the \(k_{nmn'm'}\) matrix using the Bayer-Helms [1] analytic method.

For mathematical details on the exact equations used to compute the coupling coefficients see Coupling of higher-order-modes.

Parameters

qx1 : complex

Input beam parameter in tangential plane.

qy1 : complex

Input beam parameter in sagittal plane.

qx2 : complex

Output beam parameter in tangential plane.

qy2 : complex

Output beam parameter in sagittal plane.

xgamma : float

Misalignment angle from optical axis in tangential plane.

ygamma : float

Misalignment angle from optical axis in sagittal plane.

nr_out : float

Index of refraction of output section.

homs : contiguous array

Array of HG modes to compute couplings between, formatted as [(n0, m0), (n1, m1), …].

lambda0 : float

Default wavelength of the light field, in metres.

reverse_gouy : bool

If true sets the coupling coefficients, for each mode coupling, using the reverse gouy phase.

out : contiguous array, optional

Matrix in which the coupling coefficients are stored. If not specified then a new numpy.ndarray object is returned.

Returns

knm_matrix : numpy.ndarray

The matrix of coupling coefficient values as a numpy array. If out is specified then this array object is returned.