from __future__ import division
import math
# PythonEx10.1 Particle Moving in One-Dimensional Potential Well:Page-328(2010)
#Variable declaration
a = 10**-3; #Separation between the walls of the well, m
m = 10**-9; # Mass of the dust particle, kg
t = 100; # Average time for successive collisons with the wall, s
h = 6.626*10**-34; # Plank's constant, Js
#Calculate
v = a/t; # Velocity of the particle inside the potential well, m/s
E = 1/2*m*v**2; # Kinetic energy of the particle, J
# For one-dimensional potential well, the energy eigen value is given by
# E = h**2*n**2/(8*m*a**2)
# Solving for n
# Quantum number corresponding to the energy eigen value E
n =((8*m*a**2*E)/h**2)**0.5
#Result
print "The quantum number described by this motion is:"
print round((n*10**-16),2)*10**16
from __future__ import division
import math
# Python Code Ex 10.2 Motion of a ground state Electron
#in a 3-D Potential Well: Page-329 (2010)
#Variable declaration
a = 0.5*10**-10; # length of the potential box, m
h = 6.626*10**-34; # Plank's Constant, Js
m = 9.1*10**-31; # Mass of an Electron, kg
# In 3-D, the three quantum numbers nx, ny and nz each will have
#value equal to 1 for lowest energy state
nx = 1; # Quantum number corresponding to x-direction
ny = 1; # Quantum number corresponding to y-direction
nz = 1; # Quantum number corresponding to z-direction
#Calculation
EG = h**2*(nx**2+ny**2+nz**2)/(8*m*a**2);# Energy eigen value for 3-D potential,
EeV = EG/(1.6*10**-19); # Convert energy from joule to eV
#Result
print "The lowest energy of an electron confined to move "
print"in a 3D-potential box, in eV, is : ",round(EeV,2)
from __future__ import division
import math
# Python Code Ex 10.3 Motion of an Electron excited next to
#the ground state in a 3-D Potential Well: Page-329 (2010)
#Variable declaration
a = 1*10**-10; # length of the cubic potential box, m
h = 6.626*10**-34; # Plank's Constant, Js
m = 9.1*10**-31; # Mass of an Electron, kg
k = 1.38*10**-23; # Boltzmann Constant, J/mol-K
# In 3-D, the three quantum numbers nx, ny and nz will have values
#1, 1 and 2 respectively for first excited energy state
nx = 1; # Quantum number corresponding to x-direction
ny = 1; # Quantum number corresponding to y-direction
nz = 2; # Quantum number corresponding to z-direction
#Calculation
# Energy eigen value for 3-D potential for first excited state, J
EE = h**2*(nx**2+ny**2+nz**2)/(8*m*a**2);
# As EE(next to the lowest) = 3/2 (k/T), where T is the absolute temperature
# Solving for T
#Absolute temperature at which energy next to the lowest energy state
T = 2/3*1/k*EE;
EeV = EE/(1.6*10**-19); # Convert energy from joule to eV
#Result
print "The first excited state energy of the electron confined "
print"to move in a 3D-potential box, in eV, is : ",round(EeV,2)
print "The temperature at which the average energy becomes equal to "
print"first excited state energy, in K, is : ",round(T,2)
from __future__ import division
import math
# Python Code Ex 10.4 Degeneracy of Energy Level: Page-332 (2010)
#Variable declaration and Calculation
# Function to find the factorial of a number
def fact(num):
f = 1;
for i in range(1,num+1):
f = f*i;
return f
# Fucntion to determine degenerate energy states
def degno(a, b, c):
ash=[]
ash.append(a-b)
ash.append(b-c)
ash.append(c-a)
sm=0
for c in range(3):
if ash[c]==0:
sm=sm+1
if sm==3: # check if all the values are same
degeneracy = 3;
degstates = fact(3)/fact(degeneracy); #calculate degenerate states
return degstates
if sm==1: # check if any two values are equal
degeneracy = 2;
degstates = fact(3)/fact(degeneracy); #calculate degenerate states
return degstates
if sm==0: # check if all the values are different
degeneracy = 1;
degstates = fact(3)/fact(degeneracy); #calculate degenerate states
return degstates
coef = 38; # Coefficient of H**2/(8*m*a**2)
nx=[] # Quantum number corresponding to x-direction
ny=[] # Quantum number corresponding to y-direction
nz=[] # Quantum number corresponding to z-direction
deg=[] # Variable to store the degeneracy of states
count = 1; # set the counter
suum = 0; # initialize the sum
# Look for all the possible set of values for nx, ny and ny
for i in range (1,10):
for j in range (1,10):
for k in range (1,10):
# Check for the condition and avoid repetition of set of values
if ((i**2+j**2+k**2==coef) and (i+j+k) > suum):
nx.append(i); # Save current i value
ny.append(j); # Save current j value
nz.append(k); # Save current k value
# Save degeneracy for given set of values
deg.append(degno(i, j, k));
count = count + 1; # Increment the counter
suum = i + j + k; # Add the three values of quantum numbers
#Result
print "\nThe", count-1," set(s) of values of quantum number are : \n"
deg_states = 0; # Intialize the variable
for i in range(0,count-1):
print "\nnx=",nx[i]," ny=",ny[i]," nz=",nz[i]," \n"
deg_states=deg_states+deg[i]
# Accumulate the degeneracy
print "\nThe given energy level is ",deg_states,"-fold degenerate."
from __future__ import division
import math
#Python Code Ex 10.5 Fermi energy of zinc at absolute zero: Page-335 (2010)
#Variable declaration
d = 7.13*10**+3; # Density of Zn, in kg per m cube
M = 65.4*10**-3; # Atomic weight of Zn, kg/mol
me = 9.1*10**-31; # Mass of an electron, kg
v = 2; # valency of divalent (Zn) metal
N = 6.023*10**+23; # Avogadro's Number
h = 6.626*10**-34; #Plank's constant, in Js
#Calculation
meff = 0.85*me; # Effective mass of the electron in zinc, kg
n = v*d*N/M; # Number of electrons per unit volume
#Fermi energy in zinc at absolute zero, J
Ef = h**2/(2*meff)*(3*n/(8*math.pi))**(2/3);
EfeV = Ef/(1.6*10**-19); # Fermi energy in eV
Ebar = (3/5)*EfeV; # Average energy of an electron at 0K, eV
#Result
print "The fermi energy in zinc at absolute zero,in eV, is : ",round(EfeV,2)
print "The average energy of an electron at 0K,in eV, is : ",round(Ebar,2)
from __future__ import division
import math
# Python Code Ex 10.6 Electron probability above Fermi energy: Page-336 (2010)
#Variable declaration
k = 1.38*10**-23; # Boltzmann constant, in J/mol-K
FD = 0.10; # Fermi-Dirac distribution probability for electrons
Efermi = 5.5; # Fermi Energy of silver, in eV
#Calculation
E = Efermi + 0.01*Efermi; # Allowed energy for electrons
dE = E - Efermi; #Deviation of allowed energy from Fermi energy, in eV
DEeV = dE*1.6*10**-19; #Convert into joule
# The Fermi-Dirac distribution function as at any temperature T is given by
# F(E) = FD = 1/(math.exp((E-Efermi)/kT)+1
# Solving for T
# Absolute temperature at which result follows, in K
T = DEeV/(k*math.log(1/FD-1));
#Result
print "The temperature at which the given probability is expected, in K, is :"
print round(T,2)
from __future__ import division
import math
#Python Code Ex 10.7 The Electroic Specific Heat of Cu: Page-341 (2010)
#Variable declaration
k = 1.38*10**-23; #Boltzmann constant, in J/mol-K
N = 6.023*10**+23; # Avogadro's Number
Efermi = 7.05; # Fermi energy of copper, in eV
EFeV = Efermi*1.6*10**-19; # Fermi energy conversion, in J
T1 = 4; #Lower value of temperature, in K
T2 = 300; #Upper value of temperature, in K
#Calculation
Ce4 = (math.pi**2*k**2*T1)/(2*EFeV)*N#Electronic specific heat at 4K, J/mol/K
Ce100 = (math.pi**2*k**2*T2)/(2*EFeV)*N#Electronic specific heat at 100K,
#Result
print "The Electronic specific heat at 4K, in J/mol/K is :",round(Ce4,3)
print "The Electronic specific heat at 100K, in J/mol/K is :",round(Ce100,2)
from __future__ import division
import math
#Python Code Ex 10.8 The Electrical Resistivity: Page-343 (2010)
#Variable declaration
tau=3*10**-14#Classical value of mean free time
n=2#BCC structure
e=1.6*10**-19
m=9.1*10**-31
R=1.85*10**-10
#Calculation
a=(4/(3)**0.5)*R
ne=n/(a)**3 # number of electrons per unit volume
ro=m/(ne*(e*e)*tau)
#Result
print"Electrical resistivity at 0degree",round((ro*10**8),2)*10**-8,"ohm metre"
from __future__ import division
import math
# Python Code Ex 10.9 Electrical Conductivity of Cu: Page-345 (2010)
#Variable declaration
e = 1.6*10**-19; # Electronic charge, C
N = 6.023*10**+23; # Avogardro's number
d = 8920; # Density of Copper, kg per metre cube
A = 63.5; # Atomic weight of copper, g/mole
I = 10; # Current through uniform copper wir, A
D = 16*10**-4; #Diameter of circular cross-section of copper wire, m
#Calculation
R = D/2; # Radius of circular cross-section of copper wire, m
# The number of electrons per unit volume in copper, per metre cube
n = d*N/63.5*1*10**+3;
# Current density of electrons in copper, ampere per metre square
J = I/(math.pi*R**2);
vd = J/(n*e); # Drift velocity of electrons in copper, metre per second
#Result
print "The current density of electrons in copper,in ampere per metre square,"
print round(J)
print "The drift velocity of electrons in copper, in metre per second, "
print round(vd,4)
from __future__ import division
import math
# Python Code Ex 10.10 Electron mobility inside conductors : Page-346 (2010)
#Variable declaration
e = 1.6*10**-19; # Electronic charge, in C
m = 9.1*10**-31; # Eelctronic mass, in kg
res = 1.54*10**-8; # Electrical resistivity of silver, in ohm metre
E = 100; # Electric field applied along the length of the wire, V/m
n = 5.8*10**+28;#Number of conduction electrons per unit volume, per metre cube
#Calculation
mu = 1/(res*n*e);#Mobility of electron through silver,metre square per volt-sec
vd = mu*E; # Average drift velocity of electrons, m/s
t = mu*m/e; # Relaxation time of the electron, s
#Result
print "The mobility of electron through silver, in metre square per V-s, is "
print round(mu,2)
print "The average drift velocity of electrons, in m/s, is : "
print round(vd,2)
print "The average drift velocity of electrons, in m/s, is "
print round((t*10**14),2)*10**-14
from __future__ import division
import math
# Python Code Ex 10.11 Lorentz number calculation of a solid: Page-347 (2010)
#Variable declaration
e = 1.6*10**-19; # Electronic charge, in C
k = 1.38*10**-23; # boltzmann constant, J/mol-K
T = 293; # Absolute temperature of the solid
K = 390; # Thermal conductivity of copper at 293 K, W/m-K
l = 0.5; # Lenght of the copper wire, m
d = 0.3*10**-3; # Diameter of cross-section of Cu, m
r = d/2; # Radius of copper wire, m
R = 0.12; # Resistance of copper wire, ohm
#Calculation
# As R = 1/con*l/(%math.pi*r**2)
# Solving for R
con = l/(math.pi*r**2*R); # Conductance of copper, per ohm per metre
#The Lorentz number is defined as the ratio of the Thermal conductivity to the
# Electrical conductivity of a solid per degree rise in temperature
# Experimental value of Lorentz number, watt ohm per kelvin square
Lexp = K/(con*T);
# Thoeretical value of Lorentz number value, watt ohm per kelvin square
Lth = math.pi**2/3*(k/e)**2;
#Result
print"The experimetal value of Lorentz number,in watt ohm per kelvin square,:"
print round((Lexp*10**8),2)*10**-8
print"The theoretical value of Lorentz number,in watt ohm per kelvin square,"
print round((Lth*10**8),2)*10**-8
print"\nThe theoretical value of Lorentz number is",round(Lth/Lexp,2)
print"times higher than the experimental one.\n"
from __future__ import division
import math
# Python Code Ex 10.12 Increase in electrical resistivity
# of a metal with temperature: Page-349 (2010)
#Variable declaration and calculation
def final_res(T):
alpha=0.0001 # Temperature co-efficient of resistance
res=0 # Initial resistivity of the nichrome which is an arbitray
#constant and can be taken to be zero
res = res + alpha*T;#Final resistivity of the nichrome as function of T
return res
T1 = 300; # Initial temperature of nichrome, K
T2 = 1000; # Final temperature of nichrome, K
res300 = final_res(T1); # Final resistivity of the nichrome at 300 K
res1000 = final_res(T2) # Final resistivity of the nichrome at 1000 K
percent_res = (res1000 - res300)*100;# Percentag increase in resistivity
#Result
print"\nThe percentage increase in the resistivity of nichrome is"
print round(percent_res,2)," percent"
from __future__ import division
import math
# PythonCode Ex 10.13 Thermionic emission of a filament: Page-352 (2010)
#Variable declaration
e = 1.6*10**-19; # Electronic charge, C
m = 9.1*10**-31; # Mass of the electron, kg
k = 1.38*10**-23; # Boltzmann constant, J/mol-K
h = 6.626*10**-34; # Plank's constant, Js
W = 4.5; # Work function of tungsten filament, eV
D = 1*10**-4; # Diameter of the filament, m
r = D/2; # Radius of the filament, m
T = 2400; # Temperature of the filament, K
l = 0.05; # Length of the filament, m
#Calculation
A = 4*math.pi*e*m*k**2/h**3; # A constant expressed in ampere per metre square
# per kelvin square
a = 2*math.pi*r*l; # Surface area of the filament, meter square
J = A*T**2*math.exp(-e*W/(k*T)); # Electronic current density of the filament,
# ampere per metre square
I = a*J; # Electric current due to thermionic emission, ampere
#Result
print "The electric current due to thermionic emission, in A, is : ",round(I,2)
from __future__ import division
import math
# Python Code Ex 10.14 Hall coefficient calculation of sodium based on
#free electron model: Page-353 (2010)
#Variable declaration
e = 1.6*10**-19; # Electronic charge, C
a = 4.28*10**-10; # lattice parameter of the unit cell of sodium crystal, m
N = 2; # Number of atoms per unit cell in bcc structure of sodium
#Calculation
n = N/a**3;# Number of electrons per unit volume for the sodium crystal,
RH = -1/(n*e); # Hall coefficient of sodium, metre cube per coulomb
#Result
print "The Hall coefficient of sodium , in metre cube per coulomb, is : "
print -round((RH*10**10),2)*10**-9