finesse.cymath.homs.HGModes

Overview

class finesse.cymath.homs.HGModes(q, modes, bool zero_tem00_gouy=False, bool reverse_gouy=False, bool flip_odd_x_modes=False)

Bases: object

A class that calculates a selection of Hermite-Gaussian modes.

Parameters
q[complex | BeamParam]

Complex valued beam parameter. If one if given qx = qy. Otherwise an iterable of two must be given (qx, qy).

modestuple((n, m))

list of mode indices

zero_tem00_gouybool, optional

When True, the HG00 mode will have its gouy phase removed, and relatively removed from all other HG modes. ie. gouy = (n+m)*Gouy rather than (1+n+m)*Gouy

reverse_gouybool, optional

Gouy phase is removed from coupling coefficients when True

flip_odd_x_modesbool, optional

When True any output mode with an odd n index will have a negative sign applied. This should be used in reflection cases due to the coordinate system change.

Properties

HGModes.unique_m_modes

HGModes.unique_map

HGModes.unique_n_modes

Methods

HGModes.__init__(*args, **kwargs)

HGModes.Unm(self, int n, int m, double x, ...)

HGModes.compute_1d_modes(self, double[, double[)

Calculates the Un and Um modes arrays for the modes that were specificied when creating this HGModes object.

HGModes.compute_2d_modes(self, double[, double[)

Calculates the Unm modes that were specificied when creating this HGModes object.

HGModes.compute_points(self, double[, double[)

Calculates the Unm modes over a set of (x,y) points.