 So, what we will do is, we have derived one dimensional equations, Euler equations, right. And we have seen that it is possible to diagonalize the flux Jacobian matrix and thereby decoupling the system of equations, right. That is where we are. I was sort of deliberately loose when I was talking about how we go about diagonalizing the matrix. Today, maybe we will actually derive, right. It may get a little dreary, but I want you to know that these are not things that you flip open books and just check them, whatever is in the book you take it for granted. You should be able to do these things and you should be able to cross check whether the book has the data put in or the expressions put in, right. Or in case you go on for, you encounter a problem later on in your career where the equation is not something that is sort of a standard text, right, that you know the process, you know how to go about deriving. So, what we will do today is, we will actually look at, I will actually derive the eigenvalues and show you, get the matrix, right. So, if you get a little tired, please bear with me, right. As I said, these are things that one has to, one should be there. Otherwise, the easiest thing for me is to come each time with a little cheat sheet saying that, well, these are the entries, right. I do it, you take it down. But at some point, you have to see that it can be done, right. For the flux Jacobians itself, I hope you have tried out evaluating the flux Jacobian, the expression. It is a good idea. It is a good exercise. You should actually do it. I mean, it is calculus. But you should actually do it to make sure that everything is clear and that there are no issues, okay. So, first let me get the, what was that? Let me get the expression right the way I want to do it. It is sort of set it up last class. And then we will derive the eigenvalues. We have already derived the eigenvalues. I will derive the corresponding eigenvectors. I will leave one part to you, okay, right. So, what did we say at the general problem? We are looking at in the non-conservative form. But in terms of the conservative variables, this is the equation that we looked at. And we asked ourselves the question, when can I, right, how do I go about getting the diagonal form of this matrix A? And you do what is known as a similarity transform. So, if you get the matrix of eigenvectors and this is what I had written last time, you get the matrix of eigenvectors. This is the matrix of eigenvectors. This quantity here is the matrix of eigenvectors. Lambda is the matrix of eigenvalues along the diagonals. It is very clear that, oops, I am sorry. It is very clear that if I pre-multiply this by x inverse, it is very clear that I will get x inverse A x equals x inverse x lambda, which equals lambda, right, okay. Because sometimes, just like I did the FTCS first and it did not work, you know, there are certain things, if you look at the course, the way we have done it so far, okay. Just to give you an idea, there is an underlying philosophy that I have here. So, initially we did finite differences, right, representation and so on. And then we just did Laplace's equation. No analysis. We just jumped and it worked, right. But by the time we came to FTCS, I of course deliberately chose FTCS because I know it would not work, right. We did a little analysis. Now, if you notice, we have come to a point, once we are talking about this 1D flow, I have not said anything about computing yet. We are only doing the analysis. You should get used to this, right. So, before you jump, that is, oh, I have the equations, let me start solving it. You should sit down, try to sort of digest what is happening, what is the scheme, what are the features, what is likely to happen, what is likely behavior. It is a good idea to do it, right. So, you do not waste your time doing some kind of useless computation or whatever. It limits the amount of time that you waste and you get a better understanding, which is why we are going through this process. So, as you will notice that as we have gone along, we are spending more and more time before we get to computation, right, okay. So, what does this mean? That means that in reality, as opposed to what I had written in the last class, in reality what I want to do is I want to pre-multiply this by x inverse, the way I have written this. So, there has to be a connection between the two. That is the point that I am trying to make. It is not enough just to put down the expressions. So, I really want to pre-multiply this equation by x inverse, right. I want to pre-multiply this equation by x inverse. So, that, okay. It is not that what I have written in the last class is wrong. It is just that rotational consistency is important, okay. So, that you get dou q carrot dou t plus lambda dou q carrot dou x equals 0. Correspondingly, for a tilde, there is an a tilde x tilde equals x tilde lambda because a tilde and a are related through a similarity transformation. The lambdas are the same but the eigenvectors need not be the same. That you will verify, right. What I will do is I will find the eigenvectors for the matrix A. That is what I will do today. I would suggest that you make sure that you are able to find the eigenvectors for matrix. I will find it for a tilde. You make sure you are able to do it for A, okay, fine. I was exactly in the place that you are right now when I was taking this course and I did not make sure and I found out in my quiz that I had a difficulty. So, I do not want you to be in that situation. So, make sure that you are able to, right, make sure that you are able to find the, fine, okay. So, what do we have here? So, corresponding to this, if I pre-multiply by x tilde inverse, I have x tilde A x tilde equals lambda, okay, fine. So, what we will do is we will find and of course, just for completion. So, if I were to multiply, oops, I am sorry, not this. If I were to take this dou q tilde dou t plus A tilde dou q tilde dou x equals 0, 1D Euler equations written in non-conservative form in terms of non-conservative variables, okay. Variables are rho u and p. If I were to multiply this by x tilde inverse, I would again get dou q carrot by dou t, which is the same equation, plus lambda dou q carrot by dou x equals 0, the same equation, okay. We are transforming the dependent variable, transforming the dependent variable. Let us find, so the eigenvalues of A tilde or A, we will find the eigenvectors A tilde has eigenvalues, I will just put A tilde has eigenvalues u, u plus A, u minus A, okay. And what was A tilde? You remember? A tilde has a relatively simple matrix. Do you remember? u rho 0 u 1 by rho 0 gamma p u. Actually, this matrix, I really do not have a sort of a difficulty remembering it because I know it is used along the diagonals and I remember the gamma p by rho. That is here and there is a rho there, you understand what I am saying, right. So this matrix, I do not have as much difficulty remembering, okay fine, that does not matter. So now we need the, what do we want? How do you get the eigenvectors, eigenvectors satisfy the equation? So let us find the eigenvector corresponding to u, okay. So eigenvectors satisfy the equation. So I will have the characteristic equation. It is going to be u minus lambda rho 0 0 u minus lambda 1 by rho 0 gamma p u minus lambda acting on x 1, x 2, x 3, right. I should really have tilde's here. Do not hold me to it if I forget the tilde's but anyway, this equals the 0 vector, right. So if lambda is u, this gives me 0 rho 0 0 0 1 by rho 0 gamma p 0. This is the system of equations on x 1 tilde, x 2 tilde, x 3 tilde equals 0. And the corresponding equations are, if I just write it out, what is the first equation? Rho times x 2 tilde equals 0. That is nice. So x 2 tilde is 0. Then x 3 tilde is 0. So this is an easy one, right. x 3 tilde is 0. So of course it gives you, if you would really take maybe x 1, x 2, x 3, x 1, 0, 0 or whatever. So basically the first eigenvector is 1, 0, 0, fine. What about the next one? Minus c rho 0 0 minus c 1 by rho 0 gamma p minus c x 1 tilde x 2 tilde x 3 tilde equals 0. So what does this give you? Minus c x 1 u plus, sorry. Thank you very much. Yeah. So it is very clear that sometimes I use c, sometimes I use a. Thank you. Sometimes because I do not want confusion between this and the dou u dou t plus a dou u dou x I sometimes switch to c. It is okay. It is fine. In my book in fact I think I use c. It does not matter. As long as we are consistent notationally it is good. Thank you. But it is important, right. Minus a x 1 plus rho x 2 equals 0 minus a x 2 plus x 3 tilde by rho equals 0 and the last one is gamma p x 2 minus a x 3 tilde equals 0. Suggestions? We can solve in terms of x 1, right. This is basically what you do. So x 2 is a by rho x 1 and x 3 is a squared x 1 by, is that right? Or just a squared, a squared, fine. So the second vector therefore, so there are different ways to do it. You can make it orthonormal. You will see that the x 1 will go away or you can set x 1 equals 1. There are some people who basically say why go through this headache, make the first element entry 1 anyway, right. There are different paths that you can follow. I am not sure what you are familiar with, okay. So we will just right now say, okay, factor out x 1 or whatever. The second one is 1 a by rho a squared. Can you tell me what is the last one? a rho 0 0 a 1 by rho 0 gamma p a x 1 tilde x 2 tilde x 3 tilde equals 0 0 0, right. All that has happened is some signs are flipped. This corresponds to a x 1 tilde plus rho x 2 tilde equals 0, a x 2 tilde plus x 3 tilde by rho equals 0 and gamma p x 2 tilde plus a x 3 tilde equals 0. Again you can say x 2 is minus a by rho and x 3 tilde is a squared a squared 1 minus a by rho a squared. So this is x tilde, it is x tilde, okay. So instead of just saying oh x tilde is the matrix of whatever I wanted you to see that is x tilde. What is x tilde inverse? I promised you it will be a little dreary, so just bear with me. What is x tilde inverse? The different ways to do it I prefer to solve a system of equations especially when it is 3 by 3 that way I know I am not going to make any mistakes. So x tilde inverse basically I have, what do I have? 1 0 0 1 a by rho a squared 1 minus a by rho a squared, right. This is for the inverse now, this is for the inverse now. I am just going to call them x 1, x 2, x 3, right. x 1, x 2, x 3, I want to find these entries. Effectively I am going to take columns from the identity matrix. So this is going to be 1 0 0, fine. So the first equation is x 1 plus x 2 plus x 3 equals 1, nice. Second equation is a by rho x 2 minus a by rho x 3 equals 0. The third equation is a squared x 2 plus a squared x 3 equals 0, fine. What does this tell you? x 2 and x 3 are 0, right. x 2 and x 3 are 0 and x 1 of course will be 1, right. So in the inverse, in the inverse where shall I write this? I will write this somewhere here. In the inverse I am going to have 1 0 0 as one of the vectors, okay. What is the next one? We find the entries for the next one by making this 0 1 0, the second column of the identity matrix, right. In which case that becomes 0, that becomes 1, that becomes 0, right. I will wait for you to catch up. It is easier for me to do this, right. So what does this tell me? x 1 is 0, x 2 plus x 3 is 0. You substitute it there, x 1 equals 0. That is one thing that we get here. x 2 equals x 3, x 2 equals rho by 2 a and x 3 equals minus rho by 2 a, is that right? So then I have x 2 equals rho rho by 2 a minus rho by 2 a. In the last one, I will have to keep an eagle eye on me. I may make a mistake here. So 0 1, what is it going to give me? 0 1 by 2 a squared, 1 by 2 a squared. Is that fine? Because x 2 plus x 3 is 1 by x 2 plus x 3, x 2 plus x 3 is 1 by a squared, right. So x 1 has to have 1 minus 1 by a squared, okay. What about the others? 1 by 2 a squared, 1 by 2 a squared. What is this? This is x tilde inverse, okay. So what we can do is, we can use that. You can verify, right. So even though all of this looks good, you know, you should always check. So once I, the first time I derived this, I sat down, I made sure x x inverse was identity matrix. I make sure that x, I made, I verified. See there are, there are, remember, this is a very critical part of any derivation that you do. You make a sanity check on the results that you get, that you make sure that these actually do give you the eigenvalues. And this is an interesting exercise because there should be a relationship between how we stack the eigenvectors and how the eigenvalues come out, okay. So you should go through this process just to make sure that you understand what it is that, what is actually happening, okay. Because as I said, it is easy to just manipulate the chalk just saying that oh, I multiply by x inverse, right, and I should get lambda. Check it out, that is a matrix. And there is a critical component, you know, there are small connections that you will make if you actually do this. But it is a good idea always, anytime you do a derivation like this, it is always a good idea before you proceed, start coding and all of that stuff to make sure that what you have got is, right, right. So it is supposed to be inverse, check that it is the inverse. It is supposed to make this diagonal, check that it makes a diagonal, right, okay. Just to be sure, then you can go on, fine, okay. So what was the deal? What we basically got was, what we basically got was if we were to multiply this, if you were to multiply, so the equation, dou q tilde equation is dou by dou t of rho u p plus a tilde dou rho u p dou x equals 0. So if you were to pre-multiply this whole equation by x inverse, right, it is supposed to diagonalize, right. So if you were to pre-multiply this equation by x inverse, what you are going to get here, what you are going to get here, this corresponds to, if I want to do it in terms of differentials, right, what I am basically saying is dq tilde, if I pre-multiply it by x inverse tilde, it is going to give me dq carrot, okay. And this equation should then reduce to, this equation that should then reduce to, if I were to do that, this equation will then reduce to some form. That is like, I am going to do that there, so I will write it here, dou q1 hat dou t plus u times dou q1 hat dou x equals 0, okay. Dou q2 hat dou t plus u plus c times dou q2 hat dou x equals 0 and this is what I meant, how do I know it is u plus c? Because the second eigenvalue I substituted to get the eigenvector was u plus c, right, so there will be a relationship between all of them. And the last one will be dou q3 hat dou t plus u minus c dou q3 hat dou x equals 0. So these are the three equations that we expect to get, okay. Looking at this, looking at this, what is x1, x inverse dq? So that is this matrix that I have here, 1, 0 minus 1 by a square, 0 rho by 2a, 1 by 2a square, 0 minus rho by 2a, 1 by 2a square acting on d rho du dp. Is that fine? And what will that give me? It says d rho minus dp by a square is dq1 hat. They get that right? What is the second equation? Rho by 2a du plus dp into divided by 2a square equals dq2 hat and the last one minus rho by 2a du plus dp by 2a square equals dq3 hat. And it is possible that we are able to, it is possible that we are able to integrate these equations and find q1 hat, q2 hat, what they correspond to. Of course, what we know is along this, look at this one equation, right? Nothing back to the wave equation. Forget this equation. What does this equation say about q1 hat? So it says on the xt plane, if you have at a point, right? If you have a value u, you take a slope, a line whose slope is 1 over u basically, right? And along this line, this characteristic, q1 hat is a constant, right? q1 hat is a constant because the right hand side happens to be 0. Remember, this characteristic equation is very strange. If there was a source term, then q1 hat will actually change, right? You would have to integrate along that, fine? Okay. So q1 hat equals 0 along this. That means along this line, dq1 is 0. Along this line, dq1 is 0. Along that line, along the characteristic, along, I will just say characteristic, d rho minus dp by a squared equals 0, right? dp by d rho is a squared. That is the definition, dp by d rho equals a squared. When is the dp by d rho equals a squared? On a p rho curve, right? If I draw a path and say I define dp by d rho on that curve, there is a particular curve where it is equal to a squared, right? That is on the isentropic, okay, right? So this basically says that since dp by d rho is a squared, this sells us that entropy is constant along that line. dq is constant along that line. It is almost as though the entropy is being propagated along that line. So if you had different values of entropy at different points along this line, entropy is constant. Is that fine? Okay. Now integration of this, I do not know whether you have seen all of this in gas dynamics. Have you done this? So you have done this in gas dynamics. That is fine, okay. So you can assume the flow is homentropic and so on and then there are ways by which you can integrate, right? Maybe so. I will just write the typical characteristics that you get are you remember? u plus, you can just check 2a by gamma minus 1 and u minus 2a by gamma minus 1. You can just go back and check, right? I am just writing this from memory. You can just go back and check, right? You may have seen this in your gas dynamics class, right? That comes from assuming it is homentropic. If it is homentropic, then p is like rho power gamma and a is like rho power gamma minus 1 by 2, okay. I am sort of doing the calculation in my head, fine? Square root of, right? And things of that sort. You can work it out. You can actually go back. I am sure you have done it in gas dynamics. You can derive these expressions, right? But we have made an assumption. Beyond this, I made an assumption that the flow is homentropic, right? It is not just constant along this line. It is constant everywhere. That is a strong assumption, right? It may be valid for a lot of time but it is a strong assumption from where we stand. Is that fine? Okay. Normally, as I indicated in the last class, normally if you say that you have differentials related in this fashion and you want to perform an integration and you want to find q-carat, right? Normally, this works only if the curl of this vector, column vectors is 0, okay. So normally, you would want curl of x inverse to be 0 in order to be able to invert it, fine? Right? But that, we would not go there. So if you were to encounter, if you were to encounter a general problem, you may not always be, even here I had to make assumptions that the flow is homentropic. It is not, it may not be always a, you may get an integral that you are not able to evaluate. That is one thing. The other thing, it may not even be integrable, right? Just because you have a velocity field does not mean that the potential exists. So there is a constraint on the velocity field, right? There is a constraint on the velocity field so that you are able to obtain the potential. So in a similar fashion, it is possible that you can integrate. It may not be integrable. Is that fine? Okay, right? We have now, we have set up, we are able to get this. We know we can get the characteristic form. If you were to solve the equations actually in characteristic form, of course we do not know, we do not always know q1 hat, q2 hat, q3 hat. We may not be able to find it. The flow may not be homentropic, right? So, but if you were to do it in terms of q1 hat, q2 hat, q3 hat, you would then be solving what we normally call the method of characteristics. We would be using the method of characteristics, right? That is basically it. You are not always viable, especially if you go to multiple dimensions. So now let us see how would you actually solve this? How would we actually solve this equation? And what I am going to suggest is, I am going to suggest that before you start coding, maybe this suggestion I could have made earlier so that you would have started doing this. Before you start coding, there are certain functions that you should start to implement before you even start coding, right? So before I tell you how we are going to go about solving this, there are certain functions that you should implement. These are base functions that you will need whatever solver you are writing, right? So the idea is that you write simple functions that will do one thing, right? And I will tell you each of those one thing, what each function does. And you test the function, okay, to make sure that it is doing what it is supposed to do, right? And once you have tested it, you can set it aside saying, okay, this works, fine? So if you have a collection of functions, base functions that you require for most solvers and you have tested them, you are confident, then it is a matter of implementing the solver. Of course, there may be other headaches that come then but at least you are not worried about the base functions being right or wrong, okay. You get what I am saying, right? So that ensures a certain degree of success, right? It guarantees at some level a certain degree of success. So before I get to the solver, I would suggest you first implement allocation of arrays. What do I mean by that depending on the language that you are using, whether you are using Fortran, C, C++, whatever, you make sure that you are able to allocate queues, you are able to create an array of queues, right? Remember queues itself has 3 quantities, right? So it is not just a trivial thing, right? So if you have done it, you are into programming in a big time, this may be nothing for you. But I would still suggest that you do it, right? Allocate queue, allocate queue tilde, allocate E. These days, we are not worried that much about memory. So I will just tell you all the things for the one-dimensional thing that you can allocate. You will worry about memory and you know how much memory it takes when you get to multi-dimensional flows which is not part of this course anyway, right? A, if you want A tilde, X, X inverse, right? Very often what we do is we calculate them as required but first you allocate, make sure that you are able to do this. So at any point along the way, it is not that you actually create it but you have functions that will do this, right? So you will have a function that allocates queue, allocate queue, right? Allocate queue tilde. So it will give you, you will have something that will actually do it. I am not saying write one big function that does all of these, right? I want functions that can create arrays of, am I making sense, okay, fine? So in Fortran for instance if you wanted 11 grid points and you wanted to allocate queue then it would be an array that has 11 by 3, right? And see it may be depending on you may have a struct or in C++ you may have a class that has these 3 elements that has other behavior and then you would allocate 11 of them. Am I making sense? That is how you would go about doing it and that would be queue alone and then you do similar things for queue tilde and so on. Is that fine? Okay, right? Now you write other functions. Given queue find queue tilde, right? Because you have rho, rho u, rho e t, I mean very often we are not really interested in rho u and rho e t. We are interested in the speed, we are interested in the pressure distribution, right? Normally that is the kind of thing that we are looking at. So given queue finding queue tilde, your input to the program may also be in terms of queue tilde but you may be solving it in terms of queue, right? So you have to write another function given queue tilde finds queue. If you are keen you can also find queue carrot I leave that up to you, right? If you are keen, if you feel like it you can implement queue carrot. What else? Given queue find e, right? So you have individual ones given queue find a, you may see repetitive calculations and so on but you are in the process of developing code. Please do not take shortcuts. Please do not try to optimize your code, right? Your objective always is to get every bit of your code functionally correct. It functions properly. Then we can worry about the optimization, okay? Find a tilde or if you want queue tilde find a tilde either way. I leave that up to you, make a decision, make a decision and what else? You obviously have these given queue find x, given queue find x inverse, fine? So what have we, where are we right now? You are able to allocate the memory. You have individual functions that do that and given any of these quantities you are able to populate those arrays. You understand what I am saying? So as an initial condition if you are given queue tilde you can find the queue and from the queues you can then find all of them. You can populate all of them. Now you have a set, right? At this point you are set. You have the array of, right? Okay? You may find for instance if you are doing FTCS that you need two areas of queue because you have the current time step and you have the next time step. These things you can handle as you go along because it depends on how we are going to, what is the actual, this is the base. This you require. So any one-dimensional solver I would expect will require this. Any one-dimensional solver I would expect will require this. You may, there are auxiliary functions that we require. Now I just remembered because remember we had a stability condition. Stability condition required that we needed to find propagation speeds. So maybe we need to find not just this but even the eigenvalues. So given the queue find U, U plus A, U minus A, okay? Right? Good. We are now, we are now set. Given that we will do FTCS again. I mean I know it is not supposed to work but we will do FTCS again, right? Okay? We have dou q dou t plus and there is a reason why I am writing this, right? It is dou E dou x equals 0. So the first thing that I want you to notice is I am writing it in the conservative form. The A dou q dou x first for the analysis, right? I am not going to use the A dou q dou x form. I could also write this as dou q dou t plus A dou q dou x equals 0. They are mathematically identical, right? But this just involves a lot of computation. It involves finding A, right? Though I said you have all those functions, you can choose not to allocate A and you can choose not to find A, okay? This involves finding A. This does not. So if I do not have to do this, I am not going to do it. We wanted that A form because we had done dou U dou t plus A dou U dou x equals 0 and we said, oh, I have done all that stability analysis for it. I want to get it in that form. That is why we struggled with this, to get it in that form because that stability analysis, all of that stuff will carry. Am I making sense? So what do we have here? How am I going to do FTCS here? So I say q p time level q plus 1 equals q at p time level q minus delta t by 2 delta x e p plus 1 q minus e p minus 1 q, fine? Is that clear? So from the scheme that we have talked about, you can allocate the q's. You know the q at the current time. Given the q, you can find the ease. You know the ease at the current time. You can find this difference. Therefore, you can find the q at the new time step, fine? We are set, right? Do you think this will be unstable? Is this going to be unstable? For wave equation, it was unconditionally unstable. Do you expect this to be unconditionally unstable? How can we find out? Is there a way for us to find out? What do you say? There must be some way for us to do the analysis. So we can see whether we have choice. We can see whether we do the analysis now or not. I want you to verify something. I want you to, okay. So we will, the analysis part itself, it will turn out that yes, this is indeed unstable, okay. So we, but we will show it, okay. But I want you to find, I want you to evaluate. I have, we have derived or I hope you have derived. I have given you the flux Jacobian A. I want you to evaluate what is A times q, right? You have the vector q. You have the vector A. Euler equations, you know, there are lots of nice things that happen with Euler equations. There are a lot of beautiful symmetries and so on. So I want you to, I want you to just try this out. See, find out A times q and see what you get, okay, right? And maybe in the next class, we will come back and see whether we are able to do a stability analysis for this. You are of course in a position now to actually implement this stuff. But as I said before you do this, please, please make sure that you implement all those functions and test each one of those functions, okay. Test each one of those functions. So I would normally when I say test each one of those functions I would say rho is 1, u is 100, p is 10 power 5, right. Then you know what should be the values of rho, rho u, rho e, rho e t. So I would check the individual functions to make sure that they are giving you the, okay. So test each one of them. Make sure they are functionally correct, right, okay. So we are set. If this was stable, we just march in, march in time, right. If this was stable, we just march in time. Is there anything we have to worry about? End points, boundary conditions, end points, boundary conditions. So we have to worry about how we are going to apply boundary conditions. Just like we did for FTCS in the wave equation case, you have to worry about what happens to the boundary conditions. So before I start talking boundary conditions, see all of this time I managed to carry you guys, right, all this time without actually talking about a specific problem. I have just been writing equations, right. At some point I had to say what is the problem that we are going to solve? I even written a discretization. But when we come to boundary conditions, I have no choice. Now I have to come out and say this is the problem that we are going to actually solve, right. So it is a problem from gas dynamics. So the typical gas dynamics problem would be I draw two vertical lines indicating a huge, enormous reservoir, right, enormous reservoir. We can decide where we want to put the valve. I will put the valve here. I will put a valve there. And I sort of tied myself into a corner because I am taking one-dimensional flow, right. So I cannot, I do not have area variations, right. At the end of all this analysis we will say, okay, let us do, let us look at the quasi-one-dimensional equations and they are not that different from here. They are a little more interesting because you at least have area variations. Here you have no area variations at all, right. So the length of this is L. It will take unit length if you want. So in this reservoir, now I want you to think about the experiments if you have done an experiment in, right, gas dynamics lab or something of that sort. So what are the conditions that you normally know in the reservoir? You know the, you know the total, you know the conditions, stagnation conditions, the total pressure and total temperature. So you will know T sub 0, that is the total pressure and T sub 0, that is the total temperature. Anything else? Not much, not really much else, okay. What about the right-hand side? What do you know? You know the ambient pressure. So you say I have a pressure vessel that is at 5 atmospheres or 3 atmospheres or 6 atmospheres or whatever. There is a little pipe coming out of it and there is a valve. That is what I have drawn. And if you open the valve, the gas from that chamber is going to exhaust through that pipe and come into the atmosphere. The conditions here are P ambient or P atmospheric. Can we prescribe anything else? You could in theory measure the, you could in theory measure the temperature in the lab, right. In theory, you could measure whether I do not know from your gas dynamics, you should realize that this is basically all that you will have, right. You could measure the T ambient. What else can you measure? That is it, we are stuck. Now you just have to open the valve and let it run. So you open the valve and the gas starts to pour out. There is an initial transient and then it settles down, fine. And there is a flow field that is set up. We are interested in that steady state flow field, right. Now we are not going to look at the transient. We are interested in that steady state flow field. What is that steady state flow field that we get? Okay. So if this length L, I break it down using numerous grid points, right. So if I am going to, this is a time level Q. Of course at time level Q plus 1, I have an equivalent. So I can at time level Q plus 1, I have equivalent points. And we know that the FTCS stencil looks like that. Those are the points that are involved, okay. The only difficulty is that when we come to this first interior point, you end up having to use, you end up having to use a boundary condition. That is a problem, okay. That is a problem. And then there is the issue of what is the boundary condition that I am going to have here. So what you have given me is only T0 and T0. They have given me only 2 quantities, okay. How many conditions do we require from a differential equation point of view, okay. From the physics point of view, I have T0, T0, T ambient. In the physics point of view, we are happy, right. Okay. And you understand that whether T ambient is at 300 kelvin, right, or 320 kelvin or whatever, T ambient, as long as the pressure is the same, you understand that the gas dynamics of this is not going to change. It does not depend on T ambient. We already know that. It does not depend on T ambient. So we already know that from the physics point of view, we need T0, T0 and T ambient. That is what we need. That is what the physics tells us. What does the differential equation tell us? Differential equation has a dou by dou T as a q. You need 3 initial conditions and dou E dou x, a spatial derivative, 3 conditions in space. Well, we have 2 here and 1 there. So we have the 3 conditions. The physics and the mathematics are gelling, right. So there is no issue here. The problem that we have when we do FTCS is in order to take this time, I need q there. Not 2 conditions here and 1 condition. I need q. I want 3 conditions there. And in a similar fashion, when I come here, I want 3 conditions here. So my CFD because I chose FTCS requires 3 here, 3 there. What do I have? I have 2 here, 1 here. So I have to somehow generate, I have to generate 3 here, 1 there. Is that fine? 2 here, 1 there. We need 2 here, 1 there. Is that fine? So now we basically say we have to justify. We get starting to wave hands a little more. We have to justify how this is going to happen, okay. So I ask myself the question, what happens if P ambient is the same as P0? Let us assume that instead of being, instead of there is some magical way by which I could fiddle around with this downstream, right. There could be a pressure vessel here and I could figure out whatever P ambient I wanted. So if P ambient was the same as P0, you would have no flow. Even if the valve is open. If I lower P ambient, right, I have a pump that is starting to evacuate. I lower P ambient. What is going to happen? I will set up a flow field. The rho u, the m dot here will increase, right. Gas dynamics we are thinking m dot. m dot will increase. If I lower it even further, the m dot will go down even further. So this P ambient, what I am able to control using P ambient is the m dot. So if I lower the P ambient here, the rho u entering here is affected by it. Am I making sense, okay. So it looks like somehow from here what needs to, there is something propagating upstream. I have to somehow take from within the interior. I have to take this mass flow rate. The P ambient is dropped, more mass flow rate. It has to be communicated upstream. It is happening. When you lower P ambient, you know in your actual physical fluid flow situation, when I lower P ambient, you know that the mass flow rate increases upstream. So the fact that this P ambient is dropped, either somehow that P ambient itself is propagated upstream. That is one possibility. Or the u or rho u, increase in rho u, the need for an increase in rho u is propagated upstream. So in my mind if I do an experiment, I say if I lower the P ambient here, well immediate all of this if it is at P, P naught, right. Then the air here will get sucked out and it will propagate, that wave will propagate upstream. Expansion fan or whatever it will propagate upstream, right. That is what I expect. And propagate upstream, look at this, propagate upstream all the way to the top, all the way to the front, fine. So maybe what we will do is we will have to look at exactly how we are going to apply these boundary conditions. We have the problem set up. We know what is the problem we are solving. We know what is the scheme that we are using. We have two issues that I have left unanswered in this class. One is that scheme stable. If it is not stable, what shall we do? The second is how do we apply the, how exactly shall we apply the boundary condition? We know that there is a shortfall. We need two quantities on the right and one quantity on the left. How do we generate? Is that fine? We will do that in the next class. Thank you.