brandondube / prysm

physical optics: integrated modeling, phase retrieval, segmented systems, polynomials and fitting, sequential raytracing...
https://prysm.readthedocs.io/en/stable/
MIT License
268 stars 46 forks source link

Add jones calculus demo, jones vector support #102

Closed Jashcraf closed 1 year ago

Jashcraf commented 1 year ago

This doesn't contain the release notes, but does have our first demo using x.pol, as well as some added support for jones vectors using the same construction as the Jones matrices.

brandondube commented 1 year ago

A few grammar things,

This tutorial will guide you through the basics of Jones calculus, a matrix calculus used for the propagation of polarization through an optical system. Any polarization state can be represented by a simple 2-vector called a Jones vector

This can probably be shortened to

his tutorial will guide you through the basics of Jones calculus. Any polarization state can be represented by a simple 2-vector called a Jones vector

or (polarized)

"or" can be removed

like this

Can remove "this" both times

We can also invoke the complex dimension of polarization to describe a phase delay between the horizontal and linear polarization states. A quarter-wave phase delay is or . If we add this phase delay to the component, the resultant Jones vector looks like this:

I think the "complex" here is redundant, since the opening equation uses "E" (E-field) notation. Perhaps it is more clear to write something of the sense,

Wave plates and other components that impart polarization-dependent phase shifts are represented by modifying the complex phase of each element of $\mathbf{v}$. For example, a quarter wave plate looks like:

In this block,

from prysm.x.polarization import linear_polarizer

h_polarizer = linear_polarizer()
print(h_polarizer)

I think it would be a nice touch to use the kwarg in linear polarizer, so that the user can see this could make other orientations as well.

brandondube commented 1 year ago

Please also add the new tutorial to the index file for tutorials,

docs/source/tutorials/index.rst

Jashcraf commented 1 year ago

I made all of the recommended changes except on the note of the "complex" being redundant. The way the notebook is currently written Jones matrices aren't introduced yet, so it feels out of place to introduce a QWP before talking more generally about Jones matrices.

I do bring up that the elements of the Jones vector are complex amplitudes earlier, so I just deleted the mention of complex and changed this block of text to:

We can also describe a polarization state with a phase delay between the horizontal and linear polarization states.

Jashcraf commented 1 year ago

corrected the polarizer at 22.5 deg to be 0 degrees so it's truly a horizontal polarizer. Also reset the notebook so that the cells aren't executed yet.

brandondube commented 1 year ago

Merged :)