ABCD Optical Ray Matrices#

class lasy.propagators.ABCD(abcd=array([[1, 0], [0, 1]]))[source]#

Class that defines and manipulates ABCD ray matrices for an optical system.

Parameters:
abcd2d array

The 2D ray matrix of the optical system through which the beam propagates. By default, this is initialised to be the unitary matrix:

\[\begin{split}O = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}.\end{split}\]
add_lens(focal_length)[source]#

Add a thin-lens with a focal length \(f_0\).

Parameters:
focal_lengthfloat (in meter)

The focal length of a thin-lens through which the beam propagates. The ray matrix for propagation through a thin lens with focal length \(f_0\) is:

\[\begin{split}O = \begin{pmatrix} 1 & 0 \\ -1/f_0 & 1 \end{pmatrix}.\end{split}\]
add_vacuum(distance)[source]#

Add a propagation over a distance \(z\) in vacuum.

Parameters:
distancefloat (in meter)

The distance in free-space which the beam propagates. The ray matrix for propagation of a distance \(z\) in vacuum is:

\[\begin{split}O = \begin{pmatrix} 1 & z \\ 0 & 1 \end{pmatrix}.\end{split}\]