Skip to content

RefractiveIndicesDB.jl

Leandro Acquaroli edited this page Oct 2, 2019 · 16 revisions

This is a small database compiled with several indices of refraction of different materials. The module information is exported by ThinFilmsTools.jl under the name of RIdb. All the functions exported are to be used as a function of the wavelength, and in some cases other parameters, such as temperature.

Usage

To see the available indices, type:

julia> RIdb.Info()

Available functions for materials index of refraction:

   aluminum(λ), λ  [4.15, 31000] (nm)
   air(λ), λ  any (nm)
   bk7(λ), λ  [191, 1239] (nm)
   chrome(λ), λ  [207, 1240] (nm)
   dummy(λ), λ  any (nm)
   glass(λ), λ  [300, 2500] (nm)
   gold(λ), λ  [34.15, 10240] (nm)
   silicon(λ), λ  [163.15, 25000] (nm)
   silicontemperature(λ, T), λ  [264, 826.5], T  [20, 450]
   silver(λ), λ  [0.124, 9919] (nm)
   sno2f(λ), λ  [308.25, 2490.9] (nm), fluor doped!
   h2o(λ), λ  [10.0, 1e10] (nm)
   etoh(λ), λ  [476.5, 830] (nm)

And to see the details, write:

help?> RIdb.aluminum

  Returns the index of refraction of aluminum in the complex format
  for a given range of wavelengths in nm.
      N = aluminum(λ)
  Input args:
      λ = wavelength range (nm),  [4.15, 31000] (nm)
  
  Source: http://www-swiss.ai.mit.edu/~jaffer/FreeSnell/nk.html

help?> RIdb.silicontemperature

  Returns the index of refraction of crystalline silicon in complex
  format, for a given range of wavelengths in nm and a one temperature value.
      N = silicontemperature(λ, T)
  Input args:
      λ = wavelength range (nm),  [264, 826.5]
      T = value of temperature (C),  [20, 450]
  
  Source: http://refractiveindex.info/

Some examples:

n = RIdb.aluminum(400:1000)
n = RIdb.silicon(250:2500)

Notice that silicontemperature works for scalar temperature input only, e.g.:

n = RIdb.silicontemperature(300:800, 25)

You can build up your own function of the index of refraction if you need and use it in the module. Just make sure you make the index of refraction a complex type and make it for a valid range of wavelengths. For instance, as in the Omnidirectional mirror example, we built the index of refraction of a sodium chloride substrate as follow:

# x is the wavelength range input in nanometers
function nacl(x)
    x /= 1000 # we use nm and the equation is defined for μm
    n=@. sqrt(complex.(1+0.00055+0.19800./(1.0-(0.050./x).^2)+0.48398./(1.0-(0.100./x).^2)+0.38696./(1.0-(0.128./x).^2)+0.25998./(1.0-(0.158./x).^2)+0.08796./(1.0-(40.50./x).^2)+3.17064./(1.0-(60.98./x).^2)+0.30038./(1.0-(120.34./x).^2)))
    return real.(n)
end
Clone this wiki locally