People often use interference between the reflected light from front and back surface to measure the thickness of a film. However, there is this a very important formula:
d=nu/(2*n)*), where nu is the frequency difference (difference of 1/lambda ), n is the refractive index, and d is the film thickness.
The caveat is that, we should watch out for the absorption (or the extinction coefficient k).
The formula comes from interference between reflection of from and back surface of a material. However, it does not consider the phase shift of the reflectance, and besides, it does not consider the phaseshift of the transmission of the back-surface reflection.
The problem only goes away when k is very small.
Because the phaseshift dependce on
tan(theta)=epsilon2/epsilon1=2nk/(n^2-k^2),
where theta is the phase shift.
If k<<n, theta~0. Then there is no problem, fortunately, it is the case most of the time.
Monday, March 24, 2008
Thursday, March 20, 2008
Interesting color
If the material is has a single band (band gap Eg), the color depends on that only.
Eg | Tranmission/ color | reflection/ color | color of powder | |
>3.2 eV | large transmission / no color | small reflection / no color | white! | |
1.6eV< <3.2 eV | depends on thickness | depends on thickness | change color with powder size | |
<1.6 eV | none | metallic lusters may have different color (e.g. copper: red) | never change color with size |
The color is very interesting and confusing. Actually, all the color we see is the color of transmittance color!!
Some may say, there are a lot of non-transparent colorful stuff. That's illusion of color. Let's use paint as an example. The paint contains many small transparent small particles (which is also called pigments). It is the reflection between interfaces makes the light not able to go all the way through, and in turn make the paint not transparent. The real color we normally see is the double transmitted light from the back surface.
Monday, March 3, 2008
Relation between optical functions
We measure reflection R in the expreiment.Using R we can calculation the phase shift:
θ(ω) = ω/π ∫ log(√(R/R0))/(ω02-ω2)dω0
Given R and θ as functions of ω, one can calculate all the optical functions.
1) n and k (refractive index and extinction factor):
because R=((n-1)2+k2)/((n+1)2+k2)
k2=4n/(1-R)-(n+1)2
therefore:
n=(1-R)/(1+R+2*√(R)cos(θ))
hence:
k=√(R(n+1)2-(n-1)2)/√(1-R)
2) other functions:
ε1=n2-k2;
ε2=2nk
σ1=ε2*ω*ε0
α=k*ω/c, where c is the speed of light
Friday, February 29, 2008
Mean free path as a function of density in volume and particle size:
assuming a unit volume for KCl, then the density will be:
rou=V0, where V0 is the volume of the sample.
Number of particles will be:
Np=V0/V, where V=4pi/3*R^3 is the volume of the particles,
then Np=V0/(4pi/3*R^3)
The mean free path will be:
lambda=1/simga/Np, where sigma=pi*R^2 is the crossection of the particle.
Therefore lambda=4R/3/rou
Example:
rou=0.01, R=1e-6 meter
then the mean free path is:
lambda=1.3e-4 meter which is 0.13 mm.
assuming a unit volume for KCl, then the density will be:
rou=V0, where V0 is the volume of the sample.
Number of particles will be:
Np=V0/V, where V=4pi/3*R^3 is the volume of the particles,
then Np=V0/(4pi/3*R^3)
The mean free path will be:
lambda=1/simga/Np, where sigma=pi*R^2 is the crossection of the particle.
Therefore lambda=4R/3/rou
Example:
rou=0.01, R=1e-6 meter
then the mean free path is:
lambda=1.3e-4 meter which is 0.13 mm.
Tuesday, February 19, 2008
Xpy log
2007/10/18
1) uiplot
X 2) dataoperationframe: we need to add reset group, reset all. and put save at the beginning.
X 3) write the part to load two files to calculate ratio
X 4) export to ascii
X 7) data explorer for everything
X 8) put "group" operation to the ui
9) load data with time
10) calculate the time constant
X 11) put file and datainfo on printed pages
X 12) dataoperation need to be able to rego.
X 13) make XpyFigure a DataFigure
14) copy and paste
Bugs to fix
* too slow opening data explorer
v * memory leak (looks like it is still leaking, but better)
X * data saving can not update
==========================================
2007/10/25
I decided to switch to python2.5 in order to fix the memory leak problem.
Python2.5 package I have:
python-2.5.1.msi
scipy-0.6.0.win32-py2.5.exe
PIL-1.1.6.win32-py2.5.exe
numpy-1.0.3.1.win32-py2.5.exe
matplotlib-0.90.1-py2.5-win32.egg
matplotlib-0.90.1.win32-py2.5.exe
ipython-0.8.1.win32.exe
basemap-0.9.5.win32-py2.5.exe
==========================================
2007/10/26
I started the programming on Sep 16 2007, it has been 40 days and I finally have version 1.0 released. This version is not perfect at all. But for the time being, it is already very useful for data analysis. There are a lot of to do including bugs to fix, more gui tools to make and make data analysis functions to add. However, the infrastructure is built. So all we have to do is to add on stuff.
1) uiplot
X 2) dataoperationframe: we need to add reset group, reset all. and put save at the beginning.
X 3) write the part to load two files to calculate ratio
X 4) export to ascii
X 7) data explorer for everything
X 8) put "group" operation to the ui
9) load data with time
10) calculate the time constant
X 11) put file and datainfo on printed pages
X 12) dataoperation need to be able to rego.
X 13) make XpyFigure a DataFigure
14) copy and paste
Bugs to fix
* too slow opening data explorer
v * memory leak (looks like it is still leaking, but better)
X * data saving can not update
==========================================
2007/10/25
I decided to switch to python2.5 in order to fix the memory leak problem.
Python2.5 package I have:
python-2.5.1.msi
scipy-0.6.0.win32-py2.5.exe
PIL-1.1.6.win32-py2.5.exe
numpy-1.0.3.1.win32-py2.5.exe
matplotlib-0.90.1-py2.5-win32.egg
matplotlib-0.90.1.win32-py2.5.exe
ipython-0.8.1.win32.exe
basemap-0.9.5.win32-py2.5.exe
==========================================
2007/10/26
I started the programming on Sep 16 2007, it has been 40 days and I finally have version 1.0 released. This version is not perfect at all. But for the time being, it is already very useful for data analysis. There are a lot of to do including bugs to fix, more gui tools to make and make data analysis functions to add. However, the infrastructure is built. So all we have to do is to add on stuff.
To do | add date | finish date | comments | |
functions | ||||
uiplot | 2007/10/26 | N/A any more since I have separated plotcontrol | ||
progress bar | 2007/10/26 | |||
copy and paste | 2007/10/26 | 11/02/2007 | ||
xpyfigure hold on/off | 2007/10/26 | done | ||
new numeric/string new arbitrary member | can be done using copy/paste | |||
exlporer window as subwin | N/A | |||
to be able to explore unlimited number of layers (two listboxes, like window style) | 10/28/2007 | |||
peak analysis | 11/03 partly done | |||
xyz plot | image done 11/19 | |||
py2exe | 11/19/2007 | 1) cd current version dicrectory 2) import xpygui 3) cd .. 4) change setup.py to match current version 5)copy image folder to dist folder 6) run setup py2exe | ||
separate figure control window | 11/23/2007 | |||
balloon help | 11/22/2007 | |||
pmw and py2exe | 11/23/2007 | change bundlepmw: regsub.gsub to re.sub run bundlepmw copy pmw.py pmwblt.py pmwcolor.py to xpy1.26 | ||
put on internet space to be downloaded | 11/27/2007 | |||
log operation of dataobject | 11/29/2007 | |||
fix label to support real inline latex | this is not trivial at all. I tried twice, this time I failed again. What happens is Pylab only accept the entire text as Latex string. You can not embed some Latex in normal text. I guess I can live without this inline Latex support. | |||
complete support for physical units | ||||
plot numsheet? | ||||
add single analysis to plotfig | idea: make ageneric analysis procedure that can take a spectrum and some input and plot the result | |||
unit of plotting as a check box in plotcontrolwindow | done | |||
make list working as well as dataobject | ||||
Tix progressbar | ||||
Tix tree | ||||
tktable | ||||
wxpython investigation | ||||
new object menu in the data explorer | ||||
command window (shell) | ||||
spread sheet for displaying data | ||||
new object in the right click menu | ||||
fix the loading problem | ||||
bug fixing or efficiency improvment | ||||
too slow opening explorer | 2007/10/26 | fixed for new explorer | ||
memory leak | 2007/10/26 | the memory leak may come from pylab | partly fixed by switching to python 2.51 | |
newfig after saving | ||||
date missing | done 10/31 | |||
compress data | done using pick and gzip | |||
slow garbage collection | ||||
explorer for figure doesn't have context menu | ||||
Xpy to do list
Learn | |||
Python | |||
Package | |||
wxPython | |||
root window (console) | |||
Do | |||
GUI | |||
Shell | |||
Spreadsheet | |||
Data analysis | physical units, physical quantity representation | ||
Data organization | |||
Data visualization | com for microsoft spreadsheet | ||
contextmenu and explorermenu for an object | |||
Subscribe to:
Posts (Atom)