HW#6 (Bandstructure) and DOS Problem 1. The textbook works out the bandstructure for GaAs. Let us do it for silicon. Notice that both cation and anion are Si atoms. Plot the bandstructure along the L-Γ-X direction. Use the same Hamiltonian (matrix on page 118 of the book), as GaAs and Si both have the diamond-cubic lattice structure. [10] The sp 3 s* Vogl parameters are E sa = -4.2eV E pa = 1.715 ev E s*a = 6.685eV E sc = -4.2eV E pc = 1.715 ev E s*c = 6.685eV V ss = 4E ss = -8.3eV V pasc = 4E pasc = 5.7292eV V pas*c = 4E pas*c = 5.3749eV V sapc = 4E sapc = 5.7292eV V s*apc = 4E s*apc = 5.3749eV V xx = 4E xx = 1.715eV V xy = 4E xy = 4.575eV Vectors that go into the definitions of g0, g1, g2 and g3 are d 1 =0, d 2 =(0,1,1)a/2, d 3 =(1,0,1)a/2, d 4 =(1,1,0)a/2 Let us see why we need the sp 3 s* basis set for Si. (a) Show by plotting the bandstructure that working with just the s orbitals (ie, the first 2 x 2 block of the H matrix defined on page 118) gives us a zero bandgap along the Γ-X direction. This is because the projections of the Si coordinates along the x-axis within a unit cell do not show any dimerization. (You will however see a gap along the L- Γ direction). [5]
(b) This is why we need the p-orbitals. Show now that just working with sp 3 basis sets (ie, removing the last two rows and two columns of the H matrix on page 118) gives a bandgap along both directions, but makes the material direct bandgap. [5]
To make it indirect band-gap, we need the s* orbitals too (actually, even this is insufficient. It turns out that the transverse effective mass at the minimum along the G-X direction is still too large. A proper description of silicon thus needs a nearest-neighbor sp 3 s*d 5 basis set, as developed by Jancu, and also by Boykin and Klimeck).
Problem 2. The density of states (DOS) of a device can be computed using simple state-counting over a given energy window, using the E-k dispersion to transfer state (k) information into energy (E) information. In class, we saw how to do these counts analytically using clever integration techniques. Let us see if we can set up a numerical way to do the counting for arbitrary bandstructures. The density of states is given by D(E) = Σ k δ(e-e k ), where the Dirac delta function is a sharp but smooth Gaussian-like curve with vanishingly small width around E k, a large (infinite) height, but with a fixed area (unity) when integrated over the curve. In a discrete representation, we will replace it with a simpler function which is unity as long as E is close to E k within a given error tolerance, and zero otherwise. We will ignore spin, which would provide an additional factor of 2. We will use this method to find the DOS of a simple cubic lattice for different dimensions. 1-D 2-D 3-D (a) Let us start with a uniform infinite 1-D wire with inter-atomic spacing a, onsite energy 0 and hopping t on a grid. Use the principle of bandstructure to write down its k- dependent Hamiltonian H k by summing Hamiltonian elements over nearest-neighbor elements. Write down an analytical expression of E vs k in 1-D, E vs k x, k y in 2-D and E vs k x, k y and k z in 3-D (5 + 5 + 5) (b) Write a numerical code (e.g. in Matlab) that sets up an energy grid and runs a loop over the various k values (-π/a < k < π/a) to see which energy bin each E k falls into. If you now plot a histogram showing how the bin counts vs the energies (say, the energy at the center of the bin), you will get your numerical density of states plotted vs energy. The finer your grid the smoother your curve will be. Do this first for 1-D. Can you justify the resulting shape? (10 + 5) (c) Repeat this for a 2-D and a 3-D simple cubic grid, assuming an onsite energy of 0 again and interatomic coupling t for each nearest neighbor bond (4 in 2D and 6 in 3D), as shown above. Once again, plot the DOS vs energy. (10 + 10)
A simple code to calculate density of states by brute force binning
clear all Nx=151;kx=linspace(- pi,pi,nx);ky=kx;kz=kx; %%k grid NE=1501;EE=linspace(- 2,14,NE);dE=E(2)- E(1); %% E grid Emin=EE(1);Emax=EE(NE); DOS=zeros(1,NE); %% DOS grid t=1;%% Band parameter for ix=1:nx for iy=1:nx for iz=1:nx %% E- K E=6*t- 2*t*(cos(kx(ix))+cos(ky(iy))+cos(kz(iz))); %% Identify bin index %[p,q]=min(abs(e- EE)); %% If we just bin arbitrarily q=round((e- Emin)/(Emax- Emin)*NE+1); %% Quicker if bins equally spaced %% Throw in bins and sum DOS(q)=DOS(q)+1; [ix iy iz]%% Counter to see progress of loops end end end %Normalize so DOS integral equals unity SM=dE*sum(DOS); plot(ee,dos/sm)
Let us do this with a really fast, vectorized binning routine. Start with 2D tic clear all Nx=1851;kx=linspace(- pi,pi,nx);ky=kx; %%k grid t=1;%% Band parameter f=cos(kx); %% Create 2D matrix with E(kx,ky) E=4*t*eye(Nx)- 2*t*repmat(f,Nx,1)- 2*t*repmat(f',1,Nx); Emin=min(min(E));Emax=max(max(E)); EE= reshape(e,1,nx*nx); %% reshape into linear array %% Create bin for DOS and count histogram %% of above E's into Ebin NNE=151;Ebin=linspace(Emin- 1e- 9,Emax+1e- 9,NNE);dE=Ebin(2)- Ebin(1); DOS=histc(EE,Ebin); axis([emin- 5*dE Emax+5*dE 0 1.2*max(DOS)]) plot(ebin,dos) toc Let s generalize to 3D. We need to use cubic cells to enter the E values tic clear all Nx=251;kx=linspace(- pi,pi,nx);ky=kx;kz=kx; %%k grid t=1;%% Band parameter f=cos(kx); %% Create 3D matrix with E(kx,ky) Ex=- 2*t*repmat(f,[Nx,1,Nx]); Ey=permute(Ex,[2 1 3]); %% Tile along y- axis Ez=permute(Ex,[1 3 2]); %% Tile along z- axis E=4*t+Ex+Ey+Ez; Emin=min(min(min(E)));Emax=max(max(max(E))); %% Create bin for DOS and count histogram of above E's into Ebin NNE=151;Ebin=linspace(Emin- 1e- 9,Emax+1e- 9,NNE);dE=Ebin(2)- Ebin(1); DOS=histc(reshape(E,1,Nx*Nx*Nx),Ebin);
DOS=DOS/(sum(DOS)*dE) axis([emin- 5*dE Emax+5*dE 0 1.2*max(DOS)]) plot(ebin,dos) toc Problem 3. You just worked out the density of states for graphene in Problem 1.3 by doing an integral. We will now try to calculate the DOS for graphene and compare it with the analytical expression from Problem 1. Remember that the linear E-k we used in the previous problem is just a low energy approximation, allowing us to do the integrals. In this problem, we'll use the exact E-k, where we will need to calculate the DOS numerically. The density of states is given by D(E) = Σ k δ(e-e k ), where the Dirac delta function is a sharp but smooth Gaussian-like curve with vanishingly small width around E k, a large (infinite) height, but with a fixed area (unity) when integrated over the curve. In a discrete representation, we will replace it with a simpler function which is unity as long as E is close to E k within a given error tolerance, and zero otherwise. We will ignore spin, which would provide an additional factor of 2. 1. The exact E-k for graphene was worked out in class in terms of k x, k y, and the hopping element t 0 = 2.7 ev. Write it down. Assume the onsite energy ε 0 = 0. [5 points] E = -t 0 [1 + 4 cos (k y b) cos (k x a) + 4 cos 2 (k y b)] 2. Write a numerical code (e.g. in Matlab) that sets up an energy grid (in other words, the energy axis is now broken into `bins' at the grid spacing). Also set up a 2-D grid over the allowed kx; ky values over the 2-D graphene Brillouin zone (also worked out in class). The size of the zone and the allowed k values depends on the area of the sheet, in other words, the W nd L dimensions described in Problem 1. Now, run two loops over the allowed kx; ky values, and keep track of which energy bin each E(kx; ky) falls into (maintain a counter for each bin). If you now plot a histogram plotting the bin counts vs the corresponding bin center energies, you will get your numerical density of states plotted vs energy. The _ner your grid the smoother your curve will be (remember that density of states depends on size, and thus number of k-points). [30 points]
(c) Compare the DOS expressions from the previous problem and this problem, assuming the same dimensions W and L. Remember that your allowed kx; ky values in the previous problem (and thus the DOS) should depend on W and L. For low energy, the two graphs in problems 1 and 2 should coincide [5 points].