Copyright | (C) 2018 Nathan Waivio |
---|---|
License | BSD3 |
Maintainer | Nathan Waivio <nathan.waivio@gmail.com> |
Stability | Stable |
Portability | unportable |
Safe Haskell | Safe |
Language | Haskell2010 |
Library implementing standard functions for the Jones Calculus in the Cl3 Library. This implementation of the Jones Calculus is based on the convensions of SPIE's Field Guide to Polarization (ϕ = ω t − k z).
- E. Collett, Field Guide to Polarization, SPIE Field Guides vol. FG05, SPIE (2005). ISBN 0-8194-5868-6.
Jones Vectors
Within the system of the Bloch Sphere, the Jones Vectors in Cl3 are calculated
by generating the left ideal of the rotation of a unit vector to the e3
basis.
Standard form for for a versor is 'rot = exp $ (-i/2) * theta * u' for angle theta
and the rotational axis unit vector u
.
Bloch Sphere Coordinates:
e3 | |____e2 / / e1
- hpv :: Cl3
- vpv :: Cl3
- dpv :: Cl3
- apv :: Cl3
- rpv :: Cl3
- lpv :: Cl3
- jv :: Cl3 -> Cl3
- hpm :: Cl3
- vpm :: Cl3
- dpm :: Cl3
- apm :: Cl3
- rpm :: Cl3
- lpm :: Cl3
- jm :: Cl3 -> Cl3
- hpmRot :: Cl3 -> Cl3
- qwp :: Cl3
- hwp :: Cl3
- qwpRot :: Cl3 -> Cl3
- hwpRot :: Cl3 -> Cl3
- wp :: Cl3 -> Cl3
- wpRot :: Cl3 -> Cl3 -> Cl3
- refl :: Cl3
- randJonesVec :: RandomGen g => g -> (Cl3, g)
- randOrthogonalJonesVec :: RandomGen g => g -> ((Cl3, Cl3), g)
- factorize :: Cl3 -> (Cl3, Cl3, Cl3)
Jones Vectors
jv
function that returns Jones vector from input vector unit vector
currently converts the input to a unit vector
Jones Matrices
jm
funciton that returns a Jones Matrix from an input Bloch Vector
currently converts the input to a unit vector
hpmRot
Jones matrix for a rotated ideal Linear Horizontal Polarizer.
Input value should be a scalar angle in Radians.
Wave Plates
qwpRot
Rotated Quarter Wave Plate Jones Matrix.
Input value should be a scalar angle in Radians.
hwpRot
Rotated Half Wave Plate Jones Matrix.
Input value should be a scalar angle in Radians.
wp
a Wave Plate with phase shift of phi Jones Matrix.
Input value should be a scalar angle in Radians.
wpRot :: Cl3 -> Cl3 -> Cl3 Source #
wpRot
a Rotated Wave Plate with phase shift of phi and rotation theta Jones Matrix.
The first input value is phi the phase shift as a scalar value in Radians. The second
input value is theta the rotation a scalar angle in Radians.
Reflection
Random Jones Vectors
randJonesVec :: RandomGen g => g -> (Cl3, g) Source #
randJonesVec
a Random Jones Vector.
randOrthogonalJonesVec :: RandomGen g => g -> ((Cl3, Cl3), g) Source #
randOrthogonalJonesVec
a Random Orthogonal Complementary pair of Jones
Vectors.