Skip to content
A command line utility for doing polarization simulations
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Add user guide Mar 19, 2019
guide_src Tweak wording in Mar 29, 2019
src Update polarization dependency to 0.2.0 Aug 21, 2019
.gitignore Belatedly add tests for config file validation Oct 13, 2018
.travis.yml Update Travis config to upload releases Feb 5, 2019
Cargo.toml Update polarization dependency to 0.2.0 Aug 21, 2019
LICENSE-APACHE Add licenses and README Sep 20, 2018
LICENSE-MIT Add licenses and README Sep 20, 2018 Tweak wording in Mar 29, 2019


Build Status

For installation and usage instructions, see the User Guide.

Elevator Pitch

Would you rather look up (or calculate) the Jones matrix for an optical retarder oriented at an arbitrary angle with an arbitrary phase delay, or would you rather just type this:

element_type = "retarder"
phase = 1.57  # pi/2
phase_units = "radians"
angle = 45.0
angle_units = "degrees"


Here's how it works:

  • You specify a beam and some optical elements in a TOML file.
  • The command line utility reads the file and performs the simulation.
  • The results of the simulation are printed to the terminal.

For example, to specify a linearly polarized beam oriented at 0 degrees (i.e. horizontally) that passes through a polarizer oriented at 45 degrees, your file would look like this:

# simulation.toml
polarization = "linear"
angle = 0.0
angle_units = "degrees"

element_type = "polarizer"
angle = 45.0
angle_units = "degrees"

You would use polsim to read the file and do the simulation like this:

$ polsim simulation.toml
intensity: 5.00000e-1
x_mag: 5.00000e-1
x_phase: 0.00000e0
y_mag: 5.00000e-1
y_phase: 0.00000e0

If you want to impress your friends and family, you can print the results in a table via the -p/--pretty flag:

$ polsim -p simulation.toml
| intensity  | x_mag      | x_phase   | y_mag      | y_phase   |
| 5.00000e-1 | 5.00000e-1 | 0.00000e0 | 5.00000e-1 | 0.00000e0 |

For more information, see the User Guide.


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

You can’t perform that action at this time.