pypolar
by Scott Prahl
Code to model and visualize the polarization state of light as it travels through polarizers and birefringent elements. Some ellipsometry support is also included.
There are four numeric modules:
- pypolar.fresnel - reflection and transmission calculations
- pypolar.jones - management of polarization using the Jones calculus
- pypolar.mueller - management of polarization using the Mueller calculus
- pypolar.ellipsometry - ellipsometry support
A module for visualization:
- pypolar.visualization - Routines to support visualization
and three modules that support symbolic algebra:
- pypolar.sym_fresnel - Fresnel reflection and transmission
- pypolar.sym_jones - Jones calculus
- pypolar.sym_mueller - Mueller calculus
Detailed documentation is available at Read the Docs.
Installation
Use pip:
pip install pypolar
Usage
Create an optical isolator:
import pypolar.mueller as mueller # Optical Isolator example, no light returning A = mueller.stokes_right_circular() # incident light B = mueller.op_linear_polarizer(np.pi/4) # polarizer at 45° C = mueller.op_quarter_wave_plate(0) # QWP with fast axis horizontal D = mueller.op_mirror() # first surface mirror E = mueller.op_quarter_wave_plate(0) # QWP still has fast axis horizontal F = mueller.op_linear_polarizer(-np.pi/4) # now at -45° because travelling backwards F @ E @ D @ C @ B @ A
License
pypolar is licensed under the terms of the MIT license.