Zernike Aberrations#

class lasy.optical_elements.ZernikeAberrations(pupil_coords, zernike_amplitudes)[source]#

Class for an optic applying a set of Zernike aberrations.

More precisely, the amplitude multiplier corresponds to:

\[T(\boldsymbol{x}_\perp,\omega) = \exp\left( i \frac{\omega}{c}\sum_j a_j Z_j(\boldsymbol{x}_\perp)\right)\]

where \(\boldsymbol{x}_\perp\) is the transverse coordinate (orthogonal to the propagation direction). \(Z_j\) is the j-th Zernike polynomial, ordered according the OSA/ANSI indexing. The Zernike polynomials are normalized such that their integral over the unit disk is equal to \(\pi\). In the above formula, the total phase added to the pulse is a weighted sum of these Zernike polynomials with weights \(a_j\).

For more information see: https://en.wikipedia.org/wiki/Zernike_polynomials

Parameters:
pupil_coordstuple of floats (meters)

A tuple of floats (cgx,cgy,r) with the first two elements corresponding to the center point and third element the radius of the pupil on which the zernike polynomial is defined.

zernike_amplitudesdict

A dictionary with integer keys representing the OSA/ANSI indexing of the individual Zernike Polynomials. The values corresponding to these keys are floats giving the amplitudes / weights of the relevant Zernike polynomials.

amplitude_multiplier(x, y, omega)[source]#

Return the amplitude multiplier.

Parameters:
x, y, omegandarrays of floats

Define points on which to evaluate the multiplier. These arrays need to all have the same shape.

Returns:
multiplierndarray of complex numbers

Contains the value of the multiplier at the specified points. This array has the same shape as the array omega.