| http://people.csail.mit.edu/jaffer/FreeSnell/nk.html |
FreeSnell: Refractive Index Spectra | |
|
Spectral data may be given in terms of wavelength, photon energy, frequency, or wavenumber. The real part of each spectral refractive-index value is n; the imaginary part (extinction coefficient) is k.
(require 'FreeSnell)
;; n^2 = C1 + C2*wl^2 + C3*wl^-2 + C4*wl^-4 + C5*wl^-6 + C6*wl^-8
(define PMMA
(let ((C1 2.399964)
(C2 -8.308636E-2)
(C3 -1.919569E-1)
(C4 8.720608E-2)
(C5 -1.666411E-2)
(C6 1.169519E-3))
(lambda (w) ; wavelength in meters
;; wavelength in microns and limited to valid range
(let* ((wl (max 0.4358 (min 1.052 (* w 1e6))))
(wl^-2 (/ 1 wl wl)))
(sqrt (+ C1
(* C2 wl wl)
(* (+ C3 (* (+ C4 (* (+ C5 (* C6
wl^-2))
wl^-2))
wl^-2))
wl^-2)))))))
(define (pmma-n)
(plot-response
(title "PMMA" "pmma")
(output-format 'png 495 258)
(font 14 "88888+00.8880" "10")
(IR PMMA 'real)
(wavelengths 0.4358e-6 1.052e-6)))
(pmma-n)
The bottom half of this program graphs PMMA's index-of-refraction,
which agrees with the plot from the Refractive index
database.
| Refractive index database |
|---|
|
|
| FreeSnell |
Note: With recent releases of FreeSnell (version 1b4 or later), the relational database containing the Sopra and metal spectra is included in the distribution. So installing the nk script is optional.
The nk program is used to create, manage, and query a
refractive-index spectra database. The nk program can
read Sopra
format files with a ".nk" suffix. Some metal spectra
included with FreeSnell also have a ".nk" suffix, but
with a different format which the nk program also
understands.
A bundle of spectra for 278 materials is available from: http://www.sopra-sa.com/more/database.asp (Nov 28, 2000).
A slightly different dataset is available from the GranFilm website as http://folk.ntnu.no/ingves/Software/GranularFilm/Download/Dielectric.tgz, or http://folk.ntnu.no/ingves/Software/GranularFilm/Download/Dielectric.zip (360.kB). If you use this dataset, then delete "al.nk"; and rename "al1.nk" to "al.nk"
The Software Spectra company also distributes the Sopra data, although
rewritten into their proprietary format. But their zip file
http://www.sspectra.com/files/misc/win/SOPRA.EXE
(Macintosh http://www.sspectra.com/files/misc/mac/Sopra.sea.hqx)
contains "README.TXT" identifying the Sopra files.
Included with FreeSnell are the following metal spectra from the CRC Handbook of Chemistry and Physics:
ag.nk: eV n k R(th=0) ; Silver al.nk: eV n k R(th=0) ; Aluminium au.nk: eV n k R(th=0) ; Gold, electropolished, Au (110) cr.nk: eV n k R(th=0) ; Chromium cu.nk: eV n k R(th=0) ; Copper fe.nk: eV n k R(th=0) ; Iron ge.nk: eV n k R(th=0) ; Germanium, single crystal li.nk: eV n k R(th=0) ; Lithium ni.nk: eV n k R(th=0) ; Nickel ta.nk: eV n k R(th=0) ; Tantalum ti.nk: eV n k R(th=0) ; Titanium (Polycrystalline) v.nk: eV n k R(th=0) ; Vanadium w.nk: eV n k R(th=0) ; Tungsten zn-a.nk: eV n k R(th=0) ; Zinc, E || to c^28 zn-b.nk: eV n k R(th=0) ; Zinc, E _|_ to c^28 zr.nk: eV n k R(th=0) ; Zirconium (Polycrystalline)
Many of these materials are included in the Sopra bundle; but the CRC
data covers a wider wavelength span than the Sopra spectra. Doing
"nk --add" of both the CRC and Sopra files produces
wide bandwidth spectra with finer resolution in the visible and
near-infrared bands.
Luxpop: Thin film and bulk index of refraction and photonics calculations links to a directory of 425 refractive-index files, mostly X-ray spectra. 51 of the files are concatenations of 105 smaller files. But some of these concatenations have large gaps where the n and k values differ significantly across the gap. So this collection is in need of some curating before incorporation into FreeSnell's database. When all duplicates are removed there are 174 files. H2O.nk is empty.
The infrared data from Luxpop shows that dielectrics (eg. TiO2, Al2O3) having nearly flat n and zero k through the visible range have large and varying k values in the far infrared region. This would appear to be blackbody emissivity (and absorption).
Another potential source of refractive-index spectra is http://www.rpi.edu/~schubert/Educational resources/Materials - refractive index and extinction coefficient.pdf, although the PDF does not facilitate easy extraction of the data.
Note: With recent releases of FreeSnell (version 1b4 or later), the relational database containing the Sopra and metal spectra is included in the distribution. So installing the nk script is optional.The nk.scm file in the distribution functions as a shell script named
nk on Unix systems; under MS-Windows, the nk
icon invokes nk.scm as an interactive command-line shell
with the prompt "nk".
The optional argument [-F path] (don't type the []) sets the path to the database file to be accessed or created. If it is not given, then the environment variable "NK_DATABASE_PATH" names the database file if defined, defaulting to "nk.rwb" in the current directory. The name for each spectrum in the database is taken from its filename sans the ".nk" or "ir.nk" suffix.
Usage: nk [-F path] Starts the nk shell. Type nk commands without the nk; ^Z to exit. Usage: nk [-F path] --add FILE.nk ... Add spectra named FILE to database. Usage: nk [-F path] --new FILE.nk ... Add new or replace spectra named FILE to database. Usage: nk [-F path] --del 'GLOB' ... Delete spectra of names matching GLOB from database. Usage: nk [-F path] --plot 'GLOB' ... Usage: nk [-F path] --lin-lin 'GLOB' ... Usage: nk [-F path] --log-log 'GLOB' ... Usage: nk [-F path] --log-lin 'GLOB' ... Usage: nk [-F path] --lin-log 'GLOB' ... Create encapsulated-PostScript (and view with Ghostview) spectra plots from database of names matching GLOB. Usage: nk [-F path] --list 'GLOB' ... List names of spectra matching GLOB in database. Usage: nk [-F path] NAME NUMBER.UNIT ... Prints NAME's n+k*i values at each NUMBER.UNIT from database. The NUMBER can be fixed or floating point; the UNIT either "eV" (electron-volt) or "m" (meter) with an optional metric prefix or "cm^-1" (wave-number).
The procedure to create this database is:
nk --add *.nk Sopra/*.nk
bash$ nk --add *.nk Sopra/*.nk ag.nk: ev n k R(th=0) ; Silver al.nk: ev n k R(th=0) ; Aluminium au.nk: ev n k R(th=0) ; Gold, electropolished, Au (110) cr.nk: ev n k R(th=0) ; Chromium cu.nk: ev n k R(th=0) ; Copper fe.nk: ev n k R(th=0) ; Iron ge.nk: ev n k R(th=0) ; Germanium, single crystal li.nk: ev n k R(th=0) ; Lithium ni.nk: ev n k R(th=0) ; Nickel ta.nk: ev n k R(th=0) ; Tantalum ti.nk: ev n k R(th=0) ; Titanium (Polycrystalline) v.nk: ev n k R(th=0) ; Vanadium w.nk: ev n k R(th=0) ; Tungsten zn-a.nk: ev n k R(th=0) ; Zinc, E || to c^28 zn-b.nk: ev n k R(th=0) ; Zinc, E _|_ to c^28 zr.nk: ev n k R(th=0) ; Zirconium (Polycrystalline) Sopra/7059.nk: 0.25.um :: 0.85.um Sopra/ag.nk: 0.6.ev :: 6.6.ev Sopra/againp0.nk: 0.225.um :: 1.um Sopra/againp1.nk: 0.225.um :: 1.um Sopra/againp10.nk: 0.225.um :: 1.um Sopra/againp3.nk: 0.225.um :: 1.um Sopra/againp6.nk: 0.225.um :: 1.um Sopra/againp7.nk: 0.225.um :: 1.um Sopra/al.nk: 0.5.ev :: 6.75.ev ... Sopra/zro2.nk: 0.25.um :: 0.85.um Sopra/zrsi2.nk: 1.8.ev :: 3.ev
bash$ nk --list 7059 ag againp0 againp1 againp10 againp3 againp6 againp7 al al2o3 al2o3p alas alas028t alas052t alas072t alas098t alas125t alas152t alas178t alas204t alas228t alas305t alas331t alas361t alas390t alas421t alas445t alas469t alas499t alas527t alas552t alas578t alas602t alas626t alcu algaas0 algaas1 algaas10 algaas2 algaas3 algaas4 algaas5 algaas6 algaas7 algaas8 algaas9 alon alsb alsi alsiti arachi asi au baf2 bk7 bk7_abs blackbody caf2 carbam ccl4 cdse cdte co co_2 cor7059 cosi2-4 cr cr3si cr5si3 crsi2el2 cu cu2o cuo diam fe fesi2el1 fesi2el2 fesi2epi gaas gaas031t gaas041t gaas060t gaas081t gaas100 gaas103t gaas111 gaas126t gaas150t gaas175t gaas199t gaas224t gaas249t gaas273t gaas297t gaas320t gaas344t gaas367t gaas391t gaas415t gaas443t gaas465t gaas488t gaas515t gaas546t gaas579t gaas603t gaas634t gaaso gaasox gan-tit gan-uv gan01 gan02 gan03 gan60 gan70 gap gap100 gapox gasb gasbox ge ge100 h2o hdpe hfo2 hfsi2 hgcdte0 hgcdte2 hgcdte3 inas inasox ingaas ingasb0 ingasb1 ingasb10 ingasb3 ingasb5 ingasb7 ingasb9 inp inpox insb insbox ir ir3si5e ir3si5p ito2 kcl lasf9 li lif mgf2 mgo mo mosi2-a mosi2-b nbsi-a nbsi-b ni ni2si ni3si nisi os p_sias p_siud pbs pbse pd pd2si-a pd2si-b pt resi1-75 resige0 resige1 resige22 resige39 resige51 resige64 resige75 resige83 resige91 rh ringas0 ringas10 ringas20 ringas24 se-a se-b sf11 si si100_2 si110 si111 si11ge89 si20ge80 si28ge72 si3n4 si65ge35 si85ge15 si98ge02 siam1 siam2 sic sicr sicr-t02 sicr-t10 sicr-t15 sicr-t20 sicr-t25 sicr-t30 sicr-t35 sicr-t40 sicr-t45 sige_ge sige_si sin_bf5 singas0 singas10 singas20 singas24 sio sio2 sion0 sion20 sion40 sion60 sion80 siop sipoly sipoly10 sipoly20 sipoly30 sipoly40 sipoly50 sipoly60 sipoly70 sipoly80 sipoly90 sipore stsg0 stsg064 stsg123 stsg169 stsg229 ta taox1 taox2 tasi2-a tasi2-b te-a te-b test thf4 ti tini tio2 tio2b tisi-a v void vsi2-a vsi2-b w wsi2-a wsi2-b y2o3 zn-a zn-b zncdte0 zncdte1 zncdte10 zncdte3 zncdte5 zncdte7 zncdte9 znscub znse znsete0 znsete1 znsete10 znsete3 znsete5 znsete7 znsete9 zr zro2 zrsi2
bash$ nk --plot co
bash$ nk co .3.um .5.um 1.3.eV co: 1.218+2.11i @ 300.nm (4.13.eV) (33333.3.cm^-1) co: 2.025+3.72i @ 500.nm (2.48.eV) (20000.cm^-1) co: 3.85+4.77i @ (954.nm) 1.3.eV (10485.2.cm^-1) bash$ nk Al 400.cm^-1 al: 75.77+1.7e+02i @ (25.0.um) (0.0496.eV) 400.cm^-1
The next section tests FreeSnell's modeling of
dielectric films.
|
I am a guest and not a member of the MIT Computer Science and Artificial Intelligence Laboratory.
My actions and comments do not reflect in any way on MIT. | ||
| FreeSnell | ||
| agj @ alum.mit.edu | Go Figure! | |