# ne in the doped silicon
import math
#Variable declaration
ni=1.5*10**16 # in m^-3
nh=4.5*10**22 # in m^-3
#Calculations
ne=ni**2/nh
#Result
print(" ne in the doped silicon is,(m^-3) = %.f * 10^9"%(ne/10**9))
# resistivity
import math
#Variable declaration
ne=8.0*10**19 # in m^-3
nh=5.0*10**18 # in m^-3
mu_e=2.3 # in m^2/V-s
mu_h=.01 # in m^2/V-s
e=1.6*10**-19 # in V
#Calculations
p=1/(e*((ne*mu_e)+(nh*mu_h)));
#Result
print("(b) the resistivity,p(ohm-m)= %.1f * 10^-2"%(p*10**2))
# Density
import math
#Variable declaration
sigma=500.0 # in ohm^-1 m^-1
mu_e=0.39 # m^2/V-s
e=1.6*10**-19 # in V
#Calculations
ne=sigma/(e*mu_e);
#Result
print("number density of donor,ne(m^-3) = %.2f * 10^21"%(ne*10**-21))
# Density
import math
#Variable declaration
e=1.6*10**-19 # in V
Pp=10**-2 # p-type silicon in ohm-m
Pn=10**-2 # n-type silicon in ohm-m
mu_p=0.048 # holes mobilities in m^2/V-s
mu_n=0.135 # electrons mobilities in m^2/V-s
#Calculations
Na=1/(e*mu_p*Pp);
Nd=1/(e*mu_n*Pn);
#Result
print("(i). the density of impurity,Na (m^-3) = %.1f * 10^22"%(Na*10**-22))
print("(ii). the density of impurity,Nd (m^-3) = %.2f * 10^21"%(Nd*10**-21))
# Resistivity
import math
#Variable declaration
e=1.6*10**-19 # in V
n=2.5*10**19 # m^3
p=n
ni=n
mu_p=0.17 # holes mobilities in m^2/V-s
mu_n=0.36 # electrons mobilities in m^2/V-s
#Calculations
sgint=e*(ni*(mu_p+mu_n)) #electrical conductivity in mho/metre
pint=1/sgint #resistivity in ohm-meter
print("electrical conductivity is ,(mho/metre)= %.2f"%sgint)
print("resistivity is ,(ohm-metre)= %.2f"%pint)
# Conductivity
import math
#Variable declaration
e=1.6*10**-19 # in V
ni=1.5*10**16 # in m^3
mu_p=0.13 # holes mobilities in m^2/V-s
mu_n=0.05 # electrons mobilities in m^2/V-s
siat=10.0**8 # number of silicon atoms
ta=5.0*10**28 # silicon atoms in atoms/m^3
mu_n2=0.13 # electrons mobilities in m^2/V-s
siat2=10.0**8 # number of silicon atoms
ta2=5.0*10**28 # silicon atoms in atoms/m^3
mu_p2=0.05 # holes mobilities in m^2/V-s
#Calculations
sgint=e*(ni*(mu_p+mu_n)) # electrical conductivity in mho/m
Nd=ta/siat # in atoms/m^3
p= ni**2/Nd # holes concentration in holes/m^3
n=Nd
sntype=e*n*mu_n2 # in mho/m
Na=ta2/siat2 # in atoms/m^3
n= ni**2/Na # holes concentration in holes/m^3
sptype=e*Na*mu_p2 # in mho/m
#Calculations
print("(i) electrical conductivity is ,(mhos/m) = %.2f * 10^-4"%(sgint*10**4))
print("(ii) holes concentration is, (holes/m^3) = %.1f *10^11"%(p*10**-11))
print("(ii) conductivity is ,(mho/m) = %.1f"%sntype)
print("(iii) electron concentration is, (holes/m^3)= %.1f * 10^11"%(n/10**11))
print("(iii) conductivity is ,(mho/m) = %.1f"%sptype)
# Fermi Level
import math
#Variable declaration
#Nd1=Nc*exp^-(Ec-Ef1)/kT ...Formula Used
Nc=1.0 #assume
kT=0.03 #eV
EcEf1=0.5 #position of Fermi level in V
Nd=1.0 #assume
Nd1=3*Nd #After tripling the donor concentration
#Calculation
EcEf2=(EcEf1-(kT*(math.log(Nd1/Nd))))
print("new position of Fermi-level is %.3f eV below conduction band"%(math.ceil(EcEf2*1000)/1000))
# density
import math
#Variable declaration
e=1.6*10**-19 # in V
Pp=10**-1 # p-type silicon in ohm-m
Pn=10**-1 # n-type silicon in ohm-m
mu_h=0.05 # holes mobilities in m^2/V-s
mu_e=0.13 # electrons mobilities in m^2/V-s
#Calculations
Na=1/(e*mu_h*Pp);
Nd=1/(e*mu_e*Pn);
#Result
print("(i). the density of impurity,Na (m^-3) = %.2f * 10^21"%(Na/10**21))
print("(ii). the density of impurity,Nd (m^-3) = %.1f * 10^20"%(Nd/10**20))
# current
import math
#Variable declaration
e=1.6*10**-19 # in V
Pp=10**-1 # p-type silicon in ohm-m
Pn=10**-1 # n-type silicon in ohm-m
mu_hsi=0.048 # holes mobilities in m^2/V-s
mu_esi=0.135 # electrons mobilities in m^2/V-s
nisi=1.5*10**16 # in m^-3
nesi=nisi
nhsi=nisi
mu_hge=0.19 # holes mobilities in m^2/V-s
mu_ege=0.39 # electrons mobilities in m^2/V-s
A=1*10**-4 # area in m^2
nige=2.4*10**19 # in m^-3
V=2.0 # in V
l=0.1 # in m
#Calculations
Isi= e*A*(V/l)*((nesi*mu_esi)+(nhsi*mu_hsi))
#Current for silicon is calculated wrong in the textbook
nege=nige
nhge=nige
Ige= e*A*(V/l)*((nege*mu_ege)+(nhge*mu_hge))
#Result
print("Total current for silicon is,(A) = %f"%Isi)
print("Total current for germanium is,(A)= %.2f * 10^-3"%(math.ceil(Ige*10**5)/100))
# hole concentration and conductivity
import math
#Variable declaration
nh=2*10**21 # acceptor atoms in atoms/m^3
mu_h=0.17 # mobility of holes in m^2/V-s
e=1.6*10**-19 # in C
#Calculations
Na=nh
sigma=nh*mu_h*e;
#Result
print("hole concentration,Na(atoms/m^3) = %.1f * 10^21"%(Na/10**21))
print("conductivity,(ohm^-1-m^-1) = %.1f"%sigma)
#conductivity is calculated wrong in the book
# donor concentration
import math
#Variable declaration
p=0.15 # in ohm-m
mu_e=0.39 # mobility of electron in m^2/V-s
e=1.6*10**-19 # in C
#Calculations
Na=1/(e*mu_e*p);
#Result
print("The value of donor concentration,Na(m^-3) = %.2f * 10^20"%(Na/10**20))
# resistivity
import math
#Variable declaration
mu_n=0.13 # in m^2/V-s
mu_p=0.05 # in m^2/V-s
ni=1.5*10**16 # in m^-3
e=1.6*10**-19 # in C
#Calculations
p=1/((e*ni)*(mu_n+mu_p));
#Result
print("The resistivity,p(ohm-m) = %.1f"%p)
# current
import math
#Variable declaration
e=1.6*10**-19 # electron charge in coulombs
k=1.38*10**-23 # Boltzmann constant in m^2-kg/s^2-K^-1
T=300.0 # in Kelvin
I=240.0 # in mA
eta=2.0
Ve=0.8 # in V
V=0.7 # in V
#Calculations
Vt=(k*T)/e # in V
Id=I*math.e**((V-Ve)/(eta*Vt)) #in mA
Ir=(I/((math.e**(Ve/(eta*Vt)))-1))*10**6
#Result
print("(i) Current is ,(mA) = %.f"%(round(Id)))
print("(ii) reverse saturation current is ,(nA) = %.f"%(round(Ir)))
#reverse saturation current is calculated wrong in the textbook
# diode current and voltage
import math
#Variable declaration
e=1.6*10**-19 # electron charge in coulombs
k=1.38*10**-23 # Boltzmann constant in m^2-kg/s^2-K^-1
T=300.0 # in Kelvin
Ir1=10**-10 # in A
Ir2=10**-12 # in A
V211=0.5 # in V
#Calculations
Vt=(k*T)/e
Vt = math.ceil(Vt*1000)/1000
V21=((Vt)*math.log10(Ir1/Ir2))*2.3026
V21 = math.floor(V21*10000)/10000
V2=(1.0/2)*(V21+V211)
V1=(1.0/2)*(V211-V21)
I1=Ir2*math.e**(V2/Vt)*10**6
I2=I1
#Result
print("diode voltage V2 is ,(V) = %.5f"%V2)
print("diode voltage V1 is ,(V) = %.5f"%V1)
print("diode current is,(micro-A) = %.4f"%I1)
# voltage
import math
#Variable declaration
e=1.6*10**-19 # electron charge in coulombs
k=1.38*10**-23 # Boltzmann constant in m^2-kg/s^2-K^-1
T=300.0 # in Kelvin
Ir1=10**-12 # in A
Ir2=10**-10 # in A
It=2.0 # mA
#Calculations
I21=Ir2/Ir1
Vt=(k*T)/e # in V
Vt = math.ceil(Vt*1000)/1000
I1=It/(1+I21)*10**3 # in micro-A
I2=It*10**3-I1 # in micro-A
I1=I2/I21 # in micro-A
x=((I1*10**-6)/Ir1)
V=Vt*math.log10(x)*2.3026
#Result
print("diode voltage is ,(V) = %.3f"%V)
# voltage
import math
#Variable declaration
T=27.0 # degree Celsius
Tk=273+T # in Kelvin
e=1.6*10**-19 # electron charge in coulombs
k=1.38*10**-23 # Boltzmann constant in m^2-kg/s^2-K^-1
J=10**4 # in Amp/m^2
Jo=200.0 #in mA/m^2
#Calculations
x=(J/(Jo*10**-3))
Ve=((math.log(x))*k*Tk)/e
#Result
print("voltage to be applied is ,(V) = %.2f"%Ve)
# resistance
import math
#Variable declaration
V=3.0 # in V
I=55.0 # in mA
V2=26.0 # in mV
#Calculations
Rdc=V/(I*10**-3) # in ohm
Rac=V2/I # in ohm
#Result
print("static resistance is ,(ohm) = %.1f"%Rdc)
print("dynamic resistance is ,(ohm) = %.2f"%Rac)
# resistance
import math
#Variable declaration
k=1.38*10**-23 # constant
T=27+273.0 # in K
eta=2.0
e=1.6*10**-19 # in C
Vt=(k*T/e) # in V
V=0.5 # in V
Ir=10**-6 # in A
#Calculations
I=(Ir*10**3*(math.e**(V/(eta*Vt))-1))
R_dc=V*10**3/I;
R_ac=(eta*k*T)/(e*I*10**-3);
#Result
print("static resistance,R_dc(ohm) = %.1f"%R_dc)
print("Dynamic resistance,R_ac(ohm) = %.1f"%R_ac)
#answer is wrong in textbook
# resistance
import math
#Variable declaration
V=1.2 # in V
Vk=0.7 # in V
I_F=100.0 # in mA
V_R=10.0 # in V
I_R=1.0 # in micro-A
I=5.0 # in mA
eta=2
#Calculations
R_B=(V-Vk)/(I_F*10**-3)
R_R=V_R/I_R
R_ac=eta*26/I
#Result
print("the bulk resistance,R_B(ohm) = %.f"%R_B)
print("the reverse resistance,R_R(M-ohm) = %.f"%R_R)
print("ac resistance,R_ac(ohm) = %.1f"%R_ac)
# capacitance
import math
#Variable declaration
epsilon_0=8.85*10**-12 # in farada/m
K=12.0 # constant for silicon
A=1*10**-8 # in m^2
W=5*10**-7 # in m
#Calculations
epsilon=epsilon_0*K
Ct=epsilon*A*10**14/W;
#Result
print("the transition capacitance,Ct(PF) = %.1f"%Ct)
# resistance
import math
#Variable declaration
V=0.2 # in V
I=1.0 # in micro-A
#Calculations
R_dc=V*10**3/I
R_ac=26/(I*10**3);
#Result
print("The static resistance,R_ac(k-ohm) = %.f"%R_dc)
print("the dynamic resistance,R_ac(ohm) = %.3f"%R_ac)