pyoptics.interfaces¶
Fresnel coefficients of a single planar interface between two media.
All functions take the angle of incidence phi_1 (in radians, measured
from the surface normal) and the refractive indices n_1 of the incident
and n_2 of the second medium. Every argument may be a number or an array;
arrays broadcast against each other with the usual NumPy rules, so a sweep
over angles and wavelengths is a single call.
Conventions¶
Fields vary as exp(i(k.r - omega*t)): a wave travelling in +z is exp(+i*k_z*z), and absorbing media have refractive indices n + i*kappa with kappa > 0. The normal component of the transmitted wave vector, k_0*n_2*cos(phi_2), is chosen with a non-negative imaginary part, so that transmitted waves (evanescent ones under total internal reflection, or waves in absorbing media) decay away from the interface.
The amplitude coefficients are ratios of the full electric field amplitudes with the sign convention of Hecht, Optics, eqs. (4.42) - (4.45): at normal incidence r_s = (n_1 - n_2)/(n_1 + n_2) and r_p = (n_2 - n_1)/(n_1 + n_2). The p-wave reference directions are such that r_p = tan(phi_1 - phi_2)/ tan(phi_1 + phi_2) for dielectrics, which vanishes at Brewster’s angle.
The energy coefficients R and T are ratios of the normal components of the
time averaged Poynting vectors. They are well defined for a lossless incident
medium (real n_1) only; then R + T = 1 also for an absorbing second
medium, T being the power that enters it.
References¶
M. Born and E. Wolf, “Principles of Optics”, 7th ed., Cambridge University Press (1999), section 1.5.
Hecht, “Optics”, 5th ed., Pearson (2017), section 4.6.
Zangwill, “Modern Electrodynamics”, Cambridge University Press (2013).
R. M. A. Azzam and N. M. Bashara, “Ellipsometry and Polarized Light”, North-Holland (1977).
Functions
Reflectance (power reflection coefficient) for p-polarized waves. |
|
Reflectance (power reflection coefficient) for s-polarized waves. |
|
Transmittance (power transmission coefficient) for p-polarized waves. |
|
Transmittance (power transmission coefficient) for s-polarized waves. |
|
Brewster's angle, at which the p-wave reflectance vanishes. |
|
Critical angle for total internal reflection. |
|
Reflection coefficient (field amplitude) for p-polarized waves. |
|
Reflection coefficient (field amplitude) for s-polarized waves. |
|
Angle of the refracted wave from Snell's law. |
|
Transmission coefficient (field amplitude) for p-polarized waves. |
|
Transmission coefficient (field amplitude) for s-polarized waves. |
- pyoptics.interfaces.refracted_angle(phi_1, n_1, n_2)[source]¶
Angle of the refracted wave from Snell’s law.
- Parameters:
- phi_1number or array
Angle of incidence in radians.
- n_1, n_2numbers or arrays
(Complex) refractive indices of the incident and the second medium.
- Returns:
- phi_2number or array
Refracted angle in radians, solving n_1*sin(phi_1) = n_2*sin(phi_2). Real for propagating waves between lossless media, complex under total internal reflection or for absorbing media. Of the two solutions of Snell’s law, the one with Im(n_2*cos(phi_2)) >= 0 is returned, i.e. the transmitted wave exp(i*n_2*k_0*cos(phi_2)*z) decays (exp(-i*omega*t) convention).
- pyoptics.interfaces.r_s(phi_1, n_1, n_2)[source]¶
Reflection coefficient (field amplitude) for s-polarized waves.
- Parameters:
- phi_1number or array
Angle of incidence in radians.
- n_1, n_2numbers or arrays
(Complex) refractive indices of the incident and the second medium.
- Returns:
- rnumber or array
(n_1*cos(phi_1) - n_2*cos(phi_2))/(n_1*cos(phi_1) + n_2*cos(phi_2)). Real for propagating waves between lossless media, complex otherwise.
- pyoptics.interfaces.r_p(phi_1, n_1, n_2)[source]¶
Reflection coefficient (field amplitude) for p-polarized waves.
- Parameters:
- phi_1number or array
Angle of incidence in radians.
- n_1, n_2numbers or arrays
(Complex) refractive indices of the incident and the second medium.
- Returns:
- rnumber or array
(n_2*cos(phi_1) - n_1*cos(phi_2))/(n_2*cos(phi_1) + n_1*cos(phi_2)). Real for propagating waves between lossless media, complex otherwise.
- pyoptics.interfaces.t_s(phi_1, n_1, n_2)[source]¶
Transmission coefficient (field amplitude) for s-polarized waves.
- Parameters:
- phi_1number or array
Angle of incidence in radians.
- n_1, n_2numbers or arrays
(Complex) refractive indices of the incident and the second medium.
- Returns:
- tnumber or array
2*n_1*cos(phi_1)/(n_1*cos(phi_1) + n_2*cos(phi_2)). Note t_s = 1 + r_s.
- pyoptics.interfaces.t_p(phi_1, n_1, n_2)[source]¶
Transmission coefficient (field amplitude) for p-polarized waves.
- Parameters:
- phi_1number or array
Angle of incidence in radians.
- n_1, n_2numbers or arrays
(Complex) refractive indices of the incident and the second medium.
- Returns:
- tnumber or array
2*n_1*cos(phi_1)/(n_2*cos(phi_1) + n_1*cos(phi_2)). Note n_2*t_p = n_1*(1 + r_p).
- pyoptics.interfaces.R_s(phi_1, n_1, n_2)[source]¶
Reflectance (power reflection coefficient) for s-polarized waves.
- Parameters:
- phi_1number or array
Angle of incidence in radians.
- n_1, n_2numbers or arrays
(Complex) refractive indices of the incident and the second medium.
- Returns:
- Rnumber or array
|r_s|**2.
- pyoptics.interfaces.R_p(phi_1, n_1, n_2)[source]¶
Reflectance (power reflection coefficient) for p-polarized waves.
- Parameters:
- phi_1number or array
Angle of incidence in radians.
- n_1, n_2numbers or arrays
(Complex) refractive indices of the incident and the second medium.
- Returns:
- Rnumber or array
|r_p|**2.
- pyoptics.interfaces.T_s(phi_1, n_1, n_2)[source]¶
Transmittance (power transmission coefficient) for s-polarized waves.
Ratio of the normal components of the time averaged Poynting vectors of the transmitted and the incident wave. T_s = 0 under total internal reflection, and R_s + T_s = 1 for a lossless incident medium.
- Parameters:
- phi_1number or array
Angle of incidence in radians.
- n_1, n_2numbers or arrays
Refractive indices of the incident (real) and the second (complex) medium.
- Returns:
- Tnumber or array
Re(n_2*cos(phi_2))/Re(n_1*cos(phi_1))*|t_s|**2.
- pyoptics.interfaces.T_p(phi_1, n_1, n_2)[source]¶
Transmittance (power transmission coefficient) for p-polarized waves.
Ratio of the normal components of the time averaged Poynting vectors of the transmitted and the incident wave. T_p = 0 under total internal reflection, and R_p + T_p = 1 for a lossless incident medium.
- Parameters:
- phi_1number or array
Angle of incidence in radians.
- n_1, n_2numbers or arrays
Refractive indices of the incident (real) and the second (complex) medium.
- Returns:
- Tnumber or array
Re(conj(n_2)*cos(phi_2))/Re(conj(n_1)*cos(phi_1))*|t_p|**2.
- pyoptics.interfaces.brewster_angle(n_1, n_2)[source]¶
Brewster’s angle, at which the p-wave reflectance vanishes.
- Parameters:
- n_1, n_2numbers or arrays
Real refractive indices of the incident and the second medium.
- Returns:
- phi_Bnumber or array
arctan(n_2/n_1) in radians. Brewster’s angle exists for both directions of incidence; going from the denser medium, it lies below the critical angle.
- pyoptics.interfaces.critical_angle(n_1, n_2)[source]¶
Critical angle for total internal reflection.
- Parameters:
- n_1, n_2numbers or arrays
Real refractive indices of the incident and the second medium.
- Returns:
- phi_cnumber or array
arcsin(n_2/n_1) in radians where n_1 >= n_2, NaN where n_1 < n_2 (no total internal reflection when going into a denser medium).