psfsim.mirror_properties
Attributes
Functions
|
Compute n of this medium. |
|
Compute cos(theta_medium) from conserved transverse wavevector. |
|
Tilted optical admittance, Q(z) = [U(z),V(z)] |
|
Characteristic matrix for a single thin film layer. |
|
Effective admittance seen at the entrance of the layer stack, given substrate |
|
Reflection coefficient for an incident beam going from vacuum into a medium |
|
Computes the Sellmeier formula for n^2 from Malitson, 1965. |
|
Computes the Yang et al 2015 dielectric function. |
|
Mirror class that calculates the S and P reflectances for a set |
|
Mirror reflection coefficient model. |
Module Contents
- n_medium(epsilon, mu)[source]
Compute n of this medium.
- Parameters:
epsilon (complex) – The dielectric and diamagnetic constants.
mu (complex) – The dielectric and diamagnetic constants.
- Returns:
The complex index of refraction.
- Return type:
complex
- cosine_theta_medium(theta_inc, n_inc, n_medium)[source]
Compute cos(theta_medium) from conserved transverse wavevector.
This is
n_inc * sin(theta_inc) = n_med * sin(theta_med)- Parameters:
theta_inc (float) – Incident angle of
RomanRayBundleonto the surface of the mediumn_inc (complex) – Indices of refraction for the incident (usually vacuum) and medium
n_medium (complex) – Indices of refraction for the incident (usually vacuum) and medium
- Returns:
Cosine of the reduced angle in the medium. May be complex if the medium is lossy.
- Return type:
complex
- tilted_optical_admittance(cos_theta_medium, epsilon, mu, polarisation_mode)[source]
Tilted optical admittance, Q(z) = [U(z),V(z)]
For TE: Q = (1/z) * cos(theta_medium) For TM: Q = z * cos(theta_medium)
- Parameters:
cos_theta_medium (float or np.ndarray of float) – Cosine of the angle theta in that layer
epsilon (complex) – Elec. permittivity and mag. permeability of the layer
mu (complex) – Elec. permittivity and mag. permeability of the layer
polarisation_mode (str) – Can pass either {TM or P} or {TE or S} as choices
- Returns:
Q(z); form depends on polarisation_mode.
- Return type:
complex
- thin_film_characteristic_matrix(thickness, k_0, n_inc, theta_inc, epsilon, mu, polarisation_mode)[source]
Characteristic matrix for a single thin film layer.
- Parameters:
thickness (float) – Thickness of the thin film in nm
k_0 (float) – Vacuum wavevector in inverse mm
n_inc (complex) – Refractive index of the incident medium, used to define the conserved transverse wavevector
theta_inc (float or np.ndarray of float) – Angle of incidence rel. to normal in radians
epsilon (complex) – Relative elec. permittivity and mag. permeability of this layer
mu (complex) – Relative elec. permittivity and mag. permeability of this layer
polarisation_mode (str) – Which polarisation mode is being solved for, TE or TM
- Returns:
Characteristic matrix for this layer, (2x2)
- Return type:
np.array of complex
- effective_admittance(matrix, Q_0)[source]
Effective admittance seen at the entrance of the layer stack, given substrate admittance Q_0 and the characteristic matrix for the thin film above it.
- Parameters:
matrix (np.array) – Characteristic matrix of thin film above substrate
Q_0 (complex) – The optical admittance of the substrate
- Returns:
Q – Effective admittance for the layer stack
- Return type:
complex
- reflection_coefficient(Q_vacuum, Q_medium)[source]
Reflection coefficient for an incident beam going from vacuum into a medium
- Parameters:
Q_vacuum (complex) – Admittance in vacuum
Q_medium (complex or np.ndarray of complex) – Optical admittance of the medium
- Returns:
Complex-valued reflection coefficient
- Return type:
complex or np.ndarray of complex
- sio2_epsilon(wavelength: float)[source]
Computes the Sellmeier formula for n^2 from Malitson, 1965.
- Parameters:
wavelength (float) – Wavelength in microns.
- Returns:
epsilon – SiO2 electric permittivity (real valued).
- Return type:
float
- ag_epsilon(wavelength: float)[source]
Computes the Yang et al 2015 dielectric function.
- Parameters:
wavelength (float) – wavelength in microns
- Returns:
Complex-valued dielectric constant of silver.
- Return type:
complex
- reflect_RB_off_mirror(thetas, wavelength, epsilon_coat=2.1, thickness=110.0, reduce=0.0)[source]
Mirror class that calculates the S and P reflectances for a set of angles theta, for a given wavelength
- Parameters:
thetas (np.array) – Angles in radians
wavelength (float) – wavelength in mm
epsilon_coat (float or list, optional) – The dielectric constant of the coating layer (set to
Nonefor SiO2).thickness (float or list, optional) – Thickness of the coating in nm.
reduce (float, optional) – If specified, adjust the epsilon_2 (lossy part) of the silver at short wavelengths. (This varies by sample, so we allow it when doing an empirical fit.)
- Returns:
te_ceofs, tm_coefs – Complex-valued reflection coefficients for the TE & TM modes
- Return type:
complex
Notes
epsilon_coat and thickness should be either both floats (single layer) or lists (multi-layer, in order from the silver toward vacuum).
- reflect_RB_model(thetas, wavelength)[source]
Mirror reflection coefficient model.
This is packaged so you can use it in
romantrace.py.Right now this is an idealized 1-layer coating. It gets the right behavior for the reflectivities, and the correct linear retardance behavior with zero-crossing at 600 nm.
The reflectivities at 45 degrees (compared to the data we got from L3 Harris) are:
Wavelength
S-pol model
S-pol data
P-pol model
P-pol data
500 nm
98.8%
99.0%
97.5%
97.8%
1100 nm
97.9%
97.8%
98.2%
97.8%
2400 nm
99.2%
99.5%
98.7%
98.5%
So for now I recommend using this only to assess how significant the polarization effects are likely to be — this isn’t the “truth”!
There is a phase shift inserted here so that the reflectivity is measured relative to an ideal surface at 160 nm below (toward substrate) relative to the top surface of the protective coating.
- Parameters:
thetas (np.array) – Angles in radians
wavelength (float) – wavelength in mm
- Returns:
te_ceofs, tm_coefs – Complex-valued reflection coefficients for the TE & TM modes
- Return type:
complex