pyoptics.polarization.mueller¶
Tools for Müller calculus: Müller matrices of common elements optical elements and Stokes vectors of common polarization states.
Convention: fields vary as exp(i(k.r - omega*t)). The Stokes parameter S_3 = 2 Im(conj(E_x)*E_y) is positive for E = [1, i]/sqrt(2), i.e. for a field that rotates from x to y in time at a fixed position (positive helicity), see jones.py. All Müller matrices agree with M_from_jones() applied to the corresponding Jones matrix.
References¶
Goldstein, “Polarized Light”, 3rd ed., CRC Press (2011).
S.-Y. Lu and R. A. Chipman, “Interpretation of Mueller matrices based on polar decomposition”, J. Opt. Soc. Am. A 13, 1106-1113 (1996).
R. A. Chipman, W.-S. T. Lam and G. Young, “Polarized Light and Optical Systems”, CRC Press (2018).
Functions
Müller matrix for total internal reflection. |
|
Müller matrix for attenuator with transmission trans. |
|
Construct Müller matrix from Jones matrix. |
|
Linear polarizer with axis of polarization at angle phi. |
|
Müller matrix for reflection from a dieletric film stack. |
|
Müller matrix for reflection from a metal surface. |
|
Müller matrix for retarder with fast axis angle phi and retardance delta. |
|
Müller matrix for transmission from a dieletric film stack. |
|
Retardance of uniaxial crystal hit by ray under an angle. |
|
Compute degree of polarization for given Stokes vector. |
|
Compute Stokes vector for polarization state described by complex electric field components. |
- pyoptics.polarization.mueller.stokes_from_complex_E(E)[source]¶
Compute Stokes vector for polarization state described by complex electric field components.
- Parameters:
- Earray
Complex field amplitude, E[0] is interpreteted as x-component; E[1] as y-component.
- Returns:
- Sarray
Stokes vector.
- pyoptics.polarization.mueller.stokes_DOP(S)[source]¶
Compute degree of polarization for given Stokes vector.
- Parameters:
- Sarrray
- Returns:
- DOPnumber
- pyoptics.polarization.mueller.M_linear_polarizer(phi)[source]¶
Linear polarizer with axis of polarization at angle phi.
- Parameters:
- phinumber
Angle of axis
- Returns:
- Marray
Müller matrix
- pyoptics.polarization.mueller.M_retarder(phi, delta)[source]¶
Müller matrix for retarder with fast axis angle phi and retardance delta.
- Parameters:
- phinumber
Angle of fast axis.
- deltanumber
Phase retardance [rad].
- Returns:
- Marray
Müller matrix
- pyoptics.polarization.mueller.M_attenuator(trans)[source]¶
Müller matrix for attenuator with transmission trans.
- Parameters:
- transnumber
Transmission
- Returns:
- Marray
Müller matrix
- pyoptics.polarization.mueller.M_reflection_dielectric(r_s, r_p, *args)[source]¶
Müller matrix for reflection from a dieletric film stack.
- Parameters:
- r_s, r_pcomplex
Reflection coefficients for s- and p-polarization.
- Returns:
- Marray
Müller matrix for reflection in a coordinate system in which p-polarization is x-axis and s-polarization is y-axis.
Notes
The function accepts additional (unused) arguments which allows to call it with a signature as used in transmission_dielectric().
- pyoptics.polarization.mueller.M_transmission_dielectric(t_s, t_p, theta_in, n_embedding, n_substrate, pol=None)[source]¶
Müller matrix for transmission from a dieletric film stack.
- Parameters:
- t_s, t_pcomplex
Transmission coefficients for s- and p-polarization, defined as ratio of the full electric field amplitudes (as returned by interfaces.t_s() and interfaces.t_p()).
- theta_innumber
Incident angle (in rad).
- n_embedding, n_substratenumber
Refractive index of embedding medium and substrate.
- polstring, optional
Unused. Kept for backwards compatibility: for field amplitude coefficients, the intensity conversion factor n_substrate*cos(theta_out)/(n_embedding*cos(theta_in)) is the same for both polarizations.
- Returns:
- Marray
Müller matrix for transmission in a coordinate system in which p-polarization is x-axis and s-polarization is y-axis.
- pyoptics.polarization.mueller.M_reflection_metal(theta, n_metal, n_embedding=1.0)[source]¶
Müller matrix for reflection from a metal surface.
- Parameters:
- thetanumber
Angle of incidence (in rad).
- n_metalcomplex
(Complex) refractive index of metal.
- Returns:
- Marray
Müller matrix for reflection in a coordinate system in which p-polarization is x-axis and s-polarization is y-axis.
Notes
Source: Christoph Keller’s book “Astrophysical Spectropolarimetry”, p. 330, with signs adapted to the conventions of this module (p along x, exp(-i*omega*t) time dependence, absorbing metals with Im(n_metal) > 0).
- pyoptics.polarization.mueller.M_from_jones(J)[source]¶
Construct Müller matrix from Jones matrix.
- Parameters:
- Jarray
Jones matrix
- Returns:
- Marray
Müller matrix
- pyoptics.polarization.mueller.retardance_from_AOI(theta, phi, delta_0, n_o, n_e)[source]¶
Retardance of uniaxial crystal hit by ray under an angle.
- Parameters:
- thetanumber
Angle of incidence
- phinumber
Angle between plane of incidence and optic axis of crystal
- delta_0number
Retardance at normal incidence
- n_o, n_enumbers
Refractive indices as seen by ordinary and extraordinary rays.
- Returns:
- deltanumber
Retardance for oblique incidence
Notes
The formula is only valid for sin(theta)**2 << n_o**2, n_e**2.
- pyoptics.polarization.mueller.M_TIR(phi, n)[source]¶
Müller matrix for total internal reflection.
- Parameters:
- phinumber
Angle of incidence
- nnumber
(Real) refractive index of the optically denser medium relative to the one beyond the interface.
- Returns:
- Marray
Müller matrix in a coordinate system in which p-polarization is the x-axis and s-polarization is the y-axis. The retardance delta = arg(r_s) - arg(r_p) is positive for the exp(-i*omega*t) convention.