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 refraction

  • vacuum_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 refraction

  • vacuum_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 refraction

  • vacuum_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 refraction

  • distance (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 Difference

  • avg_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, Air

  • wavelength_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)

haot.air_gladstone_dale_polarizability(polarizability)[source]

Calculates the Air Gladstone Dale constant for a polarizability

Parameters:

polarizability (float) – polarizability in [m3]

Returns:

Gladstone Dale constant in [m3/kg]