 Bariology yeah, and now we go for to a practical tutorial how one can Compute all very curvature very connections and all the derived quantities Using the Vania Berry code so Okay, so maybe we start again a bit of why you put I or I somewhere So again if you Google Bariology with I Okay, I found this page which is on Instagram and sells quite nice cookies I we couldn't order it. It's somewhere in US, but maybe you can try it but okay with With why again you you can find this book by David wonder based ever This word appears as a title of one of the chapters Okay, but then you may ask why we put I in in the Vania Berry code Well, when yeah, it's clear where it comes from. So Berry comes from a bus language and means new So it's a new one year code. So who doesn't know both countries somewhere here Yeah, it's very nice place. There are some guests from here from there here and also I will join This research community soon So my advice if you want to get a position in a bus country make some good Scientific code and give it a name with some busquert. They will like it Yeah, yeah, they like it Okay, so you already know why we need money interpolation so we were showing this figure That when we evaluate something like anomalous whole conductivity We often get very non-uniform distribution of the integrated fun integrand Yeah, so it is huge at some points and the others. It's almost zero So when to evaluate it, we need a very dense dense k-grade and when your interpolation is something that allows you to Interpolate bands with very high precision. So for for example Even if you have such a tiny avoided crossing somewhere here and it is far between the points Which you had on the ab initial grid still you can reproduce it with quite a good accuracy If your linear functions are good and well localized. So that's the magic that we use and that made calculation of anomalous whole conductivity possible So how does one proceed? Basically part of the scheme you have seen yesterday So you start with some ab initial code evaluate your block away functions on some ab initial grid, which is would usually quite coarse and evaluate some metrics elements like spin or positional like overlap between neighbor and cue points and then you go give it all to the vanier 90 code to construct the vanier functions and The after that you you can use these when your functions to interpolate So you did it to interpolate just the band energies But also the vanier 90 already has this post W 90 part Which also also implements in my calculation of Berry cartridges integration of Berry cartridges anomalous whole and activity gerotropic effects spin-hole and Actually many others So and when you better actually does Basically is the same. So why at all do we need it? well, the point is also also When you interpolation already gives a big advantage over the ab initial calculations for some Materials, it's not enough because we need higher precision. We have more complex material with more More linear functions or more or whatever so So with the vanier Berry code, I managed to make it faster more efficient and Also, because of its structure It and design I make it I tried at least to make it easy to the implementation of the new things and in fact it already provides a toolbox for you to Interpol II to implement your things without actually Modifying the code. So you just write a few functions in your script and you pass it to when you bury and it should process it and This can be actually seen to in one of the advanced tutorials today, which called it which is called to do it yourself DIY so About the speed so that's there's a comparison that I did when I Issued the first version of the code and Published the paper so you can you can see that When you bury Performs a lot faster than post W90 for evaluating a more normal whole conductivity and The main reason the main trick that I did is the use of the mixture of fast and slow for a transform Which I will explain a bit later and Also, also some other tricks some optimizations For example this scanning of Fermi levels Well, maybe now it has improved in post double 90, but I'm not totally aware But at that point it was a very bad scaling with it with a number of Fermi level for example, you want an almost whole or where they were a dense grid and It gets very slow with money buried. It's almost the same Other thing is the use of symmetry so we can evaluate only the reducible part of the brilliant zone So what is the Thing they mixed for yet transform. Well, it's a mixture of slow and fast. So what is the problem if you just evaluate the Hamiltonian so What we do in money interpolation we have a Real space Hamiltonian so it depends on these are vector the Latest vector in the real space and at edge K point we Define define the Hamiltonian. Okay, it should be H not X Okay, actually not only Hamiltonian, but any other matrix element That's why it's a general X So in each K point we so we have some number of our points and some number of K points We multiply it and get the scale of the number of the time That we need to validate it Yeah, and it takes quite a lot of time and a post of United was just a major time So what one could do is to do a for it for fast Fourier transform So this figure is taken from the paper about power flow code well, which is not one year based but Has something similar in spirit, but okay. I'm not the user of it, but Principles they say so what what do you take your Hamiltonian in real space then you create a big array of Veroff and put your Hamiltonian into the corners and do the fast Fourier transform of these big thing Well, it's a way to go and if your K grid is not too big it's It's quite fast, but still for large K grid It's problematic first because you need this huge array it can Maybe just not fit into your memory that you have and also it's harder to make in parallel and Harder to exclude symmetry equivalent points because you calculate all of them So it has some problems. So what my idea was? To split the grids basically for example here We have a eight by eight K grid, but we use it a four by four grid Which is shifted four times get two by two So what we do with Each grid each color corresponds to some grid so We use the shift small K which is and to divide this X tilde on this shifted grid Multiply by the shift big K Yeah, and then with the resulting thing We evaluate to the it as a fast Fourier transform and Combine together it it is first very fast and You can consider each of these sub grids independently so you can do it in parallel So each sub grid don't have to know anything about each other. They can work on different nodes of your cluster Yes And you do you don't need to store them in memory at the same time if you do do it in theory We just go one by one and forget it So if you run it on a laptop, you don't need too much memory for example Second UK not the second but next that you also can exclude some symmetric really well and K grid and do Some adaptive refinement so what it is so we start with some grid eight by eight divided into four by four FFT times two by two slow grid Then we see that the green and the red one are symmetry equivalent We assume that the symmetry the system has a four-fold symmetry for example Yeah, well, not every point is equivalent to every point But let's say every point of the red goes into some Point of the green. So if we evaluate some quantity on the red one We can know what is this content quantity will be on the green one So it's just the same if it's a scour or it's rotated if it's a vector quantity But we don't need to evaluate the other one Now we calculate only the symmetry Irreducible K grid What we do next because maybe if we do one a one-shot calculation And if the grid is not very dense we can get this blue curve which has a lot of spikes Which comes out when we have some K points, which are very close to some Wild point line node or a body crossing where the barrier courage is huge. So what we do we look at the results of each K grid Yeah, and see which one gives like the biggest contribution all them biggest spike And we refine it. So we substitute the point by for okay in three dimension, it's eight other Points around it and we distribute the weights around those Then again, we apply the symmetry then see that maybe here they all they are all symmetry equivalent So we again collect them into one But and collect the weights of them. So this dot is a bit bigger Yeah, then we Evaluate here and then we look again which which K point Give the maximal result and refine that so we can refine one of the new points or one the old points we shall I give the biggest spikes And in the end after some iterations we can get some this green quite smooth curve Of course, it doesn't mean that you start from any course grid and they get a good result after 100 refinement iterations in general still you need to start from a reasonably good grid but with this Algorithm you can improve your results Without going to very dense grids. Oh and another feature of the one year very cold that with the evil soul so we derived the ways to compute the derivatives of Berry courage orbital moment and other quantities in quite a general way so we can Implement it and in a general way Evaluate also the derivative. Why is it important? Well, first of all, when you evaluate some quantities, they naturally Appear on the just the derivative of Berry courage, but also for the so-called Berry courage a dipole It can be calculated as a Fermi surface property. So the Berry courage awaited by the Derivative of the Fermi distribution with respect to K So if you look at the as a subject Basically it gives you a data function of the Fermi surface. If you if you consider low temperature, okay It's finite temperature. It's some peak which still is quite narrow and to get a converged integration You're again need very dense K grades So another way is to convert it by using integration by parts to a Fermi see integral So basically you some all occupied states Which are somehow spread in three dimensions Not to concentrate it as a surface But you for that you need to Evaluate the derivative at every K point without and we found a way and with without to do in any finite different schemes here So we analytically just derived and evaluated from the new functions and this gives a much better convergence And there is one of the tutorials which show this So Okay, others other thing that so to make the implementation of new things easier and we use object-oriented programming paradigm so that We have some modular structures so that you can call some functions which call quite abstract classes So and if you for example, you can write your own classes based on the classes that we have So if you are familiar with this type of programming, you can really use it as a powerful tool If not, then you can use it as a usual tool just passing parameters to functions and using the standard from functionality, which is already quite extensive, I hope we can Demonstrate it on the tutorial. Well, if you pass the basic tutorial And you can go to that one. So for further information Please refer to our web page which has quite Quite extensive documentation. Maybe not Yet complete but we work on this So if you have some questions in the future on using the code or problems You can open issues or discussions on the github Which is the main platform for Developers and also for communication with users. Oh, there is also a mailing list where you can subscribe and also ask your questions Yeah, and so the code is free to use free to everyone the only Payment is the citation. So the more you cite The more we are motivated so please cite of so far. It's only only my single also paper, but we are preparing Be a bigger paper with all these nice people some some of them are in the audience Some online Yeah, so when it's ready also Please look at it. I hope we will describe many new things there Before we go to the tutorial, maybe you have some general questions questions No, let's check if there are questions in there yet No questions from an Adriatic No questions. Okay from the chat also know right Okay, then Okay, there is in the metrics chat. There is a special subchattable about it specifically for today Okay, so no not so far no questions there, but if you have questions both post them here, so I will look Follow them. Oh for today tutorial We don't run when you 90 so we we prepared all the files for you That's why you can either look into the Virtual machine or you can use it on your own It's not for you Okay Okay, just to show everything I open the virtual machine, but in principle you if you installed what I said to install It should work also on your computer, so we open Jupiter notebook Sorry on this we should Yeah, we should switch on to to the Virtual environment of Python called base Yeah now You open the Jupiter notebook and it will open a Browser, okay, so we have a folder one year tutorials 2022 3F and okay, he's here one day to WBerry Yes, so let's start with a well that the day for the tutorial for today There is a basic tutorial which I will now explain Slowly with all explanations to everyone who is new to this who is new to Python Yeah, if you What is the deal? Okay, there was a question is a chat with which I missed what is the difference between Fermi surface and Fermi C property? Exactly what I was Talking that they We call something Fermi C if it it is evaluated as an integral overall occupied states Fermi surface property is something that is evaluated Yeah, it's not the difference about properties about the way of evaluation exactly so But when we will it is a Fermi surface Then we basically on this the states that are close to the Fermi surface do contribute the others are not relevant So the tutorial consists of basic and advanced So yeah, I will explain in detail the advanced the basic but if you go you you feel very confident in this you can go through it quite quickly and then Switch to the advanced and try to do it yourself and call the to out open it Oh, sorry. Okay. We are on the virtual machine you go to the terminal and Type jupiter notebook. Yeah, I can write. Okay. I will I will write it here Yeah, but first you need to First all on these virtual machine you need to switch to the virtual environment base We should do by the common work on base Okay So now we open this and now you go to the proper folder. Okay, we go to the basic Okay, there are some file some folders which Well, basically, so what do we have when you're 90 files? That's the we we did some veneerization of iron We did it on Okay, I forgot the wind file, but anyway, you will not need it So basically, that's all we need to run when you bury after we calculated the When your functions, we don't need the AMN file Which is a projections because we already projections are used only as an initial guess So we already passed this step So we don't even need the wind file because all the information is already here in the CHK file Which is a binary and these text files with Eigen functions and overlaps All we prepared it for you. So there is a folder with input. Well, basically, that's the file Right, there is the wind file if you if you are curious how we did this we used 18 when your functions with SPD projections This frozen window just if you want to modify and change it you can go ahead Okay, and actually being also included all this quantum espresso files And just If you want, okay, this python file, maybe you you don't need it It's not it's not relevant. It's an old one. Okay, and okay, the bands folder Well, we pre-computed the bands from Along some policy we use in value 90 and using quantum espresso. It's just for comparison of the present results So we go to this IP y and B file, which is a Jupiter notebook It's a convenient way especially for tutorials and maybe for production runs or It's not very good But because for production runs you need to write a whole script and submit it to your cluster and it your crunch The numbers but for this interactive thing. It's it's actually a convenient thing so Some preliminary notes so that I want to make that first Maybe some of you are not familiar with Python or maybe not familiar with programming at all. It may happen, but Please don't be afraid first Python is easy. It is much easier to learn. I think then Fortran or C Second day if you are used to this way of communicating with Calculational codes like what you did yesterday like with one in 90 quantum espresso that you have an executable that is compiled somewhere And you have your files with you give the files with a list of input parameters Give it and you get the result and process it somehow by other things means in principle Here you can do the same if you take the example and use it just as a template they become for you just a way of inputting They just give in the parameters But if you learn it more than it becomes more advanced tool, so you can do more things So, okay, I told about Jupiter notebook that we are using today Yeah, so the documentation is given on the web page Which is here you can go here to do Okay, there are also some like examples which may which are not yet updated But we will update it with the examples that you will see today on the on the tutorial So the documentation is have basically every function every class For example, you click somewhere and you see okay the function all the parameters that you have they described Okay as detailed as we could We will improve this at some point so with anything and To be to go further There is a link called force so you can even click and see How it is all implemented if you understand this Curious you can go there so Well, yeah, maybe some of you have already used the money a very and remember that were there were functions called integrate and tabulate functions recently we Changed the interface and now there is only one function run and basically you can integrate and tabulate Simultaneously in just in one run. So you do if you run it on a K grid and if it's not a path, of course, you cannot integrate over a path So and So so even if you are familiar with I advise you to briefly go through this basic tutorial On this I already said So, so no problem so far you have the files You have you have it working. So how do we start a calculation with a money bury? So first in Python, you need to import all the proper Modules well, it depends what you do but okay, we have well you enter money bury and give it a short name We can give any other name like WB, but in the further We call it this way we call it noom pi and also the other it's a standard way of Calling it well beneath sci-pi for some physical constants. Okay, we will plot the figures using mudplot leave Okay term cover allow us to Print something in cover, but it's not obligatory Okay, these few lines I added just in case if you run this thing twice because You need to define your parallel environment. You can do it. You well with one of these three lines Either you do it in serial Which you called when you bury dot serial Create you create an object basically when you bury dot parallel creates an object which automatically detects How many CPUs you have or you can give it manually how many you have? Okay, yeah, I think you are not allowed to use more than four Okay, you can put four here, but I think it will be the same as but the thing that it for parallelization it uses the model ray and it For that you need to initialize the parallel environment and you cannot do it twice on the same computer So if you once did it you need to shut down it before you run it Because with this line if you run this cell twice It will give an error So to in the jupiter a to run you can either press run or you press shift enter And okay, this cell doesn't give us anything No Okay, it says that we are using when a very version 0.13.2, which is the latest for now by the way Soon we will issue the version which is 1.0.0, which will not be much different from the present one We just need to clean up and test make sure that there are no bugs Which I hope we will do during the developer's meeting which happens next week so you can expect some improvements if you find some bugs or Incomplete documentation. I hope we will fix it So now what we need is to read The information about the system the electronic system that we are studying in the and generally if we work with linear functions which Generated by vinyan 90 we do it by running By creating the object type system system W90 So what we give it a seed name well Basically a seed name includes also the path so we put it in the folder W90 files dot F E Yeah, and then we have the file FE dot I E dot mmn and CHK and okay buried equals true means that we need to evaluate the External terms of very connection of very courage that was Was what Eva was talking today that? In principle you can neglect these terms and the error often will not be that big But to include them you need this tag it says to include them and also we include the spin properties and This use WCC phase actually that was you were talking also about including The vinyan centers in the phase factors of the way functions Or you can include it or not in principle if you include the internal and external terms Nothing changes. You may test it. Well, it's not Done explicitly in the tutorial, but you may check it later if you want so we run this thing This cell put a shift enter you see So it read the SPN file which we will need to interpret all the spin properties So basically that's it. We just read some files. It says as the recommended FFT grid is four by four by four Which is just equal to the ab initio grid that we used it Yeah, it's quite a small grid, but always I give quite reasonable results And of course we want to keep this tutorial as light as possible. That's why we don't go Dancer so yesterday you were interpolating some bands along some path You can also can do it with when you bury For that you first create an object called path you give basically the nodes of the path and You give you give the labels to them then it will be just needed to for plotting and then you And The parameter length is basically the space in between k points the bigger the dancer you have the k point So it's like to pee over Delta K So if you run it Well, it's just it's quick. It just creates an object So if you want to check what the object is you can like print it Which will give you actually the k points and say, okay, this this is the age point for example Like this. Oh, you there are also something that you can Okay, for example, this can give you Just the k points. Well, which basically you need for the plot When you put all the cup points along one line So different things that you can just look and now we go to the running the calculations so the the concept of the new version is that We use the the calculators We shall also such callable object objects which call result Which return some results. So there's that's quite abstract objects that we define In order to make the code more flexible So whatever the result it is if we define some properties like if we know how to add one result Another or subtract one from another we can or how we transform it under symmetry. We don't care what is inside That's as a big advantage of this object oriented programming rather than just working with fixed arrays or similar so to tabulate we create a Calculator which is called tabulator Yes, so first to for example, we want to tabulate energy and the Berry curvature. So we have this Money a berry dot calculators double a dot Berry curvature. For example, we can Be looking to the documentation So what calculators we have now, okay, we have some calculators to Okay for tabulating Okay, tabulator all we will see what needs so we have a basic class tabulator and many Other which I derived from tabulator so far. Well, we didn't have time to document them but for example, Berry Berry Curriculate or Energy orbital moment or derivative of orbital moment. Okay, they will be documented later Yeah, you just pick them up and you can pass some key key w args means key w k-word parameters K-word arguments. So there is nothing documented because they are just the same as for the tabulator Yeah, and tabulator the same time it has Well, okay, we will document it properly. What what is what but say this is some arguments Which we pass to the formula to evaluate Berry curvature There will be some examples in the tutorial and some other which we pass like to the more basic class calculator You look what we have in calculator So far we didn't document anything but we have such parameters like degenerates ratio Grammars well some parameters Anyway Yeah, I'm sorry that the documentation is not full yet, but it will be more complete So that's the way how you can work in with the documentation when it is more complete But so far you can just use it basically without parameters everything by default and it somehow works Yeah, so and then we run calculation just to tabulate this quantity we select Well, we can amid this parameter because it selects all bands from 0 to 17 That's the convention of python that you start from 0 and end 1 by n minus 1 so Range from 0 18 means 0 1 2 and so up to 17 We have only 18 minutes, but we can also restrict it to more than a number of bands So we create this Okay, not described because we didn't document it yet properly Yeah, and Now we are We got everything to run a calculation. Of course, we could just write it in one line Write grid equals But just to be more clear we do it step by step. So basically that's the main function to run a calculation so you give this this Object parallel which describes how it's parallelized you give the calculators you give on what grid of points you You evaluate and pass is just a Particular Particular case of a grid So you just run this thing And it shows okay, it estimates how much time left Okay Question, okay. Thank you. You mean on all the metrics all on the zoom No, but we answer that but Our pharmacy and thermos of the properties Is Because it's from the no it is red just because it's on the other computer because on this computer I didn't open it. Okay, I will keep it here so that I see it better It's new new things arrive Any questions here? Oh, you did you run it? So we Okay Well, so far. Yeah, so far. It's easy. You just run and try to understand what is happening But you don't have questions so far okay, so now we can plot the result to so this Tabulate for the function run in return some thing something called the result dictionary. Yeah, and which has Addiction which inside has another dictionary called result and because we named it tabulate So this this is not a predefined keyword. It's just that something that we That we put Yeah, so we named it. Yes, so we can it call it Yes You run it this way Also call it three So all these names are not are not predefined. They are just you can give it any names That you want so you Yeah Of course The same that we that we did yesterday we forgot we need to copy this Because we are all in the same folder, which is locked from modifying. We cannot create files So, okay, let's close our GPter of terminal Yeah, so what Okay Okay, so those who work on their own laptop don't have this problem Okay, let's copy it here. Okay, we again work on base And we run Jupiter Jupiter Notebook, okay now again go to the basic open it Now it should run So because before we didn't write anything to the files, which we were just creating some objects somewhere in memory but when we started creating Files on the on the disk we got this permission error So you can just go one to this cell one by one and execute them After where we were now we do this run so What it does it it returns some result. Yeah, so we can access it by this result or results or tabulated we did Okay, then we Okay, with no pi we can load The pre-computed bands Then we were Okay, so there is some factor is just because Yeah, we have okay We define some dimensional factor just because quantum espresso and when you buried give the key in different units The same was yesterday. I think you notice that it's to be over a That's why we multiply it we shifted by the Fermi level and we plot So only this result that we return already has its function to plot it Of course, you can just get the data and plot it with your own tools Whatever you like, but it also has something to plot I'm getting the message not described well It's yeah calculator not described. It's just a message meaning that we did not Document this calculator just we had no time Well, it's not an error. It's just incomplete documentation of the code How it's done with the code that we write the documentation inside the code and then automatically it appears on the web page And also it appears in the code When the code writes it by itself what it does so We have the bands of the black ones The when you rise bands and the blue dots the bands from from quantum espresso As you see so for the lowest band somewhere here up to the frozen window. We have a good match between them. I Think if we room a different scale of energies, we give get almost perfect match Yeah, but for high bands, it's it's not it doesn't match at all and this is the feature of the disentanglement procedure So we see that everything is fine here so we can plot these bands So net scene We okay the same we can do to compare with w90 vary 90 Yeah, the the calculations the type of calculations that you did yesterday we just Using this plot routine, so it's called pot pot path fat So we in principle it can plot also some quantity with a fat band Which we see a bit below and have some primers it it can save it to a PDF file also shift You define the range of energies and Some other fat factor okay, I will explain cut K So it will cut out the part of the K K path where you have no bands in this energy range Okay, close figure show figure Well, it's just a common school To mark what leap Yeah, if you know much what leap you understand what it is about Okay, and okay We see that there is no difference between w90 and w90 in the results and there should not be basically they do the same In in performance for this path calculation. Also, there is no much difference. I think well Well yesterday you're the interpolated the bands, right You did such plot of plots of bands, right? It's well, it's part of the it is already post-processing after you can construct one your functions you can evaluate just technically Interpolation of Benz is in the one year 90 dot X executable There is also this post W 90 dot X, which I think yesterday you didn't even touch Yeah, which has much more of interpolation, but in principle. Yeah, that is post-processing of one year functions The first step is you construct on your functions and they do whatever you want with them just some of these just in the same executable Yeah, so there is no difference in this part. Well, because we start from the same one year functions and we get the same energies Yeah, so now what is the fat fat band when you put also some dots which symbolize some quantity So in this case it is a very courage We choose the quantity which is the Z component. We choose some factor And it gives us the very courage Yeah, so we use some fat factor equals four. So if we Choose it smaller so we just get smaller dots. It's just a visual thing put it five So we see well, it's one of the ways to visualize so red means positive blue means negative and the size means I think there is some cutoff and also some logarithmic scale all these both. Otherwise, they would be just For the whole screen at some points Yeah, so you see that at some points you have very little very courage and some points you have it huge. So Well, I think it's almost time Well, we have some 10 minutes So now when after just to check that you understood what was in this tutorial you can solve a problem Choose a different path any anything that you like compute so bands and stuff along that path and Compute not not very very curious about the spin the spin expectation value. So there is a link which Suggests which calculator you should choose Yeah, but of course, you don't need to put quantum of personal w90 because you choose a different path It will be different. It will not match any way. So, yeah, so now you can go and Try to do it by yourself Basically, you need to just to copy paste some parts of the code above to this cell and run it You took you can just run everything in one cell Okay Well in the chat of them What file are w very reading I need only the CHK file. Well, you need the not only CHK Basically, it reads everything here. So you need the ag CHK because CHK doesn't have a eigen energies CHK file contain. It's a binary file. It contains the this you and V matrices which I used during Yeah, not only the CHK file, but also the eye. I don't see it. All right, because you see I so you Was it on the screen all the time and you didn't tell me great Okay, let's put it somewhere here. Okay. Oh, you know, so you also need the Well, as a minimum you need CHK and the ID if you only interpolate the energies if you calculate Only internal terms of very currency. Oh, oh, that's all you need if you Calculate external terms of the very courage or very connection. You also need the overlap file mmn Yeah, if you need compute the spin properties, you need also the SPN file Also, there is an extra file called UHU which you need for special external terms of the orbital magnetization So it kind of depends Which properties you need from that depends which files you need to read So that's why we have all these tags here berry. Oh, yes, you can actually I'll initialize in a system Yeah, here are some parameters basically berry. Okay more blue Yes, I'll do enable calculation of External terms in orbital moment and its derivation requires UHU file for example for spin-hole conductivity depending if it's Okay, which implementation of spin-hole You need either some extra files Or just the SPN file So, yeah, it depends. Also, there is a way you can just so when you night you also can write this when This 90 underscore TB dot file which is a text file which you also can read and basically it also will work Yeah, it's another so well Also, you can in principle work with tight binding model. We can directly Import a model from a Python tight binding or TB models about Python tombani there will be a tutorial by Cinezha Koch and Yeah, TB model is not to represent it here, but it's quite similar actually in usage Also, you can import the Vania functions from different codes, which are not for example a Atomic simulation environment has its own way of constructing Vania functions, which is not maximally localized But they're partly occupied one and there will be talk by Christy and Tigerson Well later this week Yeah, also the F PLO ab initio code has its own way of constructing Vania functions And he also can use it if you like F PLO code So if you know another good way of constructing Vania function, we can implement it. Yeah This is done with spin orbit coupling. Yeah Only that it is only the I didn't put it Actually actually no Well, I well I had then erased it, but Okay, if you let's if you plot Just the very curvature does it have a Z component of a an X component But okay question about all on which pass did you plot? So it's not a symmetric pass. Okay, GH. Okay Yeah Okay, first I will plot there Okay for the egg for the barrier which we have some Let me try thank you for curiosity actually Well, I think it's time to go for lunch because yeah, because we have a Group photo at 130 so we need time to have lunch and at 130 me at Adriatico We will have a group photo and then we will figure out what's happened with the spin X Yes, yes, so you go we now go for lunch here or wherever you want and then take our stuff and go So we will continue in the same Computer room that we were yesterday Okay, see you soon good appetite