Polarizers

Polarizers in the context of this package are optical elements that select or modify the R³ polarization vector of a PolarizedRay, e.g. filters or λ/2 waveplates. This is mainly done by two approaches:

  1. 3D polarization ray-tracing calculus
  2. 3D modified Jones matrix calculus

For more information on the first method refer to the section: Polarized rays. For the second approach, elements fall under the category of the BeamletOptics.AbstractJonesPolarizer.

BeamletOptics.AbstractJonesPolarizerType
AbstractJonesPolarizer <: AbstractObject

Represents infinitesimally thin components that change the polarization state of incoming PolarizedRays via global Jones matrix calculus. Rather than using the generic Yun ray tracing scheme as referred to in the PolarizedRay docs, this element interacts with the global E-field vector E0 by using a GlobalJonesBasis and projecting the entries into the transverse plane defined by the incoming ray direction and orthogonal E-field vector. This approach is partially inspired by the publication:

Jan Korger et al., "The polarization properties of a tilted polarizer," Opt. Express 21, 27032-27042 (2013)

Warning

It is assumed that the ray direction of propagation is not changed during the interaction.

Implementation reqs.

Subtypes of AbstractJonesPolarizer should implement all supertype requirements.

Interaction logic

The GlobalJonesBasis tracks the rotation in 3D-space via the orientation of the attached AbstractShape. The polarization matrix P is calculated by projecting the previous matrix into the incoming orthogonal plane of polarization. Refer to the _calculate_global_E0 implementation for more information.

Info

The validity of this approach is still under consideration for non-normal incidence.

source

Jones matrix element representation

Fundamentally, the approach used here to simulate the effect of polarizers is referred to as Jones calculus and gives a "0th order" approximation of the physical effect. Out of plane tilts with respect to the optical axis of an incoming ray are currently only considered via a projection into the transverse plane of the incoming ray [13].

In a nutshell, elements are characterized by a 2x2 matrix that determines how the E-field components in the transverse plane to the optical axis are passed through in a global coordinate system where a ray of polarized light propagates along the z-axis. For instance, the entries for a linear filter that blocks in the y-direction are

\[J = \begin{pmatrix} 1 & 0\\ 0 & 0 \end{pmatrix} \,.\]

While this allows to simply model a specific set of polarizing elements, its important to note that more complex phenomena need more extensive implementations. For 3D-calculations, the $J$-matrix representation is embedded into

\[P = \begin{bmatrix} J & \begin{matrix}0 \\ 0\end{matrix} \\ \begin{matrix}0 & 0\end{matrix} & 1 \end{bmatrix}\]

in order to calculate $\vec{E}_1 = P \cdot \vec{E}_0$ for normal incidence. Additional details are provided in the docs above.

Polarisation filter

A polarisation filter or linear polarizer is the simplest practical polarizer and is commonly used to select a desired polarization state. This package provides the PolarizationFilter as an idealized implementation for a zero-thickness filter.

BeamletOptics.PolarizationFilterMethod
PolarizationFilter(edge_length; cutoff_strength)

Spawns a thin, rectangular PolarizationFilter. The edge_length has to be specified in [m]. The filter is aligned with the global y-axis and transmits along the x-axis, while blocking polarization components along the global z-axis.

source