 Okay, can everybody hear me? Okay, so, hi, my name is Sinisha. I'm from the University of California in Riverside and I'm going to tell you about this package. So this is a general purpose type binding code. It's meant to be used mostly to deal with toy type binding models. And since many of you are, some of you might not be familiar with object-oriented programming. Let me just spend a minute on this. So this is a little code. X is three, Y is seven, and Z is X plus Y, and Z. So this X is what I would call a normal variable. It only knows about a single number. So this X knows that it's three and the Z knows it's 10. It doesn't know anything else about itself. And then there's this thing called an object which has more information. So this is a layer of abstraction. So for example, this X is supposed to be a house. It presents a house somehow on the computer. And this house has certain information that's stored inside. So for example, this house happens to be red and has three rooms. And then if you ever need to pull up any information about X, you say X dot color and you can print it. And you have these other things that are called methods. But so these are kind of actions you can do on object X. So you take object X and change it in some way, for example, or do something. For example, I can add one room and now my X dot's room has four rooms, depending on how this function was coded. All right, so that's object-oriented programming. And so let me tell you about the object that is used to represent the divining approximation. So this is a little code which specifies a simple divining model. And this X over here is now not just a number, but this X contains all of the information you need about this divining model. And so now the question is, which information do you have to store in this X? And so the first piece of information you need. Oh, by the way, are there any questions at any time just raise your hand or type something in chat and then I'm sure somebody can tell me if there's a question. So I'm trying to kind of rather go slow than fast. And then at the end, you know, I have a bunch of examples that you can either run on your own at home or do it at the end of the session. So I'd rather be stopped and have to explain something in more detail. Okay, so the first piece of information you have to tell this type divining model is the dimensionality of the space you're working in. So for example, you might work in two dimensions and then your type divining model here, you have to specify that number two. And that means that you work in a plane. Next thing you have to do is you have to specify these vectors. Maybe lattice vectors was not the most convenient way to call this, but these are vectors. The first vector has the X component two and the Y component zero. And the second vector has the X component zero and Y component one point five. And they're supposed to be listed here. So this is the first vector and this is the second. Okay, then the third piece of information is you have to say where are your orbitals? So our wave function will kind of be chopped up into little pieces. And the piece that is sitting over here, maybe it's like a DXY orbital and some atom. I will represent this with this red blob over here. And the location of that orbital is 20% along the first vector and 10% on the second vector. So I'm using these fractional and reduced crystal coordinates. There are many names. So these are dimensionless numbers. And in Python, the first orbital, it has index zero, which might be confusing. And then the second orbital is 70% located along the first vector and 80% on the second vector. And here it's not in blue. And the second orbital has index one. Okay, and then the fourth piece of information you need is the periodicity. So you have to say, we will specify everything in the unit cell, but then you have to say whether your model is periodic or not. So if you specify the periodicity to be two, that effectively means that whenever you think of it something in the unit cell, we're effectively doing that in all of the unit cells. So if the periodicity is two, then this little unit cell is infinitely repeated in all directions. Okay, and then another way to specify this same thing is to say that periodic directions are zero and one, which means that the first lattice vector and the second vector are both periodic. And this gives you the same thing. Okay, but you can do this thing also. You can say that periodicity is one. So you have only one dimensional, only one dimension is infinite. And here I specified that the periodic direction is zero. So this first lattice vector is periodic. And then if you do that, we have this little timeline model, which kind of stretches in one direction only. And then this, you might be wondering, what is the purpose of this perpendicular vector? So this vector is no longer a lattice vector. It's not used as a way to kind of repeat the system. This vector is only used to specify the coordinates of these orbitals in the vertical direction. That's why I put it here in gray. And then also have this convention for R vectors. So the home cell vectors, sorry, the home cell has coordinates zero, zero. That means, you know, this is my center of my origin of my coordinate system. The unit cell on the right has coordinate one, zero. Twice in the right is two, zero, and so on. So this R convention is also what we will be using. And okay, so here again is how you specify the periodicity along the zero vector, the horizontal one. And so this is if the periodicity is along the horizontal vector, you get this model. If the periodicity is along the, if you specify the periodicity is one, that means that the second vector, vertical one is periodic, and then your unit cell, then your system effectively looks like this. So it's been repeated along the vertical axis. And now these unit cells have indices zero, zero, zero, one, zero, two, zero, three. Okay, so up to now what we have is, this five lines specify this infinite model and specify the orbitals, the locations and the periodicities. Okay, so now we have to add information about the Hamiltonian, you know, our wave function is kind of composed of these little pieces and the red and blue which are repeating, but we have to have some kind of dynamics, right? So some kind of information about Hamiltonian for this system. And so the first thing you have to do is you have to specify the so-called on-site energy. So for example, this line over here, this line over here says that orbital with index one, so that's the blue one, has the on-site energy of 3.5 in some units. And so this means that if you place an electron in this blue orbital, which is maybe not some PZ orbital or something, and if that orbital is not coupled to anything else around it, so then the electron will stay there forever and the energy of that electron would be this 3.5 that you specify. Okay, and then once you specify the on-site orbital in the home cell to have 3.5 energy, then effectively you have specified that in all the unit cells as well, because we always assume period is the same. So with this one line, you can specify all of them at once. Okay, but then in a solid, you know, if you put the electron in one atom, it will not stay there forever. If this is like a perfectly localized state, it's something like a Vanier function. So in reality, this electron is going to, you know, over time spill into neighboring atoms. So for example, let's say that you somehow prepare experimentally the electron to be in the blue orbital. And let's say that the electron is 100% certain to be at this point in space at that time. And then let's say that after some short amount of time, the electron moves to the red orbital and it's only like 5% over there. Now, sorry, is there a question that I can answer? Or I heard something. Are there any other questions from the audience? No. Okay, so. It's possible a question online, but take it off. Okay, or we can do it now. But that's the second one. Yes, it's possible to set dimensionality to zero. So that's a good question. So here I had all possibilities except one. So I could have specified dimensionality to zero and then I would have only one orbital. So if I set here zero, then basically I only have a modally micro molecule of a carbon and oxygen or something, carbon and oxygen molecule or something. And there was another question. If the sides contain multi-orbital, how to define the on-site matrix there? Good question. Thank you. So this is how you specify on-site energy for orbital one. And then you can call this function, you know, next one and you can specify the on-site energy for orbital zero or any other orbital. So you just call it one after the other. That's how you specify a more on-site energies. Any other questions? Okay. Okay, so this is where we were. We start to somehow place the origin over here and kind of put it into the STM or something. And then you see what happens when the energy moves in time. And let's say that after some short time period it has 5% chance of being over here. So this number of 5%, you can parameterize with this Hoping matrix element. So this overlap between these two red and blue states with a Hamiltonian that can square is proportional to, that's going to tell you what's the probability of finding the electron nearby. And that's our, you know, so called Hoping integral. This is kind of a central quantity in the type binding model that you have seen probably every day of this summer school in various talks. Of course, you can have Hoping from any site I to J. It doesn't have to be easier to one. And if your system is periodic, then your Hopings might happen between potential between different unit cells. So, you know, the orbital J maybe is not in the home cell but it's in some other unit cell R which might be like this one over here. Now if you use periodicity, then you know that this Hoping's kind of have to be translation invariant. So that means that you are allowed to fix one of these vectors to be zero in the home cell. So it's enough to specify only Hopings from I the home cell to any J in the any other cell. So, you know, how do we kind of parameterize these probabilities for electron to move around? So you have to specify these Hoping matrix elements. And, you know, I will schematically denote this with this green line over here. So this piece of code will say that I have a Hoping, you know, I'm specifying that such a matrix element is actually non-zero so that electron can jump from, you know, this orbital to that orbital in this cell. So that's this line over here is shown here with this green arrow over there. And so remember this convention because there will be a quiz. So the bra state is denoted with this index, the first index that appears and the kid state in the overlap is denoted both with this J index of the orbital and the R index because R has to tell you which cell you are. Because remember, again, the only need Hopings from I zero to J R. Any questions? There was a follow up question on your previous one. No, I'm saying if site one conveying the orbital. So if the site contains multiple orbitals, then you have to add two orbitals on the same location and then they just have different labels. So the zero or one is just one way function. If you have a V state, then you have to put five orbitals at the same location. And then the index is zero, one, two, three, four. It's quite the best. Come here? No, no, I mean, it's a five, I mean, this is an energy. So you have to multiply this time divided by H bar and then that gives you the part of the way function that will be on the naming set. So, you know, you just take P to the IHT and you write it as one plus IHT. And then if you act with that on your initial state, then you see that this will dictate the probability for the other to jump over in a small time interval and because you have to expand. Okay, so the red thing defines bra and the blue thing defines the ket, okay? But then because again, because you have periodicity, you know, this one line specifies all the hopings at once. So you don't have to do them repeatedly. And then also because your Hamiltonian is her mission, then as soon as you have a jumping from, hoping from I zero to JR, actually it's from JR to whatever. Okay, so as soon as you have the matrix element between I zero and JR, that automatically specifies that matrix element between J and minus R is the same and I zero is the same up to a complex conjugate. So specifying hoping in one direction gives you the whole thing in the other direction, even if you have a growth time reversal or whatever, as long as you deal with a normal Hamiltonian, then that's what we get. There's no case. Okay, so basically up to now what we have is that these now eight lines of code specify, you know, these on-site energies and the hopings that are listed over here. Any questions? Okay. Sure. So of course I don't have to write all these in I and J, so Python kind of makes it easy. You can just put zero, one and zero, zero. So again, the zero means the first orbital, second orbital that you're jumping from actually is one and zero, zero. And now there was a question, you know, how do you add more hopings? So then you just add one more line. So for example, if I have a hoping from zero to zero in the human cell shifts and by two, so that's from here to over here, then I can specify that as well. Of course, the state can be different. And then, you know, once again, once you specify that, you specify all the combinations as well. Okay, so what will happen now is because I'm trying to do this tutorial in such a way that things which are kind of annoying and if you have this type of animal, I covered up here and then, you know, you run the code and get no bugs and they don't make any plots. You can like, you know, look it up on our website or you can do it at the end of the session and I can, you know, assist you if needed. So I'll try to kind of quiz you on this thing. So first thing that has to happen is that you guys should either go on this website or use your phone to scan this QR code and which will take you to the same website. And then I'll ask you a question and you guys can answer. And this will be anonymous. So you're gonna have to put the username and it's actually kind of not active. Let me activate the question. So I'll show the question on the screen as well. So can you raise your hand if you have successfully? Okay, I'll have a little bit more. And if you're watching this on YouTube in like 15 years around, then this link will not work, but you'll still see the question. Somebody who can't connect? Okay, I'll read the question. You don't have to read the question. I'll read the question for everybody, but. Okay, good. Okay, so let's give this a try. So this is the first question. So the red circles over here are orbitals for some time finding model. And then the numbers inside circles represent indices of orbitals in number zero, one, two. And hope in terms of green arrows, as shown here. And for the following code shown over here, you'll have to focus on the gray part for now. But for the following code, which of the sketches, you know, A, B, C, D, or E corresponds to this code. Okay, I have like 19 people, 20, 21, 22. So please think about this for a moment. I just want to make sure that this interface works. Okay, you can expect to have 35 at the moment, a little bit more for everybody to kind of go again. Maybe we can show this again for a second. You have to scan the thing, 40. Okay, so 88% of you think C. So C is probably right. So as you see, is a... So C has a hopings between zero and one and two and zero, which is the same zero and two. So this is a molecule. This is the zero dimensional. So C is correct. Any questions? Yeah. So there's no need to specify what an insert... What do you mean by insert? Oh, by the way, I should have clarified. So just make sure this is the problem. So here have four options. Either the model is the thing in the dashed lines on its own or the thing in B on its own or C or D. So this is not like one big model. So it's either A, B, C or D. And this is a molecule. Oh, you're asking whether I have to specify zero, zero here? Yeah. So actually I think that if you put anything else except the zero, zero here, I think the code is correct. So in this case, very good question. So in this case, you do not have to specify R because we have written with a molecule. Okay. Any other questions? Okay. Kind of a different time. So let's try then the second one. So let me... Okay. So 44 of you and pretty much everybody got it right. Okay. Let's try the next one. I will activate the question. So you should now see on your phone or laptop a different question. So this is the second question. We have a one dimensional system where we have this orbital zero and the whole things are indicated. So this is a system that's periodic and incident. And so reminder again, you know, I have this EIJR. So I is in the home cell and JR is in the shared cell. So again, you know, don't worry about the great part for now. This just specifies where the orbitals are. So you have to figure out which code corresponds to this model. Do I specify 0 1 1 0, 0 0 1 0, 0 1 1 0, 1 2 1 0, and then, you know, so on. Or 0 0 1 0. Or none of the offered answers is correct. None of the other options. We can last time have 44. Now I have this one 30 a little bit more. Okay. So five. Okay, so please write the answers. So 36 people answered these, you know, 86% said B. So B is correct. So basically, you know, hoping from orbital zero to orbital zero in the neighboring cell. And that's all I have to say, right? I don't have to keep anything else. Is it clear? So let's try the next question. So you should see now a new question on your screen. So now we have a two dimensional model. And hoping is indicated. And you specify a B or not. So the question should now be on your device. Everybody's getting this right. That's good. Okay, so 30 people. A little distribution. Okay, 3526. Okay, so like 76% think B. So these correct. So basically, I'm hoping from zero to zero and sell the right from zero to zero and sell about. Do you want to kind of think about this, you know, think about like, what's the smallest? Sorry. Is there a question? Okay. Okay, so if you have a one to visualize this kind of think about the smallest human, not only the orbital, but also hope. And then think about how this thing would be somewhere. So, you know, if you take this thing and kind of copy base to the right, then no green areas like the previous ones, then if you continue going directions, then you get what we wanted. So evidence with even a double counting anything. So basically only, so the only so the first line specifies this whole thing horizontally and the second line is doing this whole thing vertically and that's all in here. Okay, so most of it is correct. So let's then the next question. This question. Yes. So what will happen if I try to set the case will give me an error or. Wait, in this case. Yes. Yes, so very good so. Thank you for the question. Thank you. So if you specify a case so we have 001, but that's duplicate as the third one, 00, 00 minus one. And in that case the code will say, you're trying to specify the same thing twice. And I'm stopping and I'm doing this. If you really want to do it, then you have to put some extra tag with a long scale name and then it will do it. So double counted. And then also if you ever specify hoping you can, if you specify again the same one, it will also, you know, if you do like 001, then you call that again 001, then it will also stop. But you can override that you can say like, just replace the one I had before with a new one or add them together. So, in general, if the code does something that sounds suspicious if you just stop. Yes, you can move it. Oh, if you want to make a long term mission. Yeah, yeah, so I didn't allow him this is because we want to kind of check for consistency is our matrix, you know, commission. It's not that easy. It's not that difficult to package. The entire package is one part of it. It will allow you to do it. You might fail some tests, but currently doesn't allow. Something else. Yeah, but then I want to plot it, you know, then I have to special team. Yeah, yeah, yeah, it doesn't mean that there's like some kind of GW, you know, it doesn't mean that it doesn't mean it's a closet, you know, scattered to other states. Again, I prefer to go forward with this and faster. So, you know, especially slides and go faster. So, let's try this question. So, so now I want to, I had that thing from before, but now I want to add those orange hoax exactly as drawn. So, what do I do, but add, you know, this line at that line this line in the first word same for or not correct. I wouldn't have split. Okay, 21 people so let's not give up the answer. Let's first everyone just thinks for themselves like what you think this is anonymous, you know, no grades or anything. And then we'll have to discuss, I'll let you guys discuss. Let's first everyone just answers for what they think. Okay, I have 35 people. Okay, good. So the distribution is that about about half of you think a and little bit less than half and think, think the so we have a split between so now what's going to happen is you find somebody next to a different answer and convince them they're wrong and you're right. So, you guys just take a or D. So, go around the room, meet people if you haven't met them before. If you're online, maybe break out session with my crash something. Maybe have some of the next week and talk to your friend to walk around and talk to people. Thank you. It's a very nice way to. Thank you. Thank you. Okay, there's a discussion you can go back to the same link and answer again. Are there just discussing. So, again, you can go to the same link and you can vote again for what's the right answer. And then you can select a few more of you to select your answers again. Okay, so now we have a 80% thing to be and 12% today. Somebody wants to tell me why do you guys with so why did we select the ARD somebody offered their thoughts on this and like how you can get the inclusion for your ARD or maybe be seen. My first thought about it, just like choose one cell and then make it to the right, but then we have the discussion that would imply that the next left, which supposed to also have the same position, which was apparently not true. So, maybe then the simplest would be a two by two cell. Before we go to the correct, but so basically your point is that basically, if this guy can jump to that guy, then by a visit that was implicit here, you should also jump over here. And then your suggestion was to make a supercell. Yeah, so you would make a two by two supercell. So you would have to add all the green ones. Actually, there's a different and then you would add this from here to here. Okay, good. Any questions about this. Okay, so it's not correct. Okay, good. So let's go to the next one. So I said, you know how to specify locations but it didn't maybe spend too much time on how exactly you know I said that, you know, these are fractional coordinates. It's not a thing that kind of causes hitting. So, So let's say we have some, you know, now I'm not talking about whole things I'm just talking about locations of orbitals. As I said for the orbitals are given in reduced or fractional or crystal, these are just same name different names for the same thing. So, for example, if I have 0.5, I mean, half of the first vector plus this much of the second vector, you know, one third or one zero. So, you know, the first two are supposed to specify location zero for the next two are supposed to give the location second orbital. And so in this case, these locations. What do you think, what should I specify for my orbitals. Yeah, but some people answering with a few more 3234. Okay, so 97% of you think a so it's correct. So basically, you know, 00 would be here and then one one is here. So if these numbers are the same, then you're on the diagonal and then one third and it's this guy and two thirds is this guy so that's why it's a. Okay. Now let's try this this thing. So, now you have to specify for the same thing so we first figure out what the orbitals are. Now we have to get the whole things between these orbitals. So this is of course, your thing. So, which ones of these that's correct. It should be a bit. So 21 of you have selected the answers I'll wait for a few more of you to select what you think is the correct answer in this case. Okay, so 13 so 76% of you think a moment about okay majority of you say okay then I will discuss detail but basically answer you go from zero to one in the same cell that's this guy. And then you go from one to zero and still a box, and then from one to zero to self the right. And then everything else is just going to be. 76% of you guys right so eight spring. Okay, so any questions about this before I. So what was the picture look like for the big. So, let's let's try so good from zero to one in the home cell so that's the same as this guy, right. Then I go from one to zero in the cell on the left, so that would be from one to zero in the cell on the left, and that's very wrong right so from one to zero to far hoping. Okay, so this is the key is like 95% of this package so when you say zero, like first indexes for the brah and hoping and then the this next and the R is for. Okay, so that's why this is wrong so I don't go from one to zero or one to zero on the left. I go from one to zero on the one on the bottom right so go from one to zero here or here. Okay, any other questions. Okay, so, okay, so now that we have a way to specify information about the opponent and that's kind of the hardest part about this package about doing any kind of type binding population kind of to make sure that you specify those correctly. There are a lot of these little teeny tiny signs and three factors that worry about and face factors, and that's kind of the main thing that code track help you with. And a lot of the rest is kind of your own, but there are some features that are also useful so for example, the most obvious one is. So you know, you have all this information and these objects have actions, so you can do something with them. Like which actions can you do on these objects. The most obvious one is to find the eigenfunctions. So, these are, you know, the block form so basically my solution and I'm looking for some way function is going to be some eight to the some number times the red orbital. You know, this, these orbitals are my basis. And then I can add. And so my way function is some some number times the red guy plus a number and blue guy. And then if I'm looking for solutions in a special form, and not all solutions need to have that form but there is a complete basis with that form. And then the number in front of this orbital has to be eight to the times some face factor, which is parameterized with one number which is case okay dimensionless. And then for the blue guy over here, it's the same thing but with. It just goes on forever. So basically you don't have to store it effectively that you have to store all these numbers. It's enough to store only numbers eight to be in detail be in this came next. And those two are three. So those numbers are enough to specify your way function. And that's what this package will store. Actually, that's almost what this package will score, because this package works with you functions not psi functions. These are the guys without theories. Because that's more natural for things we're trying to do. But these two conventions are completely equivalent. You can work in one convention or you can work with the other convention, but you have to be consistent you can't do half of your calculation one convention and the other half of the other convention, because then that leads to trouble. And that's why we don't allow, you don't have any way to switch from one to the other. This package will always give you second, you know this convention below for the new functions. And so the difference between these conventions is the face factor so the relative phases between AB and a few people are different. And you know if you learned anything from the summer school is that you know relative phases can be important. You know, or the very face and that stuff so you kind of be careful with this. And this link or here can see on the zoom I think is the one which has information about all these formalisms and face factors and stuff. Okay. So how do you get these energies and functions in the package. So basically you have this sole function that you call in your model and give it a K vector and gives you the eigenvectors and eigenvalues. So it gives you these numbers. Okay, and then so you have an example so we have a graphene band structure. So this is the graphene type binding model with all these things specified as we discussed before. And so then you plug this into this package and example plans over here. And we'll, you know, maybe have time to go over the examples later. So this will be in the folder a, and the file is called graphene. And you know, you go to this and you get this band structure together your friend, you know, got comb. Now the question is, what would happen if instead of the code and talk to use the code at the bottom. So let me act with this again. So if you did everything the same, but you've placed some random numbers for all the two locations. And B says that the rock home will appear in a band structure would be the same. And the rock home be exactly the same point as before two thirds one third. Or B says that the rock home here that different people. Okay, so take some time to think about this. I think one of you answered, I'll give you some more time. Okay, so we have a split again so about two thirds thing. Okay, so we have six of you answered. So like 60% thing a and then 40% thing B. So, okay, so now again find some of the next two different answer. And then you can go to them. And if there's some clarification, let me know if something's unclear the question, or like, I didn't explain some aspect of code. Find somebody with a different answer, introduce yourself like the person next to you, if you haven't. So you can answer again. So let's say a means the same band structure, same energies and be means different. Let's say maybe you think maybe without you think it's without the dark condense with a means, you know, this picture will look exactly the same, you know, even escape and be means it won't work. Okay, so basically the distribution is the same are very similar. I mean, somebody offered their thoughts on this, so their opinion on what I guess think about this, you can just take a code and run it. But anybody. You know, it could also be that maybe, you know, the information about how the code actually worse wasn't like specific enough. And so maybe it's kind of difficult to tell just based in this, or the hundred point and actually looks like it's just something to still suggest something. Yeah. Okay, so you're saying the symmetry is different. Okay. This is hoping will change. Did you say that hoping will change or do you say that the symmetry don't symmetry. I didn't hear the last part, hoping, hoping in here. Because hoping integrals are the same right. Oh, yes, symmetry. So the argument is basically symmetry is different articles are different places. Yeah, symmetry. So I shouldn't have a course. I need to kind of different thing. Okay, some of the other thing on this. Yeah. I'm saying that we already have everything for that. So if they're the same thing, then the orbitals are already incorporated. There's no way it can be different. Okay, so the other argument is basically hoping that same so everything should be the same. Yes. Okay, so it's probably say actually the code, the package confuse Hamiltonian actually never uses this orbitals. And actually this also the user there's a very deep kind of subtle point somewhere near the end of the code, but like this orbital is not actually used for those things. It doesn't mean it's not important. It's actually very important. But if you only look at the energies, it actually doesn't matter. And in the list if you work with you functions that I'm going to sing. Is there can somebody think of something physically that would be different between these two models. Or physically in every way, same. So, so actually, for example, so there is a difference. So for example, if you open a gap, you can find the vinyas center against find that the orbital is, and you will find different objects in the case in the case above and below, but energies will not change. Okay. Let's try this. It's kind of subtle. So, and I also want to go through, I said I want to go slower but I don't have any like additional slides unfortunately for the question seven. So let's try question page is kind of similar. So what they've done here is. Okay, I'm going to go back to seven and somebody wants to give me their opinions on like what is the given. Okay, so so let's try question again, or maybe a more fun so the question eight orbitals are the same place, but they change this part in gold. The zero ones are different. And I'm asking the same question. Okay, so thank you both so please think about this one and so I think it's right answer. Five minutes. Okay, so let's look at this thing. 75% of you think a, anybody wants to tell me why they did this with a. So mostly go this right so that's because of him because here if I specify one zero, one zero, that's the same as swapping the first two and putting a minus on the last one. So, doing one zero, one zero is the same as zero one minus one zero is actually the second one here and second one there. And there's absolutely no difference between these two there's nothing that you can construct that would be different. Okay. Okay, I think that's the last question I had a few more things I want to show. So, there are other actions you can do with a model. One is that you can take this infant model and you can kind of chop it up into a finite model. So, you can kind of take scissors and cut them left and right. And now you have only three unit cells. The model actually is, I mean the unit cell is basically longer now. I want to access and I have six orbitals like zero one, two, three, four, five, and I have way more hoppings between the little time in the pool and, you know, three before but now this is fine. The question is what do you do with these guys in the edge. Edge is another keyword for this conference. And there are two options. One option is that you can tell the code I want the orbital to, if it wants to jump to the left, it actually kind of reappears on the other side. Or the other option is that you don't glue them that you don't allow the order to reappear on the other side. So you have an option to choose one or the other. And here's the example of the whole day model. So we started from your theme model and to this might need six paper from today. So basically you add this six additional tokens. And all of these additional hoping space to define the whole topology of this journey later. And then I'm going to do that to get this chance later. This is density of states. So if you can model but blue the edges, then you basically don't have the edges because you do them so you don't get a state, there's nothing in the gap. But if you don't do the edges, then you get the states in the gap so those are your estates. And you know all this stuff is basically a bunch of these ones and zeros, you think of it kind of as a computer scientist. So you select one of the states and plot it. So this is what state looks like, you know, the edge. And then another thing you can do which is similar but the same is making supercells. So this keeps the diversity of the sample system of the system so you know this is your initial unit cell, you have a function which will make something like this. So for example, this big guy is a supercell and it's two ones so it's twice along the first light spectrum and once on the second so this is my new line of sector. And the other guy is minus the first and then twice on the second. So this big box is not the unit cell. And then you can you know combine these things together right so you can first make a supercell. And then you can this big guy. And then you can take this bigger so you know this makes supercell will return a new object so this x is the old object and SC new object. And I can take this new object and you can cut it by six so that means you can repeat it along the second vector six times. And then the unit cell is going to be repeated vertically six times. And I'm not going to be engines. So then at the end you get like this. And you know this is your band structure. And so that doesn't this example if you want to run this. Okay, then there are other objects that I don't have time to introduce. So for example, this way, a wave function array is a way to this is a little bit more formal. So this is a way to store wave functions. Yeah, so so so so the first good so the first, the first number tells you how many copies, and this tells you along which direction. Thank you. Okay. So the other object is this way function array. This can store wave functions on a grid parameter either K vector or any other parameter. And then you can compute all this very phase properties here where you put the other conditions this is the one of the main places where you use that for the order. Okay, so this is this is an example. So this is a very valuable example so basically have a three band structure and structure with three bands, and you're looking at the bottom band, and you're looking at you know where is this and then you pick some parameter. So basically you kind of succession kind of change the one side energies for these three orbitals, you know the green one is the lowest energy dynamic highest energy the lowest energy. Then you can transport these electrons from one side of yourself to the other so this is the location of the electron from the vertical axis as a function of this parameter. The other side is totally gapped, but when you change the Hamiltonian, the location of the electron changes by one line this factor. That's shown here. And then you can also like plot these bands and so this is a parameter is not the case base on the horizontal, and you can compute your numbers and the states and all sorts of stuff. And then some other examples you know this is from the hybrid bunny function that you have seen on Tuesday. So here the vertical axis is the location of the highly binary function. And the color tells you on which page this and so on. So there are a bunch of examples that you can look into after this. So this is the location of that example which is to chop off from my slide. So this file or here has that. Okay, so then some other resources. So this website contains a bunch of examples, what are the ones that I have talked about, and then they're documented then you can, you know, probably easiest to just read a code and try to find yourself. This website also has this this part of the document which kind of scribes all the conventions sign factors and all that stuff. And this documents every function and every parameter and function under. I think every kind of possibility you know the specific this about and this happened that happens. So you can go to every function and see what it does. And if you click here on source, given the source code source code is there. And then also, there's this book from the Vanderbilt which also uses this model. I think that is the described some, some, some examples examples we can also find here. I'm not doing the time. Okay, so I'll then just jump to the end. I'll just leave this up. I don't have any questions but if you want to run the tutorial, you will go to the folder for today. I work with base, we go to that folder and then run these examples to each example if you run make some picture or put something a screen description examples also here. And then there's a series of very nice examples from the book that is also available on this website that accompanies the book. And the appendix D goes in detail and explains, like what's going on with each of these examples. And with that, I'll take you for attention and thanks for staying so long Thursday. Okay, thanks a lot. Maybe, you know, last chance to ask one question. Yeah, so I checked the documentation. Yes, there is. Yeah, it's not. There is a way to do implement money. The thing is that code was originally intention just, you know, so you can run it for models. So if you want to import something from money and 90 that kind of goes against the rules of code and the code is not optimized for speed. The code is hopefully optimized to make sure the conventions are right that signs and phase factors and all this stuff is correct. You can still import things from money and it's one of the examples does it. So you can kind of chop off the openings which are too far. So you can kind of work with a smaller model. But like what I would suggest is, let's say you have some more than we want to work with you run money and it and then figure out which whole things are relevant. And then you make some kind of effective form all about it and work with it. If you want like a proper, you know, package, you know, one that would describe earlier today, that will kind of, you know, work before trying to get more fast and efficient. So there's a way to work directly money and 90, but you can just want to kind of blindly take some money and the output which has like, you know, 200 orbitals with like, you know, to six by six by six, so it's like, you know, way too many openings. And, you know, this package is probably really suited to that. But I mean, this was just going to be slow, unless you can simplify the model, or if you make it faster. And the direction in which I think the code development goes, you know, a, see if there's some budget signs and stuff being, you know, add some features like maybe I got forums or, you know, do a better support for spendings because phones and I like to have money and form models are very similar. So, you know, so I think in the future, the code is probably going to develop in those directions. Okay, there was one last question, but PTB and by using the same convention. Well, so I was able to find out whether the 90 says that when the whole thing is from i to j or j to i. So I did my best, but I should have asked developers. Because in my 90 prints out. I mean, I wasn't sure which one. But I think the conventions. What's being read in. Yeah, I mean the conventions are the ones from this package. I'm not 100% sure if it's i zero jr, but there's additional problem that function espresso. I think when this mean like this issue that mean minus monetization. So that's another sign that has to be fixed. So, because when you have a significant matters which we jump so up to a sign I think it's correct. Okay, I think we can stop here, let's stop the recording.