Graphene

12
Electronic Structure Exploration of the Tight Binding model for Graphene and the Anderson Model By Marco Santia Introduction Electronic Band structures describe the allowed energy ranges that an electron may have in a solid. To demonstrate Band Structure and how exactly it can be provide useful information to Solid-State physics, I will show a few well known models. The Tight Binding model is a well known model used to calculate band structures using sets of superpositioned wave functions for isolated atoms at each site in a lattice. As its name suggests, its a quantum mechanical model describing the properties of tightly bound electrons. To formulate the Tight Binding calculations, we must exploit the method of LCAO (Linear Combination of Atomic Orbitals) which will give us approximate solutions to the time-independent Schrodinger equations. However, the periodicity of the lattice tells us that the wave function can only change by a phase factor, therefore the LCAO approximation can be represented by the familiar Bloch wave. ψ(r + R )= e ik· R ψ(r ) (1) The Bloch wave function is essentially where all of tight binding comes from, this will be shown in the first example of tight binding: Graphene. We will also demonstrate the tight binding model in the Anderson Model. Graphene Graphene is a very interesting case of tight binding to study, this is due to its abstract shape. Graphene is actually a material which just recently has collected a lot of attention, as it has de- fied previously thought laws of thermodynamics. We will be demonstrating with a honeycomb hexagonal shaped lattice of carbon atoms which means there will be two atoms per unit cell. This of course changes the approximation made from LCAO and thus the Bloch wave formulation. Generalized for two atoms per unit cell, Graphene’s wave function can be modeled as follows: Ψ k I ( ~ r)= c A I ( ~ k)Ψ Ak I ( ~ r)+ c B I ( ~ k)Ψ Bk I ( ~ r) = 1 N j e i ~ k· ~ R j [c A I ( ~ k)φ( ~ r - ~ R A j )+ c B I ( ~ k)φ( ~ r - ~ R B j )], (2) 1

Transcript of Graphene

Page 1: Graphene

Electronic StructureExploration of the Tight Binding model for Graphene and the Anderson Model

By Marco Santia

Introduction

Electronic Band structures describe the allowed energy ranges that an electron may have in a

solid. To demonstrate Band Structure and how exactly it can be provide useful information to

Solid-State physics, I will show a few well known models. The Tight Binding model is a well

known model used to calculate band structures using sets of superpositioned wave functions for

isolated atoms at each site in a lattice. As its name suggests, its a quantum mechanical model

describing the properties of tightly bound electrons. To formulate the Tight Binding calculations,

we must exploit the method of LCAO (Linear Combination of Atomic Orbitals) which will give us

approximate solutions to the time-independent Schrodinger equations. However, the periodicity

of the lattice tells us that the wave function can only change by a phase factor, therefore the LCAO

approximation can be represented by the familiar Bloch wave.

ψ(r + R`) = eik·R`ψ(r) (1)

The Bloch wave function is essentially where all of tight binding comes from, this will be shown

in the first example of tight binding: Graphene. We will also demonstrate the tight binding model

in the Anderson Model.

Graphene

Graphene is a very interesting case of tight binding to study, this is due to its abstract shape.

Graphene is actually a material which just recently has collected a lot of attention, as it has de-

fied previously thought laws of thermodynamics. We will be demonstrating with a honeycomb

hexagonal shaped lattice of carbon atoms which means there will be two atoms per unit cell. This

of course changes the approximation made from LCAO and thus the Bloch wave formulation.

Generalized for two atoms per unit cell, Graphene’s wave function can be modeled as follows:

ΨkI(~r) = cA

I (~k)ΨAkI (~r) + cB

I (~k)ΨBkI (~r)

=1√N

∑j

ei~k·~Rj [cAI (~k)φ(~r− ~RA

j ) + cBI (~k)φ(~r− ~RB

j )], (2)

1

Page 2: Graphene

here N is the number of elementary cells, and the functions φ(~r) are the wave-functions of the pz

orbitals of the carbon atoms. Pz orbitals stay seperated from the rest of the orbitals in this struc-

ture and are responsible for the π and π∗ bands which will be shown in the band structure plots.

The remaining orbitals will form a hybridization sp2 responsible for the σ-bonds3. These are the

bonds that keep nearest neighbors together in the lattice. Now to calculate band structure, we of

course wish to find all the possible energies. For this we must derive a dispersion relation. To do

so we must solve for a hamiltonian using the bloch wave functions shown previously. The Hamil-

tonian for this will already be in k-space due to the properties of the Bloch wave. It has already

accounted for the fourier transformation of the wave function. This means the construction of the

Hamiltonian (all hopping parameters t will be set to 1) will be all that is needed, this and of course

to diagonalize the matrix and find the dispersion relations based on the energy eigenvalues of the

Hamiltonian. This is found to be1:

E(k) = ±γ{

1 + 4 cos (√

3kxa2 ) cos ( kya

2 ) + 4 cos2 (kya2 )

} 12

(3)

Where γ represents a parameter of the system, in my calculations I used a γ value of -2.7 eV.

Using this dispersion relation, we can now plot the band structure using mathematica and analyze

the physical relevance. This was done and the plots found are shown in FIG. 1. The lattice constant

a was 2.461 A however, for simplicity, I generated values of aky and akx individually over the range

[-4,4].

Analyzing this band structure, we see the honeycomb lattice as expected and we see the two

bands. The upper band being the conduction band while the lower band is the valence band. The

valence band consists of the energies for electrons that are bound to their cell while the conduction

electrons can roam throughout the lattice structure. Notice the six points in which the bands

are closest. These points are called dirac points, these points are when the electrons behave like

relativistic particles described by the Dirac equation. Density of States was now calculated and

graphed as well. This is an important parameter to graph as physical data is derived from the

density of states for a structure. This can be seen on figure 2.

The density of states here is very abstract, we notice two singularities, formally known as Van

Hove signularities. The wavevectors at which Van Hove singularities occur are often referred to

as critical points of the Brillouin zone.

2

Page 3: Graphene

FIG. 1: Energy Bands for Graphene dispersion with γ set to be 1 eV for simplicity. The upper band repre-sents the π∗ and the lower π. These determine the conduction and valence bands of the electrons in thelattice2. Notice the six dirac points forming a hexagonal like shape just as the carbon structure for grapheneis anticipated to.

FIG. 2: Density of States plotted over energy. Multiple singularities are found, this is a large area of studyin Solid-State Physics known as Van Hove singularities.

Anderson Model

We now evaluate a more simplistic case of Tight Binding. The case of a 2 dimensional square

lattice where only nearest neighbor effects are needed. This is modeled by what is known as the

Anderson Model4

H = t ∑i,j

c†i cj + ∑

iεini

3

Page 4: Graphene

Where εi the ramdomly generate site energy. Previously, we never considered a possible disorder

energy at the site of the electron. Now we generate a random energy on the scale [-W/2,W/2]

where W is equal to the disorder width. We will set this in the Fortran90 program I have written

and alter it as needed for data analysis. The c†i cj represent the creation and annhilation operators,

just as in the quantum harmonic oscillator, these are ladder operators. Ci represents annhilation,

for example say we have a state |1〉, when the annhilation operator acts on such a state, it becomes

a vacuum state. The same concept applies on a vacuum states in reverse when applying the

creation operator. The number operator is represented by ni and it is the product of the creation

and annhilation operators. Its value is one for our case. For this 2-D example, we will need to

consider periodic boundary conditions. In its simplest form we can state the hamiltonian to be as

follows:

Hij = 〈ψi | H | ψj〉 (5)

The 3x3 lattice example is shown below:

εi 1 0 1 0 0 1 0 1

1 εi 1 0 1 0 0 1 0

0 1 εi 1 0 1 0 0 1

1 0 1 εi 1 0 1 0 0

0 1 0 1 εi 1 0 1 0

0 0 1 0 1 εi 1 0 1

1 0 0 1 0 1 εi 1 0

0 1 0 0 1 0 1 εi 1

1 0 1 0 0 1 0 1 εi

With this we can generate an entire matrix and then simply add the random energies along the

diagonal. After diagonalization of this matrix, the energy eigenvalues will be output. The hamil-

tonian will have a 1 at every ij index that represents a nearest neighbor with the given periodic

4

Page 5: Graphene

FIG. 3: Density of states for Anderson model of a 40x40 lattice for different W compared with a histogramplotted in mathematica.

conditions. This was all done in fortran90, refer to the subroutine ”neighbors” on the attached

code for the algorithm used. For efficiency, it was done without the use of any logical operators.

The Hamiltonian was formulated and for a 3x3 lattice for example would be as shown above. We

can see this matrix is symmetric, and in the case of our calculation, it will be sparse as well. Using

a freely distributed algorithm from LAPACK (linear algebra library for fortran 77/90). This library

contained subroutines that were able to output the eigenvalues and the eigenvectors of the input

matrix. This was specifically designed for sparse, symmetric matrices which was the case for our

hamiltonian. After finding the energy eigenvalues, we now find the density of states for multiple

disorder widths W. This is shown below4.

We see a high level of consistency between the fortran code and the mathematica. The

histogram produced was only for the original disorder width of W = .5. The mathematica

and fortran codes are both included for reference. The last quantity calculated was the in-

verse partiticipation ratio. This is a ratio given by the sum of the squares of all the wave

functions squared over the sum of the wave functions to the fourth. Thus the inverse participa-

tion ratio is related to the localization length4. It is shown in the figure on the top of the next page.

Conclusion

Throughout all the calculations there was a high level of consistensy between fortran and

mathematica. The band structures physical properties all corresponded to the ouput accurately.

5

Page 6: Graphene

FIG. 4: Inverse Participation Ratio averaged over all of the eigenvectors as a function of the disorder widthW. The higher the disorder width, the lower the IPR, meaning the higher the disorder, the smaller the lengthof the localization is. Less will be localized as W increases.

To further investigate this subject one could read more into the quantum hall effect and how it

effects tight binding, Landau levels and the IPR and how exactly it effects the localization.

1 Pierre Delhas. Graphite and precursors. CRC Press, USA, 2000.2 Charles Kittel. Introduction to Solid-State Physics. Wiley-Interscience, USA, 2004.3 J. Maultzsch S. Reich and C. Thomsen. Tight-binding description of graphene. PHYSICAL REVIEW B, 6,

2002.4 D Weaire and C Hodges. Anderson localisation and the recursion method. J. Phys. C: Solid State Phys,

11(2), 1978.

6

Page 7: Graphene

File: /home/marco/Desktop/project3/Anderson/bind.f90 Page 1 of 3

!Marco Santia!PHY480 Project 3 -- Tight Binding Model program tightbinding

implicit noneinteger, allocatable, dimension(:,:) :: neighbors1, latticereal*8, allocatable, dimension(:,:) :: hamiltonian, eigenvectors, tempinteger, allocatable, dimension(:) ::latticerow, latticecolreal*8, allocatable, dimension(:) :: eigenvalues, ivpainteger n, L, x, j,m,i, n1(4),rreal*8 ran, W, IPR, IPRaopen(unit=37, status = 'replace', file="eigenvalues.dat")open(unit=40, status = 'replace', file="hamiltonian.csv")open(unit=23, file="DOS2.dat")open(unit=30, file="IVP1.dat")open(unit=34, file="DOSW.dat")call initialize()call random()do r=1,10

call setup()call diasym(temp,eigenvalues,L) !finds the eigenvalues of the matrixcall DOS()call export()call IVP()write(30,*) W, IPRaW=W+.5

end docontainssubroutine setup()

hamiltonian(:,:) = 0.0do i=1, L

do j=1, 4hamiltonian(i, neighbors1(i,j)) = 1.0

end docall random_number(ran)hamiltonian(i,i) = (ran*W)-(W/2)

end dotemp(:,:) = hamiltonian(:,:)

end subroutine setup subroutine initialize()

print*, "Size of Lattice: "read*, nL = n**2W = .5d0allocate(lattice(n,n))allocate(latticerow(L))allocate(latticecol(L))allocate(ivpa(L))allocate(eigenvalues(L))allocate(neighbors1(L,4))allocate(hamiltonian(L,L))allocate(temp(L,L))allocate(eigenvectors(L,L))x = 1do j=1, n

do m=1, nlattice(j,m) = xlatticecol(x) = mlatticerow(x) = jx = x + 1

end doend docall neighbors()!call export()

end subroutine initialize

Page 8: Graphene

File: /home/marco/Desktop/project3/Anderson/bind.f90 Page 2 of 3

subroutine export()do i=1, (L)

!do j=1,Lwrite(37,*) eigenvalues(i)write(40,*) int(hamiltonian(i,:)),','

!end do!write(37,*)

end doend subroutine export subroutine neighbors() !finds nearest neighbors for each point with the provided boundary conditions

integer nleft,nright,nup,ndown, splice(n), col, rown1(:) = 0do i=1, (L)

n1(1)=MODULO(i,L) + 1 !nrightn1(2)=(i+((-1*(MODULO(1,i)-1))*(L)))-1 !nleftcol = latticecol(i)row = latticerow(i)splice = lattice(:,col)n1(3) = lattice((MODULO(row,n) + 1),col) !ndownn1(4) = lattice(((row+((-1*(MODULO(1,row)-1))*(n)))-1),col) !nupneighbors1(i,:) = n1(:)

end doend subroutine neighbors subroutine DOS()

integer :: bins=20integer t, frequency(21)real*8 binwidth, emin, emax, e, avgfemax = eigenvalues(L)emin = eigenvalues(1)frequency(:) = 0binwidth = abs((emax-emin)/Dfloat(bins))do i=1, L

e = eigenvalues(i) + abs(emin)t = nint((e/(emax+abs(emin)))*Dfloat(bins)) + 1frequency(t) = frequency(t) + 1

end dodo i=1, (bins+1)

write(23,*) ((Dfloat(i)*binwidth)-binwidth-abs(emin)), frequency(i)end doavgf = sum(frequency)/21write(34,*) w, avgf

end subroutine DOS subroutine IVP()

real*8 sum1,sum2do j=1,L

sum1 = 0.d0sum2 = 0.d0do i=1,L

sum1 = sum1 + temp(j,i)**2sum2 = sum2 + temp(j,i)**4

end dosum1 = sum1**2IPR = sum1/(Dfloat(L)*sum2)ivpa(j) = IPR

end doIPRa = sum(ivpa)/Dfloat(L)

end subroutine IVPend program subroutine diasym(a,eig,n)

implicit noneinteger n,l,infreal*8, dimension(n,n) :: areal*8 eig(n),work(n*(3+n/2))

Page 9: Graphene

File: /home/marco/Desktop/project3/Anderson/bind.f90 Page 3 of 3

l=n*(3+n/2)call dsyev('V','U',n,a,n,eig,work,l,inf) !call to LAPACK external linear algebra library, returns

sorted eigenvaluesend subroutine diasym

Page 10: Graphene

File: /home/marco/Desktop/project3/Graphene/DOS.f90 Page 1 of 1

program DOSimplicit nonereal*8, dimension(50000001) :: energies, kinteger i,j,lreal*8 akx,aky,a,piopen(unit=50, file="DOSgraph.dat")l=1a = .002461pi = 3.14159265d0akx = -2500do i=1,5000

aky = -2500do j=1,5000energies(l) = sqrt(1+4.d0*cos(sqrt(3.d0)*(aky)*.5)*cos((akx)*.5)+ 4.d0*cos((akx)*.5)**2)energies(l+1) = -sqrt(1+4.d0*cos(sqrt(3.d0)*(aky)*.5)*cos((akx)*.5)+ 4.d0*cos((akx)*.5)

**2)aky = aky + 1l = l+2

end doakx = akx + 1

end docall Density()

containssubroutine Density()

integer :: bins=1000integer t, frequency(2001)real*8 binwidth, emin, emax, eemax = MAXVAL(energies)emin = MINVAL(energies)frequency(:) = 0binwidth = abs((emax-emin)/Dfloat(bins))do i=1, L

e = energies(i) + abs(emin)t = nint((e/(emax+abs(emin)))*Dfloat(bins)) + 1frequency(t) = frequency(t) + 1

end dodo i=1, (bins+1)

write(50,*) ((Dfloat(i)*binwidth)-binwidth-abs(emin)), frequency(i)end do

end subroutine Density end program DOS

Page 11: Graphene

vbands = J-SqrtB1 + 4 * CosB 3 * aky * .5F * Cos@akx * .5D + 4 * Cos@akx * .5D^2FN;

cbands = JSqrtB1 + 4 * CosB 3 * aky * .5F * Cos@akx * .5D + 4 * Cos@akx * .5D^2FN;

Plot3D@8cbands, vbands<, 8akx, -5, 5<, 8aky, -5, 5<, PlotPoints ® 50, Mesh ® NoneD

Page 12: Graphene

2 Energy Dispersion.nb