-
Notifications
You must be signed in to change notification settings - Fork 5
RefractiveIndicesModels.jl
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 are posted in the following pages, and the full code for them can be obtained from here.
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.
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.