Jashcraf / poke

Poke (pronounced poh-keh) is a Polarization Ray Tracing and Gaussian Beamlet module for Python
BSD 3-Clause "New" or "Revised" License
32 stars 6 forks source link

Implement double-pole basis for creating Jones pupil #1

Closed Jashcraf closed 2 years ago

Jashcraf commented 2 years ago

We can make PRT matrices! Huzzah! But this means little-to-nothing if we can't create a Jones pupil with it. In Chipman's class we discussed how the double pole coordinate system is the most robust for mitigating polarization artifacts because 1) the poles are hidden and 2) it mimics the shape of polarization in optical systems.

The procedure is in CLY Chapter 11.4, and it relies on a rotation matrix about an axis, here is that matrix from wikipedia:

image
Jashcraf commented 2 years ago

It's implemented but unverified - poked Pol lab folks to see if I they could tell what I was doing wrong. Shouldn't the off-diagonals corresponding to the local z-term be zero?

image

Jashcraf commented 2 years ago
image
Jashcraf commented 2 years ago

Quinn pointed me to this equation for doing the right transformation

image
Jashcraf commented 2 years ago

This was implemented a while ago in the GlobalToLocalCoordinates function, closing this issue.