#importing module
import math
from __future__ import division
#Variable declaration
alpha=10**2 #absorption coefficient in cm^-1
absorption=0.2 #80% absorption represented in decimal format
#Calculations
d=(1/alpha)*math.log(1/absorption)
#Result
print("Thickness of silicon= %.3f cm" %d)
#importing module
import math
from __future__ import division
#Variable declaration
Na=3*10**18 #in cm^-3
Nd=2*10**16 #in cm^-3
Dn=25 #in cm**2/s
Dp=10 #in cm**2/s
tau_n0=4*10**-7 #in s
tau_p0=10**-7 #in s
JL=20*10**-3 #photocurrent density in mA/cm**2
T=300 #in K
ni=1.5*10**10 #in cm^-3
e=1.6*10**-19 #in Joules
Const=0.026 #constant for KT/e in V
#Calculations
Ln=math.sqrt(Dn*tau_n0) #in micro-m
Lp=math.sqrt(Dp*tau_p0) #in micro-m
JS=e*ni**2*((Dn/(Ln*Na))+(Dp/(Lp*Nd))) #reverse saturation current density in A/cm**2
Voc=Const*math.log(1+(JL/JS))
#Result
print("open-circuit voltage Voc= %0.3f V" %Voc)
#importing module
import math
from __future__ import division
#Variable declaration
L=80*10**-4 #length in m
myu_n=1350 #in cm**2/V
myu_p=480 #in cm**2/V
V=12 #applied voltage in V
tau_n=3.95*10**-9 #transit time in sec
tau_p=2*10**-6 #carrier lifetime in sec
#Calculations
tn=L**2/(myu_n*V) #transit time in sec
Gph=(tau_p/tau_n)*(1+(myu_p/myu_n))
#Result
print("Gain of the photoconductor= %3.1f" %Gph)
#importing module
import math
from __future__ import division
#Variable declaration
Na=5*10**16 #in cm**3
Nd=5*10**16 #in cm**3
Dn=25 #in cm**2/s
Dp=10 #in cm**2/s
tau_n0=6*10**-7 #in s
tau_p0=2*10**-7 #in s
VR=6 #in V
GL=5*10**20 #in cm^-3/s
ni=1.5*10**10 #in cm^-3
e=1.6*10**-19 #in Joules
epsilon_s=11.7*8.85*10**-14 #in F/cm
Const=0.026 #constant for KT/e in V
#Calculations
Ln=math.sqrt(Dn*tau_n0) #in mico-m
Lp=math.sqrt(Dp*tau_p0) #in micro-m
Vbi=Const*math.log((Na*Nd)/ni**2) #in V
W=(((2*epsilon_s)/e)*((Na+Nd)/(Na*Nd))*(Vbi+VR))**0.5 #in micro-m
JL=e*GL*(W+Ln+Lp) #photocurrent density
#Result
print("steady-state photocurrent density= %0.2f A/cm**2" %JL)
#importing module
import math
from __future__ import division
#Variable declaration
n1=1
n2=3.66
#Calculations
theta_c=math.asin(n1/n2)
#Result
print("Critical angle for GaAs-air interface= %2.1f degrees" %math.degrees(theta_c))
#importing module
import math
from __future__ import division
#Variable declaration
Nd=10**15 #donor atoms in cm^-3
ni=1.45*10**10 #in cm^-3
k=8.62*10**-5 #in eV/K
T=300 #in K
Const=0.025 #coonstant for kT in eV
#Calculations
#a)
n=10**15 #in cm^-3
p=ni**2/Nd #in cm^-3
delE=Const*math.log(n/ni) #in eV
#b)
n0=10**15 #in cm^-3
p0=10**12 #in cm^-3
delE_fni=Const*math.log(n0/ni) #in eV
delE_ifp=Const*math.log(p0/ni) #in eV
#c)
n1=10**18 #in cm^-3
p1=10**18 #in cm^-3
delE_fni1=Const*math.log(n1/ni) #in eV
delE_ifp1=Const*math.log(p1/ni) #in eV
#Result
print("a)\nelectron concentration= %.1g cm^-3\n" %n)
print("hole concentration= %.2g cm^-3\n" %p)
print("Fermi level w.r.t intrinsic fermi level= %0.3f eV\n" %delE)
print("b)\nelectron concentration= %.1g cm^-3\n" %n0)
print("hole concentration= %.1g cm^-3\n" %p0)
print("Quasi fermi level for n-type carrier= %0.3f eV\n" %delE_fni)
print("Quasi fermi level for p-type carrier= %0.2f eV\n" %delE_ifp)
print("c)\nelectron concentration= %.1g cm^-3\n" %n1)
print("hole concentration= %.1g cm^-3\n" %p1)
print("Quasi fermi level for n-type carrier= %0.2f eV\n" %delE_fni1)
print("Quasi fermi level for p-type carrier= %0.2f eV\n" %delE_ifp1)
#The answers vary due to round off error
#importing module
import math
from __future__ import division
#Variable declaration
h=4.135*10**-15 #plancks constant in eVs
c=3*10**8 #in m/s
EgGe=0.67 #in eV
EgSi=1.124 #in eV
EgGaAs=1.42 #in eV
EgSiO2=9 #in eV
#Calculations
lamda1=(h*c)/EgGe/10**-6 #in micro-m
lamda2=(h*c)/EgSi/10**-6 #in micro-m
lamda3=(h*c)/EgGaAs/10**-6 #in micro-m
lamda4=(h*c)/EgSiO2/10**-6 #in micro-m
#Result
print("Wavelength of radiation for germanium= %1.2f micro-m\n" %lamda1)
print("Wavelength of radiation for silicon= %1.2f micro-m\n" %lamda2) #The answers vary due to round off error
print("Wavelength of radiation for gallium-arsenide= %1.2f micro-m\n" %lamda3)
print("Wavelength of radiation for SiO2= %1.2f micro-m\n" %lamda4)
#importing module
import math
from __future__ import division
#Variable declaration
Na=10**18 #in cm**-3
Nd=10**17 #in cm**-3
myu_p=471 #in cm**2/Vs
myu_n=1417 #in cm**2/Vs
tau_p=10**-8 #in s
tau_n=10**-6 #in s
JL=40 #in mA/cm**2
A=10**-5 #in cm**2
R1=1000 #in ohm
e=1.6*10**-19 #in J
ni=1.45*10**10 #in cm**-3
Vt=0.02586 #constant for kT/e at 300K in V
V=0.1 #in V
n=10 #number of solar cells
#Calculations
#a)
Dp=Vt*myu_p #in cm**2/s
Dn=Vt*myu_n #in cm**2/s
Ln=math.sqrt(Dn*tau_n) #in cm
Lp=math.sqrt(Dp*tau_p) #in cm
Js=e*ni**2*((Dp/(Nd*Lp))+(Dn/(Na*Ln))) #in A/cm**2
Is=Js*10**-5 #in A
IF=Is*(math.exp(V/Vt)-1) #in A
#b)
IL=40*10**-8 #in A
I=IL-IF #in
X=((10**-3)/(I))*n
#Result
print("a)Current= %.2f*10**-15 A\n" %round(IF/10**-15,2)) #The answers vary due to round off error
print("b)Total number of solar cells= %i" %X)
#importing module
import math
from __future__ import division
#Variable declaration
Eg=1.43 #Energy band gap in eV
h=4.14*10**-15 #planck's constant in eV/s
c=3*10**8 #in m/s
#Calculations
lamda=(h*c)/Eg
#Result
print("Wavelength= %0.2f*10**-7 m" %round(lamda/10**-7,2)) #The answers vary due to round off error
#importing module
import math
from __future__ import division
#Variable declaration
PC=190 #optical Power generated in mW
I=25*10**-3 #in A
V=1.5 #in V
#Calculations
P=V/I #Electrical Power
n=PC/P
#Result
print("Power conversion efficiency = %0.2f %%" %(n/10))
#The answer provided in the textbook is wrong