finesse.knm.bayerhelms.make_bayerhelms_matrix

finesse.knm.bayerhelms.make_bayerhelms_matrix(qx1, qx2, qy1, qy2, double xgamma, double ygamma, double nr=1.0, double wavelength=1064e-9, bool reverse_gouy=False, bool parallel=True, **mode_selection_kwargs)

Constructs and computes a coupling coefficient scattering matrix using the Bayer-Helms [27] analytic formalism.

See the function make_modes() for the arguments which should be passed via mode_selection_kwargs.

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).

nrfloat, optional; default: 1.0

Refractive index of the associated medium.

wavelengthfloat, optional; default: 1064 nm

Wavelength of the beam (in metres).

reverse_gouybool, optional

Removing Gouy phase terms from calculated matrix

parallelbool, optional; default: True

Whether to enable multi-threaded execution via OpenMP. The number of threads used scales with the number of modes; bounded by the maximum thread count as given by omp_get_max_threads.

mode_selection_kwargskeyword arguments

See make_modes().

Returns
kmatKnmMatrix

The resulting scattering matrix as a KnmMatrix object.

Examples

See Computing arbitrary scattering matrices.