Jones Calculus (Vectors and Matrices)
Useful for working examples and problems with polarization
import matplotlib.pyplot as plt
from numpy import *
from qutip import *These are the polarization states:
H = Qobj([[1],[0]])
V = Qobj([[0],[1]])
P45 = Qobj([[1/sqrt(2)],[1/sqrt(2)]])
M45 = Qobj([[1/sqrt(2)],[-1/sqrt(2)]])
R = Qobj([[1/sqrt(2)],[-1j/sqrt(2)]])
L = Qobj([[1/sqrt(2)],[1j/sqrt(2)]])RDevices:
HWP - Half-wave plate axis at to the horizontal
LP - Linear polarizer, axis at
QWP - Quarter-wave plate, axis at
Note, these are functions so you need to call them with a specific value of theta.
def HWP(theta):
return Qobj([[cos(2*theta),sin(2*theta)],[sin(2*theta),-cos(2*theta)]]).tidyup()HWP(0)def LP(theta):
return Qobj([[cos(theta)**2,cos(theta)*sin(theta)],[sin(theta)*cos(theta),sin(theta)**2]]).tidyup()def QWP(theta):
return Qobj([[cos(theta)**2 + 1j*sin(theta)**2,
(1-1j)*sin(theta)*cos(theta)],
[(1-1j)*sin(theta)*cos(theta),
sin(theta)**2 + 1j*cos(theta)**2]]).tidyup()Try a linear polarizer at acting on a vertical beam
out = LP(pi/4)*V
outHave to interpret this result: it is a constant times the D polarization state:
1/sqrt(2)*P45Notice, that it is also a combination of the H and V states:
1/2.0*H + 1/2.0*VThis should be somewhat obvious from the vector itself.
Next, find out the intensity of the light that is transmitted. This is given by the “norm” of the vector, sometimes also called the magnitude:
out.norm() # equivalent to sqrt(0.5**2 + 0.5**2)