In [2]:
from numpy import *
%pylab inline
Populating the interactive namespace from numpy and matplotlib

11.1

In [1]:
import sympy as s
A,B,q,k,d,h,m = s.symbols('A B q k d h m')
h*h/2/m

11.2

In [3]:
def ns_expectation(dE):
    # dE = E-mu -- energy difference from Fermi energy
    # For an insulator, is the Fermi energy halfway between valence and conduction band edges?
    kt = .026 #ev, at roomt temperature
    return 1/(exp(dE/kt)+1)
In [10]:
print "Ge expected occupancy at conduction band edge: %.3e"%ns_expectation(.67/2)
print "Si expected occupancy at conduction band edge: %.3e"%ns_expectation(1.11/2)
print "Diamond expected occupancy at conduction band edge: %.3e"%ns_expectation(5/2)
Ge expected occupancy at conduction band edge: 2.537e-06
Si expected occupancy at conduction band edge: 5.364e-10
Diamond expected occupancy at conduction band edge: 3.915e-34

11.3

In [19]:
ni = ns_expectation(1.11/2) #intrinsic density
n = 1e17
def p(ni,n):
    return ni**2/n
print "Equilibrium hole concentration in Si with %.0e As atoms/cm^3: %.2e holes/cm^3"%(n,p(ni,n))
Equilibrium hole concentration in Si with 1e+17 As atoms/cm^3: 2.88e-36 holes/cm^3
In [23]:
def E_shift(ni,n):
    kt = .026 #ev, at roomt temperature
    return kt*log(n/ni)
print "Fermi energy shift in Si with %.0e As atoms/cm^3: %.2e eV"%(n,E_shift(ni,n))
Fermi energy shift in Si with 1e+17 As atoms/cm^3: 1.57e+00 eV

11.4

In [ ]: