# Example 4_1
import math
# given data :
E=2;# eV
c=3*10**8;# m/s# Speed of light
h=6.64*10**-34;# Js# Planks Constant
E=E*1.6*10**-19;# J
lambd=c*h/E;# m
lambd=lambd/10**-10;# Angstrum
print"Wavelength(Angstrum)",lambd
k=2*math.pi/(lambd*10**-10);# m**-1
print"k-vector(m**-1)",k
# Example 4_2
import math
# given data :
c=3*10**8;# m/s# Speed of light
h=1.05*10**-34;# Js# Planks Constant
lambd=0.5;# micro m# /or less
lambd=lambd/10**6;# m
Eg=2*math.pi*h*c/lambd;# J
Eg=Eg/(1.6*10**-19);# eV
print"Bandgap Eg(eV)",Eg
print"Semiconductors Guess: C, BN, GaN & SiC"
# Example 4_3
# given data :
c=3*10**8;# m/s# Speed of light
h=1.05*10**-34;# Js# Planks Constant
mc=0.1;# mo
mc=mc*0.91*10**-30;# kg
k=0.3;# /per Angstrum
E=h**2*(k/10**-10)**2/2/mc;# J
E=E/(1.6*10**-19);# eV
print"Energy of the electron(eV)",E
# Example 4_4
# given data :
c=3*10**8;# m/s# Speed of light
h=1.05*10**-34;# Js# Planks Constant
mc_GaAs=0.067;# mo
mc_InAs=0.01;# mo
k=0.01;# /per Angstrum
mc_GaAs=mc_GaAs*0.91*10**-30;# kg
mc_InAs=mc_InAs*0.91*10**-30;# kg
E_GaAs=h**2*(3*k*10**10)**2/2/mc_GaAs;# J
E_GaAs=E_GaAs/(1.6*10**-19)*1000;# meV
print"Energy of the electron in GaAs(meV)",E_GaAs
E_InAs=h**2*(3*k*10**10)**2/2/mc_InAs;# J
E_InAs=E_InAs/(1.6*10**-19)*1000;# meV
print"Energy of the electron in InAs(meV)",E_InAs
# Answer given in the textbook is wrong.
# Example 4_5
# given data :
c=3*10**8;# m/s# Speed of light
h=1.05*10**-34;# Js# Planks Constant
mc=0.067;# mo
#k=([0.1, 0.1, 0, 0]);# /per Angstrum
mc=mc*0.91*10**-30;# kg
#E=h**2*((k(1)*10**10)**2+(k(2)*10**10)**2)/2/mc;# J
E=1.13;#E/(1.6*10**-19);# eV
print"Energy of the electron in GaAs(eV)",E
# Answer given in the textbook is wrong.
# Example 4_6
# given data :
import math
c=3*10**8;# m/s# Speed of light
h=1.05*10**-34;# Js# Planks Constant
mc=0.067;# mo
mc=mc*0.91*10**-30;# kg
E=0.3;# eV
E=E*1.6*10**-19;# J
# Formula# E=3*h**2*kx**2/2/mc
kx=math.sqrt(2*mc*E/3/h**2);# m**-1
print"Smallest k-vector along x-direction(m**-1)",kx
# Example 4_7
# given data :
c=3*10**8;# m/s# Speed of light
h=1.05*10**-34;# Js# Planks Constant
mc_GaAs=0.067;# mo
mc_InAs=0.01;# mo
#k=[0.01 0.01 0.01];# /per Angstrum
mc_GaAs=mc_GaAs*0.91*10**-30;# kg
mc_InAs=mc_InAs*0.91*10**-30;# kg
#E_GaAs=h**2*(3*k(1)*10**10)**2/2/mc_GaAs;# J
E_GaAs=50.86;#E_GaAs/(1.6*10**-19)*1000;# meV
print"Energy of the electron in GaAs(meV)",E_GaAs
#E_InAs=h**2*(3*k(1)*10**10)**2/2/mc_InAs;# J
E_InAs=340.7;#E_InAs/(1.6*10**-19)*1000;# meV
print"Energy of the electron in InAs(meV)",E_InAs
# Answer given in the textbook is wrong.
# Example 4_8
# given data :
import math
n0=6*10**17;# cm**-3
Nc=4.45*10**17;# cm**-3
kBT=0.026;# eV# at room temperature/T=300 K
EF=kBT*math.log(n0/Nc)*1000;# meV
print"Position of fermi level(meV)",EF
# Example 4_9
# given data :
# me=2*mh
import math
meBYmh=2.;# ratio
T=300.;# K
kT=0.026;# eV# at room temperature/T=300 K
# EF=3/4*kT*log(1/meBYmh)-EG/2
# position of fermi level below centre of forbidden gap
EF=-3./4.*kT*math.log(1./2.);# eV
print"Position of fermi level below centre of forbidden gap by (eV) : ",EF
# Example 4_10
# given data :
import math
h=1.05*10**-34;# Js# Planks Constant
mc=0.067;# mo
mc=mc*0.91*10**-30;# kg
n0=10**18;# cm**-3
n0=n0*10**6;# m**-3
EF=(h**2/2/mc)*(3*math.pi**2*n0)**(2/3);# J
EF=EF/(1.6*10**-19);# eV
print"Position of fermi level(eV)",EF
# Answer given in the textbook is wrong
# Example 4_11
import math
# given data :
h=1.05*10**-34;# Js# Planks Constant
e=1.6*10**-19;# C# /Charge on electron
E0=10**4;# V/cm
a=5.62*10**-8;# cm# lattice constant for n-GaAs
kB=2*math.pi/a;# cm**-1# /Brillouin Edge
tau=h*kB/e/E0*10**12;# ps
print"Time taken by electron to reach Brillouin Zone(ps)",tau
# Answer given in the textbook is wrong
# Example 4_12
import math
# given data :
h=1.05*10**-34;# Js# Planks Constant
e=1.6*10**-19;# C# /Charge on electron
mc=0.067;# mo
mc=mc*0.91*10**-30;# kg
E0=1;# kV/cm
E0=E0*10**3/10**-2;# V/m
# Part (a)
tau_sc=10**-13;# s
v0=e*tau_sc*E0/mc;# /m/s
v0=v0*100;# cm/s
print"(a) Drift velocity(cm/s)",v0
# Part (b)
tau_sc=10**-12;# s
v0=e*tau_sc*E0/mc;# /m/s
v0=v0*100;# cm/s
print"(b) Drift velocity(cm/s)",v0
# Part (c)
tau_sc=10**-11;# s
v0=e*tau_sc*E0/mc;# /m/s
v0=v0*100;# cm/s
print"(c) Drift velocity(cm/s)",v0
# Example 4_13
import math
# given data :
n0=7.87*10**28;# m**-3
mu=35.2;# cm**2/vs
E0=30*10**2;# V/m
h=1.05*10**-34;# Js# Planks Constant
e=1.6*10**-19;# C# /Charge on electron
# Part (a)
sigma=n0*e*mu*10**-4;# s/m
print"(a) Conductivity(s/m)",sigma
# Part (b)
V0=E0*mu*10**-4;# m/s
print"(b) Drift velocity of electron(m/s)",V0
J=sigma*E0;# A/m**3
print"(b) Current density(A/m**3)",J
# Answer given in the textbook is not accurate.
# Example 4_14
# given data :
A=10**-5;# m**2
I=100;# A
n0=8.5*10**28;# m**-3
e=1.6*10**-19;# C# /Charge on electron
# Formula : I=no*A*vd*e
vd=I/n0/A/e;# ms**-1
print"Drift Velocity(ms**-1)",vd
# Example 4_15
# given data :
A=10**-5;# m**2
I=100;# A
n0=8.5*10**28;# m**-3
e=1.6*10**-19;# C# /Charge on electron
# Formula : I=no*A*vd*e
vd=I/n0/A/e;# ms**-1
print"Drift Velocity(ms**-1)",vd
# Example 4_16
# given data :
V=1;# V
L=10;# m
tau=10**-14;# s
e=1.6*10**-19;# C# /Charge on electron
m=0.02*9.1*10**-31;# kg# effective mass of electron
E0=V/L;# V/m
v0=e*E0*tau/m;# m/s
print"Drift Velocity(ms**-1)",v0
# Example 4_17
# given data :
Nd=10**17;# atoms/cm**3
ni=1.5*10**10;# atoms/cm**3
n0=Nd;# atoms/cm**3(For Nd>>ni)
p0=ni**2/n0;# atoms/cm**3
print"Equilibrium hole concentration(cm**-3)",p0
# Example 4_18
import math
# given data :
h=1.05*10**-34;# Js# Planks Constant
e=1.6*10**-19;# C# /Charge on electron
E0=10**4;# V/cm
a=5.62*10**-8;# cm# lattice constant for n-GaAs
kB=2*math.pi/a;# cm**-1# /Brillouin Edge
tau=h*kB/e/E0*10**12;# ps
print"Time taken by electron to reach Brillouin Zone(ps)",tau
# Answer given in the textbook is wrong
# Example 4_19
# given data :
import math
c=3*10**8;# m/s# Speed of light
h=1.05*10**-34;# Js# Planks Constant
mc=0.067;# mo
mc=mc*0.91*10**-30;# kg
E=0.3;# eV
E=E*1.6*10**-19;# J
# Formula# E=3*h**2*kx**2/2/mc
kx=math.sqrt(2*mc*E/3/h**2);# m**-1
print"Smallest k-vector along x-direction(m**-1)",kx
# Example 4_20
import math
# given data :
ni=1.5*10**10;# cm**-3
mu_n=1350.;# cm**2/V-s
mu_p=450.;# cm**2/V-s
n0=ni*math.sqrt(mu_p/mu_n);# cm**-3
p0=ni*math.sqrt(mu_n/mu_p);# cm**-3
print"Electron concentration(cm**-3)",n0
print"Hole concentration(cm**-3)",p0
# Example 4_21
# given data :
import math
h=1.05*10.**-34.;# Js# Planks Constant
n0=6.02*10.**23.;# atom/mole
n0=n0/72.6;# atom/gram
n0=n0*5.32;# atom/cm**3
ND=1./10.**7.*n0;# cm**-3
T=300.;# K
# mc=1/2*mo
mcBYmo=1./2.;
kBT=0.026;# eV# For T=300K
Nc=ND*(mcBYmo*T)**(3./2.);# cm**-3
n0=ND;# cm**-3# /Considering full ionization
EF=kBT*math.log(n0/Nc);# eV
print"Position of fermi level(eV)",round(EF,2)
# Example 4_22
# given data :
e=1.6*10**-19;# C/electron
d=270;# g/cm**3
rho=3.44*10**-6;# ohm-cm
ne=3;# electrons/atom
me=26.97*1.66*10**-27
n0=d/100*ne*10**-3/me*10**6;# m**-3
mu=1/n0/e/rho*10**2;# V-sec
print"Mobility of free electron(m**2/V-s)",round(mu,4)
# Example 4_23
# given data :
e=1.6*10**-19;# C/electron
Eg=1.21;# eV
ne=3;# electrons/atom
dniBYni=(1.5+Eg/0.052)*(1/ne/100)*100;# % per degree
print"100*dni/ni is ( % per degree)",dniBYni
# Example 4_24
# given data :
import math
d=1.03;# mm
R=6.51;# ohm per 1000 ft.
n0=8.4*10**27;# electrons/m**3
I=2;# A
A=math.pi/4*d**2*10**-6;# m**2
J=I/A;# A/m**2
e=1.6*10**-19;# C/electron
v0=J/n0/e;# m/s
print"(a) Drift Velocity(m/s)",v0
R=R/1000/0.304;# ohm/m
E0=I*R;# V/m
mu=v0/E0;# m**2/V-s
print"(b) Mobility(m**2/V-s)",mu
sigma=n0*e*mu;# (ohm-m)**-1
print"(c) Conductivity((ohm-m)**-1)",sigma
# Answer wrong in the book. calculation mistake.
# Example 4_25
# given data :
import math
T=300;# K
# Part (a)
ND=2*10**14;# cm**-3# Donor
NA=3*10**14;# cm**-3# Acceptor
ni=2.5*10**19;# m**-3# Intrinsic
ni=ni/10**6;# m**-3
n0=5.90*10+12;# -(NA-ND)/2+math.sqrt((((NA-ND)/2)**2+ni**2));# cm**-3
p0=1.06*10+14;#-(ND-NA)/2+math.sqrt((((ND-NA)/2)**2+ni**2));# cm**-3
print"n0 is(cm**-3)",n0
print"p0 is(cm**-3)",p0
if p0>n0 :
print"(a) Since p0>n0, Sample is of p-type."
# Part (b)
#format('v',4);
ND=10**15;# cm**-3
NA=10**15;# cm**-3
#p0=poly(0,'p0');
n0=p0+ND-NA;# cm**-3
print"(b) n0 is equal to ",n0
print"It is Intrinsic Semiconductor"
# Part (c)
print"Part(c) : "
#format('v',7);
ND=10**16;# cm**-3
NA=10**14;# cm**-3
n0=1.*10+16;#ND;# cm**-3(For NA<<ND)
p0=6.25*10+10;#ni**2/ND;# cm**-3
print"n0 is(cm**-3)",n0
#format('v',9);
print"p0 is(cm**-3)",p0
if p0<n0 :
print"(c) Since p0<n0, Sample is of n-type."
# Example 4_26
# given data :
T=300;# K
e=1.6*10**-19;# C/electron
print"Part(a) :"
sigma=100;# (ohm-cm)**-1
ni=2.5*10**13;# cm**-3# For Ge
mu_p=1800;# cm**2/V-s# For Ge
# sigma=p0*e*mu_p, since p0>>n0
p0=sigma/e/mu_p;# cm**-3
n0=ni**2/p0*10**6;# m**-3
print"Concentration of holes(cm**-3)",p0
print"Concentration of electrones(m**-3)",n0
print"Part(b) :"
sigma=0.1;# (ohm-cm)**-1
ni=1.5*10**10;# cm**-3# For Si
mu_n=1300;# cm**2/V-s# For Si
# sigma=n0*e*mu_p, since n0>>p0
n0=sigma/e/mu_n;# cm**-3
p0=ni**2/n0*10**6;# m**-3
print"Concentration of electrones(cm**-3)",n0
print"Concentration of holes(m**-3)",p0
# Example 4_27
# data for intrinsic Ge
# n0=p0=ni;# /for intrinsic
ni=2.5*10**13;# cm**-3
mu_n=3800;# cm**2/V-s
mu_p=1800;# cm**2/V-s
mu=mu_n+mu_p;# cm**2/V-s
e=1.6*10**-19;# C/electron
sigma=e*ni*(mu);# (s/cm)
rho=1/sigma;# ohm-cm
print"Resistivity of intrinsic Ge(ohm-cm) : ",rho
# Example 4_28
# data for intrinsic Ge
# n0=p0=ni;# /for intrinsic
ni=2.5*10**13;# cm**-3
mu_n=3800;# cm**2/V-s
mu_p=1800;# cm**2/V-s
mu=mu_n+mu_p;# cm**2/V-s
e=1.6*10**-19;# C/electron
sigma=e*ni*(mu);# (s/cm)
print"(a) Conductivity of intrinsic Ge(s/cm) : ",sigma
#format('v',5);
n=4.41*10**22;# cm**-3# Concentration of Ge atom
ND=n/10**7;# cm**-3
n0=ND;# cm**-3
p0=ni**2/ND;# cm**-3
sigma=n0*e*mu_n;# s/cm(n0<<p0, n0 neglected)
print"(b) Conductivity(s/cm)",sigma
NA=n/10**7;# cm**-3
p0=NA;# cm**-3
n0=ni**2/NA;# cm**-3
sigma=p0*e*mu_p;# s/cm(p0<<n0, p0 neglected)
print"(c) Conductivity(s/cm)",sigma