Skip to content

DarioS09/pypolar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pypolar

A basic collection of routines to track and visualize polarization through polarizers and birefringent elements. Some basic ellipsometry support is also included.

There are four modules

  • pypolar.fresnel - Fresnel reflection and transmission calculations
  • pypolar.jones - Routines to support the Jones calculus
  • pypolar.mueller - Routines to support the Mueller calculus
  • pypolar.visualization - Routines to support visualization

Jupyter notebook documentation is included, but overall testing could be better. The Mueller module is still incomplete.

Simple Example

import pypolar.mueller as mueller

# Optical Isolator example

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```

# net result is no light
F @ E @ D @ C @ B @ A

Detailed Documentation

Installation

Use pip

pip install pypolar

Dependencies

Required Python modules: numpy, matplotlib

License

pypolar is licensed under the terms of the MIT license.

About

Routines to track changes in polarization using Jones calculus

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%