 With this we come back to the problem of Hartree-Fock and we had derived the Hartree-Fock-Ruthan equation as Fc equal to Fce. I hope all of you have done this exercise of checking that you have to write in the manner Fce and you cannot write in any other way. And we also wrote F in terms of the coefficient and remember that the F now everything the input matrices are all in terms of atomic orbitals. So if I have integrals in terms of the atomic orbitals I can construct F. However F will depend on the coefficients or what we call charge density bond order matrix which is actually related to the coefficient. So I hope you remember this terminology that we define a P mu nu as a matrix which is sum over molecular orbitals i equal to n by 2, 2 times C nu i and C nu i star, something like this. So this was the definition of the charge density bond order matrix where the summation was over the molecular orbitals. So now the final index molecular orbital does not appear it is only atomic orbital and we can write the entire expression of Fock matrix in terms of F mu nu or we actually were writing F nu mu does not matter. In terms of the two electron one and two electron integrals last time I showed you how to quickly write one and two electron integrals as well as P mu nu or P mu nu matrices project the charge density bond order matrices. So once you write then the question is how do you solve it? I also told you the iterative method starting from a Born-Oppenheimer geometry choice of basis set A mu then you have to actually calculate the one and two electron integrals then guess the P that is the important thing the P depends on the coefficients construct the Fock matrix solve the equation get nu coefficients construct P again construct Fock matrix and continue to do till it converges. So that was the basic iteration we will write it again at the end but let me complete the story because there is a subplot on how to solve this because that is something we have not discussed after we construct Fock matrix at every iteration you have to solve this equation. So the problem with this equation is that the original basis sets are not orthogonal not orthonormal or orthogonal. So that was the problem and that is the reason it did not become an eigenvalue equation if they were orthonormal then this S would have become unit matrix and this would have been automatically an eigenvalue equation. So the strategy to do that is actually to orthogonalize the basis set. So I have started with some matrices A the basis sets A mu I want to now construct a new basis let us say A nu prime which is orthonormal the original matrices are not orthonormal in fact they are actually not orthogonal to be more precise they can be normalized to unity by itself but their overlap is not 0 that is the problem overlap with each other with different mu and nu is not 0. So we now want to construct a new A mu prime which is orthonormal from the original set and then we will see how does that this equation look like and then we will worry about how to solve. So you construct A mu prime by a transformation as usual all if you have a basis you can transform to another basis by a transformation matrix. So we will use a transformation matrix X. So let us call it X nu mu A nu. So this is the original matrices original basis which are transformed by this transformation matrix X note the way the indices have been used. So for the mu th vector A mu prime the mu th column of X represents that vector. So that is the only thing it is a column because this is coming in the second index. So that is the only thing that you have you should be consistent whenever you write a matrix notation rho and column. So that is what we have been using. So if I do this then it is very clear that the original matrix was original basis was not orthogonal but the basis which I am generating are orthogonal. So quite clearly this X cannot be unitary matrix remember unitary matrix connects only orthogonal sets one orthogonal set one orthonormal set another orthonormal set. So in this case of course this matrix is connecting a non-orthonormal set to an orthonormal set and the matrix is actually not unitary. So it is just to remember that because we always have this concept of transformation by unitary matrices so in this case X is not unitary. So then we need to know what should be the character of X what is unitary? Unitary essentially means X dagger X is identity. So it is not of that character. So what is the character of the X such that the Mu prime set will become orthonormal. So to analyze that let us look at the overlap of 2 prime let us say Mu prime and Mu prime. So this should become delta Mu nu. So what I will do is to expand both left and the right hand side exactly like with this basis. However remember with this transformation remember Mu and Mu are fixed index so when I use transformation I must use different dummy indices. So that you just remember. So let us say for Mu I am using sigma or whatever lambda whatever lambda and another for sigma. So I have two transformations to make. So one is this one. So this will now become X so it is Mu. So remember this will be lambda. So it is X lambda Mu star the left side I am doing and here of course you have got A lambda then I will write the rest. Then I am expanding this side so this will now become nu this will become sigma. So X sigma nu A sigma is it clear? Do not get confused with Mu and nu. I used here Mu and nu but this nu can be sigma lambda anything depending on my requirement. Here of course I cannot use Mu and nu because these are my specific indices. So the Mu th one I am actually expanding by lambda. The dummy variable is lambda in this case. So it becomes X lambda Mu star so nu becomes lambda and A lambda goes here in the integration. Then this becomes now expansion of A nu prime. So actually here everything has to change. Mu has to become nu this nu has to become sigma. So this becomes X sigma nu A sigma. Just remember this is an expansion so these indices you have to understand the indices that is all. You can actually expand this. So this is the very important thing how to write this. Once you can write this correctly then everything will be okay. So you have to be very careful in writing this. So now I will do a transformation in the following manner. X lambda Mu star I am going to write as X dagger Mu lambda. It is a matrix. So note that the X dagger Mu lambda will be nothing but X lambda Mu star. Then this is going to become the original overlap matrix between the A which I have already defined as S. So this becomes S lambda sigma. This is already defined as a overlap matrix in the original basis. And then I write the next X sigma. Remember these are all numbers so I can turn them around any way I want. Remember what I am doing is I am not doing matrix changes. Under lambda and sigma these are numbers. So I am just rewriting this expression all over again. Then you can see now I have a matrix multiplication. This is a repeated index. So the whole thing can be written as X dagger S X Mu nu. You all agree? Now I do the matrix multiplication because I have been able to bring the indices in correct order. Please remember these are the little arithmetic that you have to keep doing in matrices. It is not very difficult. Now I can say the entire, now I do not need to write the summation. Please remember because summation has been hidden under multiplication. So if you expand this you will get this. Mu nu. This one my condition is that this should be delta Mu. Because I want this to be orthonormal. So this gives me a condition on X. I was looking for the condition on X. I said X is not unitary. So what is the condition that the X should satisfy such that the transformation of this basis which is a non orthonormal basis by the matrix A becomes orthonormal. So now I have got the condition. Quite clearly if X dagger S X Mu nu is delta Mu nu I can write that the X dagger S X is an identity matrix. With an identity matrix Mu nu at element is a delta Mu nu. So once I know that my X dagger S X must be identity matrix I must now choose an X which will do the job. And this is where there are several choices. So a popular choices, there are two popular choices. One is called the canonical, canonical choice. Another is called the Lafdins which is actually symmetric and we are going to use that. So that is very simple that you assume that X is nothing but S to the power minus half. Now you see if I just do a matrix X is matrix S to the power minus half. If I put it here quite clearly S is a Hermitian matrix. So X dagger is also Hermitian. So X dagger remains S to the minus half. This becomes S to the 1. This becomes S to the minus half. So overall it becomes S to the 0. So if I put this here then it is S to the minus half because X dagger is Hermitian S S to the minus half and that gives you S to the 0 which is identity. So essentially we need to choose a matrix such that it satisfies this. So obviously S to the minus half is Hermitian. So I can write X dagger as S to the minus half and then quite clearly this X satisfies my condition where it gives an identity minus half plus 1 minus half. Please remember it is not inverse. It is X dagger. So it is very important to understand because it is not unitary. And again I am repeating because many people who write both of them cannot be minus half. This will be plus half. So that is not true. That is only when it is unitary. So in fact, so X dagger is actually X Hermitian matrix in this case. Not unitary but Hermitian by my choice. But there can be other choices. So which I am not going to discuss. There is only one choice that I will discuss. I will probably mention another choice which is also very popular. But let us work with this X equal to X to the power minus half. And with this I can now orthonormalize this basis set. I can go from a basis A to a basis A prime. So that is so. Then we can now continue. So next my problem is of course how do I calculate S to the minus half? I hope all of you know how to calculate function of a matrix. I did that in previous class in 4 to 5 probably. I do not know if I have done it here. But it is good to remember that given any Hermitian matrix you can find a function of that matrix. So one way to do that. So if I have a let us say any A to the power n, do not multiply A many, many times. But diagonalize A that will be unitary transformation. So U dagger Au will become a diagonal A D let us say a diagonal matrix. Then you can write easily that U dagger A to the power n U is nothing but A D to the power n. And in general any U dagger function of A, U would be function of A D. So to calculate this function of A, now you do reverse transformation. U f of A D U dagger because U is unitary. So this will become identity, this will become identity you will have only f of A. The trick is that since A D is a diagonal to find A D to the power n is very simple. All you have to do is to make nth power of the diagonal elements and then you do back transformation. If it is a complicated function you just take that complicated function of the diagonal elements whatever that is very easy, a number. So for example if I have S to the minus half it is very difficult to do a matrix to the power minus half. How will you do matrix to the power minus half? But what you can do is to diagonalize this matrix, S matrix to get a diagonal S D and then take inverse of the diagonal matrix. That is very easy because all you take is inverse of the eigenvalues and then back transform. So calculation of X itself is a task. Remember there are many sub tasks that we are discussing. After I have now got X the task is to calculate X. But let us say that you know how to calculate X but that sub task now I am just writing a simple algorithm. Diagonalize S which means I know U and diagonal S which is eigenvalues matrix but diagonal. Then calculate S D to the power minus half that is cheap. A diagonal matrix to the inverse is very easy just take inverse of all the diagonal elements reconstruct. Then do a back transform U dagger that is your S to the power minus half. So this is a small task that you must allow the computer to perform to get X and remember this is very useful. Even if you are taking 100 power of a matrix that can be constructed as a function. Do not multiply the matrix 100 times. It is much easier to diagonalize this matrix once and then take 100 power of this function S to the power 100. Let us say that is very quick because it is only eigenvalues. 100 power of a number is very quick and then back transform. One more transformation. Only one. So I can give you a sine of A, cosine of A. Any power series like S to the minus half is a power series. You do not have to bother about this because since it is true for every power of n since the function can always be expanded in a power series it is true for in general for a function of A. So that is the whole argument. So after that you just apply this. So that makes it very nice idea again borrowing from something which mathematicians knew. Then take the inverse square root of sd and then back transform. So this is the basically the step and I have written it down. It is very simple. I have not written down calculate sd to the power minus half but that is obvious. That is a very obvious step to do that and that is the cheapest step diagonal element you can take any function and then of course back transform. This is called the back transform because you had U dagger on the left. Now U dagger comes on the right. So that is why I am calling it back transform and back transform essentially gives you this part out. So this is a small part that you have to do. I will not write s to the minus half anymore. I am going to write the equation now in terms of x. The reason is I can use some other x. Labdian orthogonalization is one choice but there may be some other x. So right now I will make it general. Whatever x I use remember x dagger sx must be identity. That is important. So this is something that we have to remember that that is a condition that x dagger x must be identity. So let me now say that I know this matrix x. So the point that I discussed right now is only to tell you that I know how to orthonormalize this. What is the x? Whatever is the x I have given you one choice. There can be other choices and there are many many choices you can discuss but that is not important. Most of the time the symmetric s to the minus half is used in most programs. So I just told you the most popular choice. So x dagger sx is identity matrix and then let us see what happens to this equation. That is my main concern. How do I solve the equation with this? So with after knowing this x which transform a to a prime basis I now want to define a few quantities. So for example I first want to go back to the equation sce. Remember this is of course a diagonal matrix which contains the orbital energies as in the diagonal elements that is something that I need to find out and I do not know the coefficients. I pre-multiply this matrix x with x dagger. So I write this equation as x dagger sce. So that is the first task I do. Now that I know x matrix I pre-multiply with x dagger. Then what I do is to insert here an identity in the following manner and insert here also. An identity in the following manner x dagger fx x inverse c. This is an identity xx inverse quite clearly because x is not unitary but xx inverse is always identity by definition. So there is one small assumption that this x whatever x I choose I have lots of x's to choose but this x must be non-singular. Even when I calculate s to the power minus half it is very clear that it may become singular under the condition if one of the eigenvalues of s becomes 0. Because remember when I am doing sd to the power minus half they are the eigenvalues of the s. I am diagonalizing s. I wrote in that sideline I diagonalizing s. See one of the eigenvalues becomes 0 then I cannot take inverse square root to the power minus half. So such a situation occurs provided the basis there is a dependence in the basis. So that means your basis has not been properly chosen then you have to go back and clean up your basis throw out the dependent terms and then come back. Now usually we know how to do this. Today's basis says we know how to do that. So I have started with this original equation which I have to solve pre-multiply by x dagger from the left. Then after between f and c and between s and c I have introduced an identity xx inverse. Then I define a new quantity x inverse c. So let us define x inverse c as c prime. Note that since x is a non-singular matrix x inverse exists. I can calculate x inverse and I can define a new coefficient matrix. Remember our c was a coefficient matrix which gave the molecular orbitals in terms of the atomic orbitals or a basis. Now I have a new transformation matrix. In fact very quickly you will see that this is the transformation matrix where the same molecular orbitals are expanded in terms of the prime basis c prime. So it is like I looked at the molecular orbitals in terms of the original atomic orbitals. So I had this coefficient which connects. Now I am looking at the same molecular orbitals in terms of the transformed basis a prime. The one that connects is c prime. So it is like looking at an object with a green specks, another same object with a yellow specks so that matrices become different which transform. So same molecular orbitals are transformed from a by c matrix and they will be transformed from a prime by c prime matrix. So that will be the essential argument of the c prime in the physical interpretation. But right now let me define c prime and define f prime as a new matrix x dagger fx which is very easy to do because as soon as I construct f I can always write x dagger fx because x is known, x is known. So I can do that. So I have defined this, I have defined a new matrix this. This is an identity by definition of x. So quite clearly I can now write an equation f prime, this is f prime, this is f prime, c prime, c prime, c prime, c prime, c prime equal to c prime e which just gives beautifully an Eigen value equation. So all the prime that I have written is the same equation projected in the prime basis. This equation is projected in the a basis, original basis, I have projected in the prime basis. So now I know how to write the equation. The problem is that I cannot have f. I have a projected f which is a prime. That is the only thing but that is not a big deal. All I need to do in my SCF step is to add one more step. When I construct x after that reconstruct a prime because x is known and note x, x has to be calculated only once. It is s to the minus half. So do it outside the iteration. Only once I have to calculate x. Then I do a prime and then I diagonalize. I will write down the entire step. Once I diagonalize I get c prime but then I do not know how to construct f prime from c prime but does not matter. I will go back to c by a reverse transformation. So c is x, c prime. Pre-multiply by x. So x x inverse identity. So c is x, c prime. Once I know c prime I reconstruct c, I reconstruct f because rather I reconstruct p first. Then reconstruct f. Go back to f prime, diagonalize, keep doing it. So I have just added a few more steps. I am going to write down the entire step now but I hope it is clear that I just go back to the orthonormal basis and then come back to my original non-orthonormal basis. Construct f because that is where my f is known. f is known in terms of the original basis. So I construct that then I again make my new f, re-diagonalize, get the new c, reconstruct the old c, old p, old f. Go back to the new basis f prime, diagonalize, keep doing it. You just have to remember the steps. It is very easy. I am going to write down the entire steps of course now but I am just explaining first. So once you do that, you get c prime. From c prime you get c which is x c prime and then once you have c construct p from the c and then eventually f and then back to f prime and then go back. If you write an expression of f prime with respect to c prime but then all these x dragors will anyway come. It is not a big deal. Same thing in a more complicated way. So I am basically dividing the steps. Computationally it is always better. Like if you multiply three matrices, you write two matrices first then multiply the third matrix. I hope all of you know this. Computationally you never multiply three matrices. You never write sum over lambda, sigma. Even this that I wrote once that I showed you something like x mu, I do not remember x, x, x mu sigma, x dagger mu sigma, s sigma mu whatever, x, x mu lambda whatever. You can write anything you want. So when you summing over, never sum all of them at a time. I write in algebra it is okay but when you sum, you sum these two then sum these. So bring only one index at a time summation index. I hope all of you know this is a very simple computer tricks that we always use. So one way to explain that is to make a generally three matrices. Let us say I am writing d equal to a b c. So your expression is d i j equal to sum over a i k, b k l, c l j sum over k l. Let us say it is m dimensional problem. If I start all the loops together when I write a computer program, for every i j I have a summation over k l. So for every i j how many steps I have to do apart from the multiplication? This multiplication has to be done m square times because k is 1 to m, l is also 1 to m and then I have to construct m square number of coefficients like that. So the entire process is called m to the power 4. I think you have to understand these nomenclatures. So it is m to the power 4 because to construct the entire matrix d, I have to do m to the power 4 steps. Within each step of course there is a multiplication but that is not bothered. On the other hand you can break it down. You can first construct a b. So if you do this a b multiplication, how many steps will be there by the same definition? m cube because you have only one summation in a b. Then multiply c. You will have another m cube but m cube plus m cube is much less than m to the power 4 because it is only 2 times m cube. So large m, it is much less than m to the power 4. So that is the strategy. So this becomes actually proportional to m cube, not m to the power 4. So by very simple trade you can bring down the computer time. So when you ask people to write computer program, that is the first thing I give. Multiply three matrices. Now those who have learned FORTRAN, they will first start doing du i equal to something, du j equal to something, du k equal to something, du l equal to something. Write it down. That is the easiest thing to write. d of i, j equal to a of i, k into b of k comma l. Oh, program is over. Bad program. Program is okay. It will give correct results. So you have to understand that is not the program you are looking for in high performance computing. But that is a good thing to start with. If even somebody can write that, I will be happy initially. Then you learn, why do you write? Then you learn that these matrices are sparse. Most of the elements are zero. So then how will you do it? I give you only the non-zero elements and they are indices. Now write down a program. That is much, much harder. You cannot have a loop drive. Du i, du j, that will not work. Random numbers are given which are only non-zeros whose indices are given to you, both for both a, b, c, for all three a, b, c or a, b, whatever. Multiply them. That is a harder problem. So I am trying to give to my students. They are struggling. So that is a harder problem actually to do. But then only you realize how to do because that is a sparse matrix. Most of the quantum chemistry matrices are sparse. So you do not unnecessarily multiply zero times something. Just to get zero you do not do work. When you know it is zero. Any one of them is zero is going to zero, become zero. So you do not even go through that. But that is a second level of problem. But initially remember that the multiplication itself is a challenging task. So what you are telling is essentially I can do that but all these multiplications will be involved. So better to break it down. So then each time we go into the loop we have to also find an exit now when it has converged. Now I have been discussing that. Quite clearly a convergence test can be done directly with the c in the coefficients of converged or conversely if density matrix has converged. So I construct the density matrix. I can directly write density matrix. So one of the ways to do that is to construct the density matrix at the nth iteration is nth iteration mu nu. Compare with the earlier iteration mu nu right mod square sum over all mu common. Element by element you compare with the mod square. Why mod square is important? That makes it positive. That is important because otherwise you may get zero because one element is highly positive different another is negative but all both of them are wrong. They have to actually converge the right value. So take mod square. This number should be less than some delta or epsilon. Delta is a very small quantity. If this is so then it is converged. So that is my exit policy. So then I will exit from Hartree Fog. That means I am satisfied. Now your Hartree Fog is as accurate as your delta. Of course if you put a very high delta then you will exit very quickly and somebody will put a very low delta you get a better Hartree Fog. Now typically these numbers are 10 to the minus 7, 10 to the minus 8, 10 to the minus 9 you know typically but you know this can you have to be very careful when you write a Hartree Fog program. Many times your program has more or less converged. This has come up to 10 to the minus 7 but you have put a delta which is 10 to the minus 12. It will never come that low. So program is running stupidly and finally it will say after 200 iterations it has not converged. But actually it is almost converged. Numerically you never get 0. Remember numerically so it is because you are not paying attention and unfortunately many people do that in the old days when they used to give input. Today of course your can programs like Gaussian takes care. It is quite intelligent so it sets everything and it will even tell you if it has not converged why it has not converged reset the delta in this manner and then do it but that is not good you know you should people should learn on their own why it is happening look at the output those skills are unfortunately vanishing very few people have in in you know we are learning program there is no other option we have to make it converge so at first understand why is it not converging if it is going down and down but it is not reached 10 to the minus 11 it is it 10 to the minus 10 in 200 iteration we will take another 50 iteration to reach 10 to the minus 11 is not important that's an acceptable value in terms of number of digits you can stop it okay so that is a kind of judgment that you have to make computer will of course print that it has not converge that's what you have asked it to print okay because you have given the delta if it has not reached you will not it will say not convert and then you go and report your supervisor no no no the SCF is not working it is not converge so that's very bad you know that is where I expect all students to look at it why it has not converge so look at the output of a program very carefully and then you yourself can change it many times you don't have to bother and the and in the same thing will happen for geometry optimization many many things it is this is only a safe optimization any iterative steps this will happen so this is my convergence test okay so if I understand the convergence test I can now write down the all the steps in a in a in a way that will that will give you the Hartree-Pock program and that is what is done in all the program except the one thing that I have not discussed is how to even choose the original basis a the basis of atomic orbitals I'll come down come back later so let's say that I know how to choose it so right for so the initial thing is of course the step one is to choose your geometry because everything is born open hammer approximation so it's a BO so I'm going to define my born open hammer electronic Hamiltonian by choosing the geometry which essentially means choose the nuclear coordinates there's nothing else about geometry where the nuclear are once I do that my second point is to choose the basis in that geometry choose my MU then calculate the 1 and 2 electron integrals I hope all of you know what is 1 and 2 electron by now everything in atomic orbital basis so there is no molecular orbitals molecular orbitals will come in terms of the coefficients and in terms of the P matrix so it's all going to be hidden there so calculate 1 and 2 electron integrals in AO basis this atomic orbital basis and then guess P in atomic orbit and now usually you will say I have no clue now to the coefficients how do I guess one of the guess could be make it 0 which means f will be nothing but h code mu to start with okay so then you construct f whatever is your guess construct f note that now f is available in terms of P already I have given the expression so construct f once I construct f now I come to the safe equation so now I know what I have to do I have already told you that I must construct x first so I have to add steps here when I say calculate 1 and 2 electron integrals the 1 electron integrals also involve x s overlap matrix so calculate 1 and 2 electron integrals and x whatever be that x be okay so this requires some step because you have s remember overlap integral is also a 1 electron integral just like h code so all 1 and 2 electron integrals s but if you want to write this you can write separately that even here I can write calculate overlap s and x which means s to the power minus of okay and calculate rest of them if I do that then I don't have to write this I can make this step 3 you know that's my choice I can make this step 4 step 5 step 6 that's any unimportant what is the number once I have done this now construct f prime which is x dagger f x now I know x I know f construct this and then diagonalize I will only say diagonalize if I diagonalize f prime my output is c prime eigenvectors so when I diagonalize I get eigenvalue c prime and e so when I diagonalize f prime I get c prime with that c prime I construct c so diagonalize f prime the output is c prime and of course e but e is not important at this stage I am going to look at e only when it is converged I reconstruct c back I look at the MO in the old basis and then construct p again because if I c has changed then p must change correct then the step 11 is to subject it to the convergence test now convergence test because I have constructed p here which is my guess okay later on it will be constructed and I have constructed p so compare between the earlier and this iteration so basically I will just say do a convergence test then if it is successful of course it will never be successful after first iteration but I am generally writing exit and then print all the things once you exit you had e everything now all the outputs you print coefficient everything if not which is of course initially that's what is going to happen you have to now go back to I have got my p so go back to step c six okay step six is now construction of f again reconstruct a prime again diagonalize reconstruct c reconstruct p again do a convergence test if successful this is my exit remember other loop will continue if not go to step six there is another way you have exit that is if your number of times you do that is more than 100 more than 200 exit which is what I just now said and then if computer just means oh I failed you know I did a lot of hard work I couldn't hundred means I have done a lot of hard work okay but you know I'm not writing that part but eventually you know I failed okay so which could be for many many reasons so you go to step six and of course continue continue again you come to step 12 this more or less now summarizes the entire scf state and as if you understand you know how to write program you would actually be able to write an algorithm at least if not program in a flow chart I mean those who have done done little bit of programming there's something called flow chart you do these box how to do each of them is a different matter and it becomes complete thing however we have to come back and discuss this this is very important how do I choose I have left it right now blank so I but today I thought I will discuss with you this part is very very important to remember please also look at this projection operator it is very important to look at this sorry this charge density bond order it's not a projection operator charge density bond order which I had written down a sum over i equal to 1 to n by 2 2 c mu i star sorry 2 c mu c mu i star okay just just reflect on this matrix I am going to come back in the next class to discuss properties of the charge density bond order matrix which I have just written but there are some interesting properties that I will look at question is that is it an idempotent matrix there are lots of questions we will do I already was telling that is it a projection operator okay so you have to see it's a matrix however these two are vectors in fact in a matrix form you can write this as 2 c c dagger we will see how to look at that as I think it looks obvious the way I have written p mu nu because you have to sum the sum now is over the molecular orbital so that is why this is a very interesting matrix because here the coefficient would be 2 c mu the second index is a molecular orbital c is the only one which is the connection with the atomic and molecular orbital remember so that's a very interesting thing 2 c mu i c dagger i nu which is c nu i star so if you see this matrix is actually 2 c c dagger and we can look at whether it is whether it is idempotent or not so if you do p square what will you get you will get 4 c c dagger c c dagger clearly it is not idempotent it is clearly not an idempotent matrix so what is the properties of the matrix I will come back and discuss about p very interesting matrix right now I have left it as just a mathematics construct because this is there will lot of there will be a lot of interpretation of this matrix because this is where I said physically mullican analysis is bond order lot of things will go so we will have to explain that so we will come back to that but please go through these steps if you have any doubt because this is something again not very typical it is not taught most of the classes and we will also discuss later any other ways of going x but that's not important I think we will stick to mostly s to the minus up and remember how do you construct x that is very important s to the minus half diagonalize s so that's another step here so you can keep on building more and more steps that's of course 100 steps you can build each has a sub task so you have to diagonalize s then you can say that get unitary transformation do sd to the power minus half back transform so each step has many many sub tasks so that number of steps you can write as many as you want to write okay but I mean that I think matters should be very clear that each of them is a sub task and you know you know this is something where you can actually start programming you start writing F so you become boss you know after some time so you can break down and give and give it to the students and then start assembling programming is very important after that it assemble all the modules and of course they have to have similar symbols these all that but I think the reason I'm writing it down that this can actually be a step to program apart from just knowing the theory you can actually look at all the steps total SCF these programs are also available on parallel machine today that means many processors are run together but if you are do only on single processor okay sequential codes hundred bases it in a good Intel you know depends on what is your CPU top of the line CPU you know this very complicated question loaded questions it may not even take one minute then what do you mean run the code write the code that depends on you that completely depends on you right per atom today we use maybe 25 30 35 depends on what if it's a heavy atom or even more that we discuss when you discuss the basis how to choose them okay but yeah writing the code how long time it takes it depends writing does not take time the debugging text for sure if you are going to write a code is not going to give results you can I can you can try a simple matrix multiplication it doesn't give you results in the big I don't know how many of written you will get something zero because something is not defined so that's another issue program writing I don't want to convert this into writing program in fact I was very tempted to take a course on computer programming actually in chemistry but there is no course actually you know it is so complicated yeah but where which core number you tell me the number 504 504 485 is that right so nobody takes it now who is taking it so it is taught these are taught these are taught no I mean basic for yeah but if you if you know then you should be able to write some of this but as I told you even to construct this you have to be careful x dagger fx is again construction f prime mu nu x dagger mu sigma f sigma lambda x lambda nu right again 3 multiplication you have to do break it up to 2 so every step you have to be very careful okay so I just want to tell you that I if you expand every step now you can see that there are so many things to do that's why it's like every step can be a small computer problem msc student one almost each step you know if somebody has to just construct s and then get x that itself is a good project you have to diagonalize back transform do sdm to the power minus or back transform construct x is not going to be easy yeah you think it is easy you try it as a project okay I will give you overlap matrices you try and if you have to construct the overlap matrix okay it will take you 1 or 2 years from the basis because you have to understand how to write in terms of Gaussian these that's far more complicated okay all right so that's I think we will close here