# Chapter 10 : Opto-electronic Devices¶

## Example number 10.1 , Page number 385¶

In [2]:
#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)

Thickness of silicon= 0.016 cm


## Example number 10.2 , Page number 385¶

In [7]:
#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)

open-circuit voltage Voc= 0.541 V


## Example number 10.3 , Page number 399¶

In [9]:
#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

#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)

Gain of the photoconductor= 686.4


## Example number 10.4 , Page number 400¶

In [11]:
#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)

steady-state photocurrent density= 0.43 A/cm**2


## Example number 10.5 , Page number 401¶

In [19]:
#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))

Critical angle for GaAs-air interface= 15.9 degrees


## Example number 10.6 , Page number 402¶

In [20]:
#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

a)
electron concentration= 1e+15 cm^-3

hole concentration= 2.1e+05 cm^-3

Fermi level w.r.t intrinsic fermi level= 0.279 eV

b)
electron concentration= 1e+15 cm^-3

hole concentration= 1e+12 cm^-3

Quasi fermi level for n-type carrier= 0.279 eV

Quasi fermi level for p-type carrier= 0.11 eV

c)
electron concentration= 1e+18 cm^-3

hole concentration= 1e+18 cm^-3

Quasi fermi level for n-type carrier= 0.45 eV

Quasi fermi level for p-type carrier= 0.45 eV



## Example number 10.7 , Page number 403¶

In [24]:
#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)

Wavelength of radiation for germanium= 1.85 micro-m

Wavelength of radiation for silicon= 1.10 micro-m

Wavelength of radiation for gallium-arsenide= 0.87 micro-m

Wavelength of radiation for SiO2= 0.14 micro-m



## Example number 10.8 , Page number 404¶

In [29]:
#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)

a)Current= 5.59*10**-15 A

b)Total number of solar cells= 25000


## Example number 10.9 , Page number 405¶

In [33]:
#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

Wavelength= 8.69*10**-7 m


## Example number 10.10 , Page number 406¶

In [49]:
#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

Power conversion efficiency = 0.32 %