gyger / pypolar

Python modules for polarization changes using Jones or Mueller calculus

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pypolar


A collection of routines to track and visualize polarization 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.

About

Python modules for polarization changes using Jones or Mueller calculus

License:MIT License


Languages

Language:Python 96.5%Language:C++ 2.3%Language:Makefile 1.2%