Jones Calculus

Index

Optical Beams

The Jones vector describes the polarisation of a light beam, defined as

\[\begin{pmatrix} E_{0x} e^{i\phi_x} \\ E_{0y} e^{i\phi_y} \end{pmatrix},\]

where $E_0$ are magnitudes of the electric field, and $\phi$ are phases of the wave, both in $x$ and $y$ directions.

Common normalised Jones vectors are included in the package:

Optical Elements

The Jones matrices are operators that act on the Jones vectors defined above. These matrices are implemented by various optical elements such as lenses, beam splitters, mirrors, etc. Each matrix represents projection onto a one-dimensional complex subspace of the Jones vectors.

Polarizers

The package specifies the following polarisers:

Polarisation.Jones.lpFunction
lp(θ)

Linear polariser at angle $\theta$:

\[\begin{pmatrix} \cos^2(\theta) & (\theta)sin(\theta) \\ \cos(\theta)\sin(\theta) & \sin^2(\theta) \end{pmatrix}\]

source

Phase retarders

Phase retarders introduce a phase shift between the vertical and horizontal component of the field and thus change the polarization of the beam.

Polarisation.Jones.qwpFunction
qwp(θ = 0)

Quarter-wave plate:

\[e^\frac{-i\pi}{4} \begin{pmatrix} \cos^2(\theta)+i \sin^2(\theta) & (1-i)\sin(\theta)\cos(\theta) \\ (1-i)\sin(\theta)\cos(\theta) & \sin^2(\theta)+i\cos^2(\theta) \end{pmatrix}\]

source
Polarisation.Jones.hwpFunction
hwp(θ = 0)

Half-wave plate:

\[e^\frac{-i\pi}{2} \begin{pmatrix} \cos^2(\theta)-\sin^2(\theta) & 2\sin(\theta)\cos(\theta) \\ 2\sin(\theta)\cos(\theta) & \sin^2(\theta)-\cos^2(\theta) \end{pmatrix}\]

source

Custom operator

The Jones calculus requires matrix multiplication to happen in reverse, starting with the final element, and moving back to the beam. Since this is unintuitive, in Julia we can override operators and have a handy shortcut:

Base.:|Function
|

Perform Jones matrix multiplication on a reversed list of arguments.

source

For example, let's take a left-handed circularly polarised beam of light, going through a quarter-wave plate, linear polariser, and another quarter-wave plate. Ordinarily, we would write it as:

qwp(90) * lp(45) * qwp * lhcp ≈ lhcp

But with | operator, we can say:

lhcp | qwp(0) | lp(45) | qwp(90) ≈ lhcp

which is a more natural way to express it.

References