Optics
This page provides a detailed description of the optics functions implemented in the HAOT package. For additional clarity, these descriptions can also be accessed and explored interactively in a Python session using the help() function.
- haot.index_of_refraction_density_temperature(temperature_K, mass_density, molecule='Air', wavelength_nm=633.0)[source]
Calculates dilute and dense index of refraction as a function of mass density and temperature. Uses Kerl approximation for polarizability
- Parameters:
temperature_K (
float) – reference temperature in [K]mass_density (
float) – mass density in [kg/m^3]molecule (
str) – H2, N2, O2, Air(default)wavelength_nm (
float) – signal’s wavelength in [nm], 633(default) [nm]
- Returns:
- A dictionary containing
dilute: dilute index of refraction
dense: dense index of refraction
- Return type:
dict
- haot.index_of_refraction(mass_density_dict)[source]
Calculates dilute and dense index of refraction as a function of mass density
- Parameters:
[kg/m^3] (mass density dictionary in)
[N2 (keys should be elements alone. Ex)
O2
O
N
NO]
- Returns:
- A dictionary containing
dilute: dilute index of refraction
dense: dense index of refraction
- Return type:
dict
- haot.permittivity_material(index_of_refraction)[source]
Calculates the permittivity of the material for a linear dielectric.
- Parameters:
index_of_refraction (
float) – index of refraction- Return type:
float- Returns:
material’s permittivity in [F/m]
- Reference:
Introduction to Electrodynamics, 4th (Griffiths D., DOI: 10.1017/9781108333511)
- haot.electric_susceptibility(index_of_refraction)[source]
Calculates the electric susceptibility for a linear dielectric.
- Parameters:
index_of_refraction (
float) – index of refraction- Return type:
float- Returns:
electric susceptibility in [ ]
- Reference:
Introduction to Electrodynamics, 4th (Griffiths D., DOI: 10.1017/9781108333511)
- haot.buldakov_expansion(vibrational_number, rotational_number, molecule)[source]
Calculates the Buldakov expansion
- Parameters:
vibrational_number (
int) – vibrational quantum number (has to be positive)rotational_number (
int) – rotational quantum number (has to be positive)molecule (
str) – H2, N2, O2
- Return type:
float- Returns:
buldakov expansion in [m^3]
- Reference:
Temperature Dependence of Polarizability of Diatomic Homonuclear Molecules (https://doi.org/10.1134/BF03355985)
- haot.total_internal_reflection_angle(medium_index_of_refraction, vacuum_index_of_refraction=1.0)[source]
Calculates the critical angle that causes total internal reflection. Note, that medium_index_of_refraction should be greater than the vacuum_index_of_refraction
- Parameters:
medium_index_of_refraction (
float) – medium’s index of refractionvacuum_index_of_refraction (
float) – vacuum’s index of refraction, 1.0 (default)
- Return type:
float- Returns:
Critical angle in [degs]
- haot.normal_incidence_reflectance(medium_index_of_refraction, vacuum_index_of_refraction=1.0)[source]
Calculates the reflectance at a normal incidence. Note, that medium_index_of_refraction should be greater than the vacuum_index_of_refraction
- Parameters:
medium_index_of_refraction (
float) – medium’s index of refractionvacuum_index_of_refraction (
float) – vacuum’s index of refraction, 1.0 (default)
- Return type:
float- Returns:
Reflectance at normal incidence in [ ]
- haot.brewster_angle(medium_index_of_refraction, vacuum_index_of_refraction=1.0)[source]
Calculates the Brewster angle. Note, that medium_index_of_refraction should be greater than the vacuum_index_of_refraction
- Parameters:
medium_index_of_refraction (
float) – medium’s index of refractionvacuum_index_of_refraction (
float) – vacuum’s index of refraction, 1.0 (default)
- Return type:
float- Returns:
Brewster angle in [degs]
- haot.optical_path_length(index_of_refraction, distance)[source]
Calculates the optical path length
- Parameters:
index_of_refraction (
float) – index of refractiondistance (
float) – length
- Return type:
float- Returns:
Optical Path Length in units of distance
- haot.optical_path_difference(opl, avg_ax=0)[source]
Calculates the optical path difference.
- Parameters:
opl (
array) – has to be a numpy array of shape [time, x_axis, y_axis, z_axis]avg_ax (
int) – axis where average is performed, 0 (default)
- Return type:
float- Returns:
numpy array of the same shape as the optical path length
- haot.optical_path_difference_rms(opd, avg_ax=0)[source]
Calculates the optical path difference RMS.
- Parameters:
opd (
float) – Optical Path Differenceavg_ax (
int) – axis where average is performed, 0 (default)
- Return type:
float
- Returns
Optical Path Difference Root-Mean-Squared
- haot.kerl_polarizability_temperature(temperature_K, molecule, wavelength_nm)[source]
Calculates the polarizability using Kerl’s extrapolation.
- Parameters:
temperature_K (
float) – reference temperature in [K]molecule (
str) – H2, N2, O2, Airwavelength_nm (
float) – signal’s wavelength in [nm]
- Return type:
float- Returns:
polarizability in [m^3]
- Reference:
Polarizability a(w,T,rho) of Small Molecules in the Gas Phase (https://doi.org/10.1002/bbpc.19920960517)
Examples
>> kerl_polarizability_temperature(600.0, ‘N2’, 533.0)
- haot.atmospheric_index_of_refraction(altitude_m, vapor_pressure=0.0)[source]
Calculates the atmospheric index of refraction as a function of altitude
- Parameters:
altitude_m (
float) – altitude in [m]vapor_pressure (
float) – vapor pressure at given altitude in [mbar], 0.0 (default)temperature_K – reference temperature in [K]
- Return type:
float- Returns:
index of refraction in [ ]
- Reference:
The constants in the equation for atmospheric refractive index at radio frequencies (https://ieeexplore.ieee.org/document/4051437)
- haot.gladstone_dale_constant(mass_density_dict=None)[source]
Calculates Gladstone-Dale constants, returns constants haot.constants if mass_density_dict is not provided
- Parameters:
[kg/m^3] (mass density dictionary in)
None (default)
- Returns:
- A dictionary containing
Species Gladstone-Dale constants in [m3/kg]
- Return type:
dict
- haot.gladstone_dale_air_wavelength(wavelength_nm)[source]
Calculates the Gladstone Dale constant of air using approximation (see reference).
- Parameters:
wavelength_nm (
float) – laser’s wavelength [nm]- Return type:
float- Returns:
Gladstone Dale constant in [m3/kg]
- Reference:
An Aero-Optical Effect Analysis Method in Hypersonic Turbulence Based on Photon Monte Carlo Simulation (https://doi.org/10.3390/photonics10020172)