Materials description
Brief description of dispersion of light by optical materials and how it is implemented in PAOS
.
In PAOS
, this is handled by the class Material
.
Light dispersion
In optics, dispersion is the phenomenon in which the phase velocity of a wave depends on its frequency:
where \(c\) is the speed of light in a vacuum and \(n\) is the refractive index of the dispersive medium. Physically, dispersion translates in a loss of kinetic energy through absorption. The absorption by the dispersive medium is different at different wavelengths, changing the angle of refraction of different colors of light as seen in the spectrum produced by a dispersive Prism and in chromatic aberration of Thick lens.
This can be seen in geometric optics from Snell’s law:
that describes the relationship between the angle of incidence \(\theta_1\) and refraction \(\theta_2\) of light passing through a boundary between an isotropic medium with refractive index \(n_1\) and another with \(n_2\).
For air and optical glasses, for visible and infra-red light refraction indices \(n\) decrease with increasing \(\lambda\) (normal dispersion), i.e.
while for ultraviolet the opposite behaviour is typically the case (anomalous dispersion).
See later in Supported materials for the dispersion behaviour of supported optical materials in PAOS
.
Sellmeier equation
The Sellmeier equation is an empirical relationship for the dispersion of light in a particular transparent medium such as an optical glass in function of wavelength. In its original form (Sellmeier, 1872) it is given as
where \(n\) is the refractive index, \(\lambda\) is the wavelength and \(K_i\) and \(\sqrt{L_i}\) are the Sellmeier coefficients, determined from experiments.
Physically, each term of the sum represents an absorption resonance of strength \(K_i\) at wavelength \(\sqrt{L_i}\). Close to each absorption peak, a more precise model of dispersion is required to avoid non-physical values.
PAOS
implements the Sellmeier 1 equation (Zemax OpticStudio \(^{©}\) notation) to estimate the index of refraction
relative to air for a particular optical glass at the glass reference temperature and pressure
This form of the original equation consists of only three terms and is given as
The resulting refracting index should deviate by less than \(10^{-6}\) from the actual refractive index which is order of the homogeneity of a glass sample (see e.g. Optical properties).
Example
Code example to use Material
to estimate and plot the index of refraction of borosilicate
crown glass (known as BK7) for a range of wavelengths from the visible to the infra-red.
import numpy as np
import matplotlib.pyplot as plt
from paos.util.material import Material
wl = np.linspace(0.5, 8.0, 100)
mat = Material(wl=wl)
glass = 'BK7'
material = mat.materials[glass]
sellmeier = mat.sellmeier(material['sellmeier'])
fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(1,1,1)
ax.plot(wl, sellmeier)
ax.set_title(f'{glass} refractive index')
ax.set_ylabel('Sellmeier')
ax.set_xlabel(r'Wavelength [$\mu$m]')
plt.grid()
plt.show()
Temperature and refractive index
Changes in the temperature of the dispersive medium affect the refractive index. The temperature coefficient of refractive index is defined as the deviation \(dn/dT\) from the curve and depends from both wavelength and temperature.
The temperature coefficient values can be given as absolute (as measured under vacuum) and relative (as measured at ambient air (dry air at standard pressure).
PAOS
estimates the air reference index of refraction as
where \(\lambda\) is in units of micron, at the reference temperature \(T = 15 ^{\circ} C\) and standard pressure.
Under different temperatures and pressures, PAOS
rescales this reference index using this formula
The absolute temperature coefficient for a different medium can be calculated from the relative index as (see e.g. Optical properties).
PAOS
calculates the refractive index of an optical material at a given pressure and temperature as
where \(\Delta T\) is given by the difference between the material operative temperature \(T_{oper}\) and the reference temperature \(T_{ref}\), \(n\) is the refractive index as estimated using (53) and \(D_0\) is a temperature constant of the material.
Example
Code example to use Material
to estimate the index of refraction of borosilicate crown
glass (known as BK7) for a given wavelength at reference and operating temperature.
from paos.util.material import Material
wl = 1.95 # micron
Tref, Tambient = 20.0, -223.0
mat = Material(wl, Tambient=Tambient)
glass = 'BK7'
nmat0, nmat = mat.nmat(glass)
from IPython.display import display, Latex
display(Latex("\\textrm{Index of refraction at } T_{ref} = %0.1f:\\newline n_{%s, 0} = %0.4f " % (Tref, glass, nmat0)))
display(Latex("\\textrm{Index of refraction at } T_{amb} = %0.1f:\\newline n_{%s, 0} = %0.4f " % (Tambient, glass, nmat)))
Pressure and refractive index
Note also that PAOS
can easily model systems used in a vacuum by changing the air pressure to zero.
Example
Same code example as before, but ambient pressure is set to zero.
mat = Material(wl, Tambient=Tambient, Pambient=0.0)
nmat0, nmat = mat.nmat(glass)
from IPython.display import display, Latex
display(Latex("\\textrm{Index of refraction at } T_{ref} = %0.1f:\\newline n_{%s, 0} = %0.4f " % (Tref, glass, nmat0)))
display(Latex("\\textrm{Index of refraction at } T_{amb} = %0.1f:\\newline n_{%s, 0} = %0.4f " % (Tambient, glass, nmat)))
Note the non-negligible difference in the resulting refractive indexes.
Supported materials
PAOS
supports a variety of optical materials (list is still updating), among which:
CAF2 (calcium fluoride)
SAPPHIRE (mainly aluminium oxide (\(\alpha-Al_2 O_3\)) )
ZNSE (zinc selenide)
BK7 (borosilicate crown glass)
SF11 (a dense-flint glass)
BAF2 (barium flouride)
The relevant ones for the Ariel space mission are all of them except BAF2. A detailed description of the optical properties of these materials is beyond the scope of this documentation. However, for reference, Fig. 25 reports their transmission range (from Thorlabs, Optical Substrates).
Example
Code example to use Material
to print all available optical materials.
from paos.util.material import Material
mat = Material(wl=1.95)
print('Supported materials: ')
print(*mat.materials.keys(), sep = "\n")
Supported materials:
CAF2
SAPPHIRE
ZNSE
BK7
SF6
SF11
BAF2
Example
Code example to use Material
to plot the refractive index for all available optical
materials, at their operating and reference temperature.
from paos.util.material import Material
mat = Material(wl=np.linspace(0.5, 8.0, 100))
mat.plot_relative_index(material_list=mat.materials.keys())