4: Electron Theory of Solids

Example number 4.1, Page number 4.57

In [10]:
#importing modules
import math
from __future__ import division

#Variable declaration
E=10**4*1.6*10**-19;      #kinetic energy(J)
m=1.675*10**-27;     #mass(kg)
h=6.625*10**-34;     #planck's constant

#Calculation
v=math.sqrt(2*E/m);     #velocity(m/s)
lamda=h/(m*v);          #de broglie wavelength(m)

#Result
print "de broglie wavelength is",round(lamda*10**10,5),"angstrom"
de broglie wavelength is 0.00286 angstrom

Example number 4.2, Page number 4.58

In [11]:
#importing modules
import math
from __future__ import division

#Variable declaration
m=9.1*10**-31;     #mass(kg)
nx=ny=nz=1;
n=6;
a=1;     #edge(m)
h=6.63*10**-34;     #planck's constant

#Calculation
E1=h**2*(nx**2+ny**2+nz**2)/(8*m*a**2);
E2=h**2*n/(8*m*a**2);
E=E2-E1;               #energy difference(J)

#Result
print "energy difference is",round(E*10**37,2),"*10**-37 J"
energy difference is 1.81 *10**-37 J

Example number 4.3, Page number 4.58

In [15]:
#importing modules
import math
from __future__ import division

#Variable declaration
y=1/100;    #percentage of probability
x=0.5*1.6*10**-19;     #energy(J)
k=1.38*10**-23;       #boltzmann constant

#Calculation
xbykT=math.log((1/y)-1);
T=x/(k*xbykT);       #temperature(K)

#Result
print "temperature is",int(T),"K"
print "answer varies due to rounding off errors"
temperature is 1261 K
answer varies due to rounding off errors

Example number 4.4, Page number 4.58

In [16]:
#importing modules
import math
from __future__ import division

#Variable declaration
d=970;    #density(kg/m**3)
Na=6.02*10**26;    #avagadro number
w=23;    #atomic weight
m=9.1*10**-31;     #mass(kg)
h=6.62*10**-34;     #planck's constant

#Calculation
N=d*Na/w;    #number of atoms/m**3
x=h**2/(8*m);
y=(3*N/math.pi)**(2/3);
EF=x*y;     #fermi energy(J)

#Result
print "fermi energy is",round(EF/(1.6*10**-19),2),"eV"
fermi energy is 3.15 eV

Example number 4.5, Page number 4.59

In [18]:
#importing modules
import math
from __future__ import division

#Variable declaration
h=6.625*10**-34;     #planck's constant
c=3*10**8;     #velocity of light(m/s)
lamda0=3000*10**-10;   #wavelength(m)
e=1.6*10**-19;    #charge(coulomb)
lamda=2536*10**-10;      #wavelength(m)

#Calculation
hf0=c*h/(lamda0*e);    #work function(eV)
E=c*h*((1/lamda)-(1/lamda0))/e;            #maximum kinetic energy(eV)

#Result
print "work function is",round(hf0,2),"eV"
print "maximum kinetic energy is",round(E,3),"eV"
print "answer varies due to rounding off errors"
work function is 4.14 eV
maximum kinetic energy is 0.758 eV
answer varies due to rounding off errors

Example number 4.6, Page number 4.59

In [19]:
#importing modules
import math
from __future__ import division

#Variable declaration
n=1;
hbar=1.054*10**-34;    
m=1.67*10**-27;    #mass of neutron(kg)
a=10**-14;      #size(m)

#Calculation
E=n**2*math.pi**2*hbar**2/(2*m*a**2);     #lowest energy of neutron(J)

#Result
print "lowest energy of neutron is",round(E/(1.6*10**-13),2),"MeV"
lowest energy of neutron is 2.05 MeV

Example number 4.7, Page number 4.59

In [20]:
#importing modules
import math
from __future__ import division
from scipy.integrate import quad

#Variable declaration
k=1;

#Calculation
def zintg(x):
	return math.exp(-2*k*x)

a=quad(zintg,2/k,3/k)[0];        #probability of particle

#Result
print "probability of particle is",round(2*a,4)
probability of particle is 0.0158

Example number 4.8, Page number 4.60

In [22]:
#importing modules
import math
from __future__ import division

#Variable declaration
i=10**-2;    #current(ampere)
A=0.01*0.001;     #area(m**2)
RH=3.66*10**-4;   #hall coefficient(m**3/coulomb)
Bz=0.5;     #magnetic induction(weber/m**2)

#Calculation
Jx=i/A;     
Ey=RH*Bz*Jx;    
Vy=Ey*i;      #voltage appeared(V)

#Result
print "voltage appeared is",Vy*10**3,"mV"
voltage appeared is 1.83 mV