Skip to content

RefractiveIndicesModels.jl

Leandro Acquaroli edited this page Nov 2, 2019 · 18 revisions

This module contains several ways to combine indices of refraction functions of host materials with embedded materials. All functions exported by this module are for binary mixtures, i.e., you can combine two different indices of refraction, with different rules.

Examples and tests

Examples are posted in the following pages, and the full code for them can be obtained from here.

Usage

The exported module is under the name RI, including the following functions:

julia> using ThinFilmsTools
julia> RI.Info()

    Available indices of refraction models:
    
        bruggeman(p, n; df=1/3) -> EMA
        looyenga(p, n; df=1/3) -> EMA
        lorentzlorenz(p, n) -> EMA
        maxwell(p, n; df=1/3) -> EMA
        monecke(p, n; dfm=:spheres, c=0.0) -> EMA
        gedf(x, n) -> EMA
        gem(x, n) -> EMA
        sellmeier(x, λ)
        cauchyurbach(x, λ)
        drudelorentz(x, ħω)
        tauclorentz(x, ħω)
        forouhibloomer(x, ħω)
        lorentzplasmon(x, ħω)
        codylorentz(x, ħω; cme=:dipole)

        To use any of these functions type: ?RI.function
	
	EMA: Effective medium approximation.

To see the information about a particular function, type for example:

help?> RI.looyenga
  Calculates the complex refractive index of the porous material using
  Looyenga-Landau-Lifshitz model, for nonmagnetic and isotropic materials.
  (See also Lichtenecker mixing formula: Stenzel, Optical characterization of
  thin solid films - 2018).
  
  Supports arbitrary number of components and the inclusions can be set
  through the polarisation factor df.
  
     neff = RI.looyenga(p, n; df=1.0/3.0)
  
          p: array with proportion parameters (real number, 0<p<1). p[i] is the proportion of
             material i respect to the total.
          n: column-array with the complex indices of refraction of the materials in the
             mixture. The first column. n[:,1] has proportion p[1], n[:,2] proportion p[2]
             and so on. Each column represents the index of refraction of a material for a
             range of wavelengths.
             df: depolarization factors
                 = 1/3 for spheres (default)
                 = 1/2 for cylinders 
                 = 1 for laminar structures with the fields directed parallel to the
                   direction along which layers alternate (stratification direction) 
                 = -1 for laminar structures with the fields directed perpendicular to
                   the direction along which layers alternate (stratification direction)
             The df entered as single values represent the same factors for all components, i.e.,
             there is only one geometrical type of inclusions for all of them.

         neff: effective index of refraction
  
  Sources: Physical Review B, Vol 61, No 15, 2000-I, p 10437
         IEEE Transactions on Geoscience and Remote Sensing, Vol. 38, 2000.

Usage

For using these functions combined with the indices of refraction from the RefractiveIndicesDB.jl you can write for instance:

n = RI.looyenga([0.86 1-0.86], [RIdb.air(beam.λ) RIdb.silicon(beam.λ)])

So far, only models included inside the ThinFilmsTools.jl module are supported. In case you need another, we can work out the inclusion as requested, just open an issue or submit a PR.

Clone this wiki locally