So now we have learned what are band structures, and we have learned how we can construct a graphene
lattice, and now we want to have a look at how this band structure, which was basically just a one
dimensional example of nearly free electrons.
How this band structure changes when we consider graphene.
So in order to describe this band structure and to calculate it, we have to in principle, we have
to solve the shooting equation for an enormous number of electrons that are in this crystal.
This is not possible.
Even the smartest people cannot do it because it just takes way too much time to solve it, and it's
impossible for the fastest computer to do so.
Physicists have developed several methods how we can simplify the problem and how we can solve it.
So one of these methods is density functional theory, which is a bit more difficult than what we will
be doing here.
So I decided to pick what I think is the simplest, but also the nicest approach for solving this problem.
And the cool thing is that I think it's even possible to solve it without knowing how the method really
works and just accepting some initial thoughts and then thinking about how the latter's works and how
the neighbors interact with each other.
So the thing is, what we were doing in tight binding is we are looking basically at all of these atoms
and say that the electrons can only be confined very closely to these atoms.
And then, of course, they can jump from one atom to the other.
So the electrons are always tightly bound to the atoms.
And the only thing that we have to describe is the directions along which the electron can hop.
And this is what we're going to do here.
So what we're going to do is we have to define some so-called Hamilton matrix.
So let me write this down, Hamilton matrix, and it will be a matrix.
And the eigenvalues of this matrix will be the energies, and they will directly give us the band structure.
So we just have to come up with the Hamilton matrix and then calculate the eigenvectors, the eigenvalues,
which is also a nice exercise and something new that we will learn and then we can already have a look
at the result.
So the Hamilton matrix, I would call him and it will be a matrix, of course.
So I define it as an array, and it turns out that this matrix is a two by two matrix in our case.
And the reason is that we have two basis atoms.
So if you would have a different type of letters where we have three bases atoms, then this would be
a three by three matrix.
So since we have this periodicity, we can just look at one of such unit cells where we have two of
these atoms blue and red.
And that is sufficient to just describe the behaviour of the electrons in this unit cell.
And basically what we have to write here is so let me write it down like this first.
So the first entry will be from blue to blue.
Second entry will be from blue to red.
Then we will have from red to blue and from red to tourettes.
And this is all that we have to fill in.
And if you look carefully, then you will see that if you if we just consider nearest neighbors and
just the closest path an electron can hop to, we look at the red atom.
Then the electron can only hope to one of these three neighboring blue atoms.
So the hopping from rat to rat and also from blue to blue is zero because there is no closest path to
these atoms.
So our Hamiltonian just got way simpler than we initially thought because we only have these two elements
and these will be the hopping paths from red to blue.
So here we have three possibilities.
And from blue to red, where you also have three possibilities.
And the way this works and the way this is implemented is in terms of exponential functions.
So I thought a bit about if I should really derive this for you and explain this to you, but I think
this would really be too much and would lead too far.
So I hope that you can just accept that these terms in the Hamilton Matrix will be these exponential
functions and they will be the integer units.
So imagine every integer imaginary unit I or in Python, we write one j times the dot product of the
K vector.
So basically K x komaki y with D Delta our position.
So the basically the vector connecting these two atoms.
And now we really have to write, what are these payoffs?
And the first path would be from blue to red.
And I first want to consider this path where it goes from here to here.
So it would be zero comma, a zero.
Then we have another term because we do not only have two hopping, two here, but also two here and
two here.
And this will of course, be the same form.
So let me add to these three terms up, and now let me change and correct what I have written down here,
because these things are, of course, different.
So we just have to fix this one here and have to fix this one.
And one of these paths will be along this direction, which will be on let me think it will be in the
right direction minus a zero half.
And then we have another one of these square with three of a two is along the X direction.
So this again, something if you really want to figure it out, then post a video and have a careful
look at the figure and then think about what are the vectors to the nearest neighbors.
It may take a bit, but I think it's not that difficult to do.
So we write a zero times and P Square Root three divided by two.
And the Y coordinate change is minus A0 over two.
And for the other vector, it's the same along the way direction and then the X direction.
It's just a different sign.
So we have now our three terms and the vectors are that connect to blue and red are zero A1.
Three square root, three over two times a one and minus a one of a two and then here basically the
same thing, but just with a different sign for the exchange.
This would be this, this and that.
Now, if we look at the hopping from red to blue, then we will see we have very similar hopping, but
they are, of course, just in the opposite direction.
So we have, for example, zero and minus zero.
So I would just copy this and then just change the sign of all the hopping paths.
So I've copied this, and now I just have to change here to sign and here and here and also here and
here.
OK, so this would be the Hamilton matrix for the key vector, which we have to find to be K, X and
Y.
So of course, what we must do now is we must create such a plot where we have on the x axis the key
vector, which in our case will have two components.
So we must actually make a three d plot where we have at the X and the Y axis, the K X and the K Y
values and then A the z axis.
We have the corresponding energy.
So we basically must loop over all the cakes and all the K y values and then calculate the eigenvalues
of the Hamiltonian, stored them in some memory or list and then make the 3D plots.
So this is what we're going to do next.
So I start with paid K X list, which is, as always, a little space function.
And here I decided to go from minus PI.
So of course, you know, already the solution.
So I know what's the proper choice for the boundaries.
But if you're just starting, you could.
You could have also just started with going from minus one to one, and then you would have realized,
Oh, I cannot see everything.
I have to make the boundaries a bit larger.
And yeah, if you do mathematics, you can show that these are the appropriate boundaries.
And for the number of K points are two key points because we will use this later as well.
And we will define key points to be maybe let's just use 50 for the beginning or 51 and the why list.
For the moment at least, we will take the same as the K X list.
All right.
Yeah.
So of course, now I get an error because here I have written K and K-Y, which are not defined yet,
but we will fix this in a second because we will right now for K X in cakes list.
So we loop over all the values in the list.
And we do, of course, the same for K-Y.
So I could just copy K Y K Y list.
We define the Hamiltonian.
And now we must calculate the eigenvalues.
So I write here Energy's R.D. eigenvalues, or you could also say the vice versa, the eigenvalues are
the energies.
So we will write.
A first rate to and I will explain to you and p dot linear algebra dot igen values of a permission matrix.
So this is just a detail, I think not so important here.
The fact is that this this matrix always fulfills some mathematical property.
It is a her mission matrix and therefore we can here, right?
It could call a routine to calculate the eigenvalues for a her mission matrix, which makes the calculation
faster.
So this would give us 90 eigenvalue, and of course, we have to store them somewhere.
So I will write and I will create an empty list energy list,
and I will add these values here to the list.
So energy list dot append and then we store these and you see, when I run, no, there is no error.
So, yeah, let's see if it worked.
Let's have a look at energy list.
And it gives us a list of arrays, which is a bit odd, but we can fix this later on.
But the important thing is that we have now many arrays and all of them have two values corresponding
to the two eigenvalues of this matrix.
So I think this worked pretty well.
So what we can do now is we can basically, first of all, turn this into an hey.
We could have also defined that here already as an array, but then we would have to use a different
syntax here.
So not really a big deal.
We just write and pray and then we can update our energy list.
And also, I will create a new K, X and K list.
Which is an empty dot, the mesh grid out of the old K, X and K-Y lists.
So you will see in a second what this does.
Maybe you can imagine already.
So when I write here tax list before I run this command, then I see that this is just a list of all
the values.
Basically, these 51 points.
But if I now run this command first and then call K X list, then you see it's a very large raise,
even that large that it doesn't plot here.
So we have fifty one points here, fifty one points here and fifty one of these lists in total.
So it is really a meshed grid that we can now use for our plotting.
So one thing that I want to or that they have to do before is I have to further fix the shape of the
energy list.
So this is because it doesn't have the correct syntax yet.
And first, when I when I proposed this notebook, I tried, of course, just with this energy list
and I found that it didn't work because it has to be wrong for shape.
So this is something that's sometimes a bit annoying.
I find in Python that you have to reshape these areas just to make sure the syntax is correct.
But yeah, it is what it is.
So what we have to do is we have to write and reshape of energy list.
Then we have to define how we want to reshape it.
And basically, I leaf the data are the same, but they just change the ways the brackets are set and
the correct way to do it is like this from a to.
So now have a look.
This is our old energy list and this is our new one.
So now the shape of the array fits exactly the shape of our attacks and Qi wireless that we have updated.
So it looks correct so we can override the old energy list.
So by the way, now it's probably a good idea since we have overwritten some of these variables to just
run all three of these cells once more so that we make sure that everything runs properly and is updated.
And now we can finally go to the plot.
So we need a three plot.
So has always been just first ride projection, equal 3D.
And we give it a name lot, not 3D.
And now we can go a hat basically and just plots three dots.
And here I want to show you a surface plot.
So I tested several types of plots before, but I find two surface plots the nicest here.
So let's use plot underscores surface.
You can, of course, experiment here and try different options and look at the plot in different ways.
But just for this cause, what I will show you here is the surface plot.
So we need a list.
OK?
Why list?
And then the energy list?
And I think maybe this should work already, let's check it does not work because the the argument must
be two dimensional, and I think the problem here is that we have to eigenvalues.
So we are trying to plot two values for every kxan k y, which is something that cannot so easily be
done.
So we must extract.
You're only the first eigenvalue.
And the correct syntax to do this is take all the values in the first level, the second level and then
the third level, which is take the first value.
Now you can see this is our band.
So when I want to add the second band as well, I can write like this.
Now we have two bands and it looks correct, so I know the band structure of graphene, so it looks
correct already, maybe a bit ugly, but looks good.
Now what we can do is, or what we should do also is to add some labels, of course, club 3D.
So you should always add labels, especially if you're going to show the figures to someone else.
So we can right here.
Okay?
X is actually in units of one over a year.
Then we have my label like this.
And the Z label will be the energy.
So we did not really specify the unit for the energy, and this is also a bit difficult because I would
have to get the correct value from the literature.
So I would say we just keep it as it is and say energy in some arbitrary units.
OK, so now we have these descriptions here, and what we can also do is we can change the color.
For example, I mean, this looks already quite good, but we could use a different color, for example,
a color map.
And let's try Klimek winter.
Sorry, the syntax was bit off here.
So we are like this.
And so you see, the lower band has now a different color and the upper band, we can also change to
bottom.
So now the color looks a bit different.
So I don't know if it looks nicer, but at least it allows us now to tell a bit better the actual value
here.
Because you see the higher devalued, the brighter the color gets.
And so it is a bit easier now to understand what's going on here.
Also, we can change the view because it's not really possible to look inside here.
So that's a bit unfortunate, but we can fix this by writing for 3D view in it.
And then you have two numbers which basically correspond to two angles in space, and I have tested
before that.
This one looks quite nice because now you can really see, Oh, there is a gap here.
OK, nice.
We didn't see this before.
So now let me just add some more options.
You will see in a second what these do.
Of course, they are totally optional.
You can also play with them and try different things.
But I tried before, and I find the plot looks quite good if we use these options here.
So in a second, you will see what they do.
Of course, we have to apply them to both of these plots.
And now you see it.
We will have a closer look at the figure in a second.
But before we do this, let me increase also the number of key points here.
So that's the whole plot looks more smoothly.
So here you have to be careful, of course, because the higher the number you take, the more memory
it will take and also the longer it will take to do the calculation.
So especially if your computer is a bit weak, please don't go too high with the number here.
Otherwise it will crash.
And yeah, I take 301.
So you see, it takes already a few seconds.
Now it's finished to calculate.
And now, of course, we have to rerun everything.
And also the plot takes no, a few seconds.
But now we see what's going on here.
I think now it looks really nice because we have this transparent band structure where we have the line
width of the grid, which is really narrow.
And yeah, we can really see what is going on here.
Also, the last thing that I want to show you here is that we can export this so we can write Pulte
safe, think as we did before and we give it a name.
All right.
Band structure, graphene dots, PMG.
And if I run this, the picture will be very blurry, even more blurry than this one here.
So it's a good idea to increase the resolution.
And for this, you can use the DPI option Typekit 300 and you have to rerun wait a few seconds.
And once it's finished, you will find the file and structure.
Dot underscore graphene dot PMG in the directory where this notebook is saved.
So I will be back in a second.
So by the way, I just noticed that I had a small typo in the name of the file, which I have just corrected.
No, it's really band structure on the school, graphene, the peg.
And this is what we get as a result.
And I think it looks really cool.
And you can see now how different values for the cave vector relate to the energy.
And so the discussion is really exactly the same as before for the one dimensional case we have now
the relation, how is the energy of the electrons related to the momentum?
Or you could also say to the velocity of the electrons, but the momentum is better to say.
It's more correct, actually.
So if the electron is moving, say along the the X direction, then it will have a finite K X value
and then you can see how the energy changes.
And I think it's pretty interesting because if the momentum of the electron is small, then it will
be somewhere close to zero in the momentum space.
And you see close to zero, you have this typical minimum shape here, and this is actually very similar
to the free electron parabola.
So it will depend linearly on the connector.
So it means for small momentum, the electron will behave as it would be freely.
So like free electrons, but when it has a larger momentum and then you see that there can be quite
strong modifications here.
And especially interesting are these points here with the bands cross in just a single point, and this
is something very unique and very special about graphene.
And I will discuss this and we will explore this a bit more in detail in the next lecture.