 So, welcome to the class. The course is Introduction to CFD, Introduction to Computational Fluid Dynamics. My name is Ramakrishna. So, the course is an introductory nature. So, basically what I am going to do is I am going to talk about fundamental concepts in computational fluid dynamics. I am not going to talk about advanced topics. I am not going to cover a lot of schemes and so on. I am going to look more at a few of the simple schemes, why they work, how they work. So, but before we start off, let us look at the title and figure out a little more about what we are going to talk about in this class. I have told you what I meant by the introduction. The course also title has computational and fluid dynamics in it. It implies that we are going to study differential equations that come from that govern fluid dynamics problems using computers. That of course is a very general title. In reality, what we will do is we will look at differential equations and representing the differential equations somehow on computers and solving the resulting equations that we get. If you say using computers in fluid dynamics, you could also interpret it as being, you could take gathered data using experimental techniques for example and you could post process that data. That would not really fall into the category of computational fluid dynamics. So, having said this, what does this involve? What is the nature of solving things on the computer? So, in order to understand the question solve on computer, we have to look at what we mean by solve, say an equation. So, you are familiar with this. If I give you an equation of the form f of x equals 0, an algebraic equation, for example it could be A x squared plus B x plus C equals 0. You know that you could find out if sum x or sum psi is a solution by substituting that psi into the equations. This is what we do and to see whether the psi actually satisfies the equation. So, if you substitute the equation, if you substitute into that equation, if you substitute psi, you get A x psi squared plus B x psi plus C. If it happens to be 0, you have a solution. If it happens to be not 0, then it leaves something called a residue. So, if there is a residue left over, if there is a residue left over, you do not have a solution, right? You expect the right hand side to be 0, you are left with a residue, you do not have a solution. So the mechanism that we have to find out whether something is a solution or not is to take the equation that we are trying to solve and substitute. So, we have this, we have solved algebraic equations. In this case, you know how to find the solution of this quadratic equation. In particular, if I say x squared equals 2 or x squared minus 2 equals 0, you know that you could come up with a solution which is x equals square root of, there are 2 possible solutions in fact. Am I clear? Now what happens if the solution is not a number, it is not always a number. Take a situation where you have f of u of x comma x equals 0 and you have encountered situations like this. One possibility is that you have x squared plus u squared equals r squared and you could be asked to solve for u in terms of x, you can be asked to solve for u in terms of x and you know one such solution is u of x is r squared minus x squared square root. There is of course a negative solution to it also. Is that fine? So what we have here is a solution to an equation which happens to be a function. It is not a number as we had in this case and this is the kind of equations that we are going to be looking at in this course. That is you may have seen situations where you either use bisection method or Newton method to find roots to this polynomial or you try to solve equations of this form. In this case, you have an equation in which the solution actually is a function. It is not a number. So we have this issue that if I am going to solve fluid dynamics problems on computers that I necessarily need to represent functions somehow on computers. So we have to address that issue. So other situations where we have something like this, you could for example look at dp by rho plus 1 half d of v squared equals 0. This you are familiar with. This is called the Bernoulli's equation in the differential form. It is possible that in three dimensions along the streamline that someone has given you at some location x, that someone has given you the pressure and you have the velocity field everywhere. So you have pressure at x at this point x0 and you would like to integrate this equation, right? Density is a constant. You would like to integrate this equation along this trajectory. And what is the result that you get? The result that you get is p as a function of the position vector x, again a function. So in fluid mechanics, this is just an application to fluid mechanics. This is of course also an equation whose solution is a function. This is just an application to fluid mechanics. What I am trying to say is that we have a whole series of problems in which the solution to the equations that we seek are functions and not numbers. So the first thing that we have to look at is how do we go about representing these functions on the computer or in particular, how do we represent anything at all on the computer? So we are going to look at computer representations to start with. But before we get there, you can ask the question, why should I use computers at all, right? I mean one simple answer is in this day and age, what else did you expect? Everything is computerized. We might as well use a computer. But there is a more serious reason for why we are going to use computers here. If you have, if you think about solutions to differential equations that you have learnt before or solutions to other equations like this where they are functions, you talk in terms of closed form solutions. Closed form solutions are analytic solutions. You have heard this expression called closed form solutions or analytic solutions, analytic solutions, not to be confused with anything that you learnt in complex variables, closed form solutions. So basically meaning that it is not an infinite series or something of that sort, that you have something that is a finite combination of what? That is the question, finite combination of something. So what are all the functions? I mean if you think about it, what are all the functions that we know, right? If you sit down and enumerate all the possible functions that we know in the sense that we can write, we know monomials. That is something of the form Ax power n. We can use combinations of monomials using our standard algebraic operations to come up with polynomials or rational polynomials, possibly rational. I will put that in brackets. What I mean by that is you could have Ax squared as I have indicated before Bx plus C is a combination taken by using summation or you can have Cx squared plus dx plus e divided by Ax squared plus x plus 1 whatever I am just making this up, fine. So you can make up functions, you can cook up functions using combinations of these but I am not going to take an infinite set, infinite sum, right? That is what I mean by closed form solution. I am not going to take an infinite sum, I am just going to take combinations of these two. So you can create functions like this. What are the other kinds that we know? We know transcendentals. So that would be sin of x, cosine of x, exponent of x, log x and so on, right? A power x, I mean that is it. A raise to the power x, we very quickly run out of and of course there are combinations again. You could get tangent of x which is sin x by cos x or you can see e power x sin x. You can take combinations. You can take ln of mod cos x. See there are combinations that you can take to construct more complex functions but this is all we have. So if you are going to say, if you are going to turn around and you are going to say that I have a solution to some equation and I want a closed form solution, this is the only choice that I have. I have nothing else that is left. I have no other, no other combination here that is going to work, right? So if it is not possible, the question is if it is not possible to represent it, represent my solution in terms of closed form solutions, what do I do? So how does that happen? How do we end up with the situation that, I mean, why is that, why does that happen at all? So there are situations that you have encountered. So for instance if I have dy by dx, let me write differential equation, dy by dx equals f of x, right? So this is a simple differential equation. I mean this can be just integrated and you know, you get y, an indefinite integral. You can write it in terms of an indefinite integral f of x dx plus a constant, right? That is one way to do this. You can write it in terms of an indefinite integral. The problem is that if f of x equals e power minus x squared, then we are in difficulty, then we have a problem because unfortunately e power minus x squared does not have a closed form solution. So as a consequence, what that means is e power minus x squared cannot be expressed in terms of any of these basic functions that we have, right? So to repeat, there are functions, we have this set of bowl of functions that we have access to. We can create an enormous number of enormous set of functions with these functions, taking linear combinations of these functions. However, there are still functions which cannot be represented in terms of these basic functions, okay? So they do not have a closed form. So this, what I mean is y equals integral e power minus x squared dx, unfortunately this integral does not have a closed form representation. e power minus x squared is okay, right? Do not get me wrong, but the integral of e power minus x squared dx does not have a closed form representation and therein lies the problem. So we have no choice. We have to use computers. We need to, we have to go through this process of somehow representing functions if not in terms of closed form solutions on the computer in some fashion. The second reason why I want to use a computer is, if you look at what I said earlier right in the beginning, so if you have 3x squared plus 2x plus 1 and you are looking for a solution, one thing that I can do is I can substitute, I can guess values and I can substitute those values in here, so that to see check whether the residue is 0 or not. So you can do a blind search essentially. You can keep substituting values and trying to figure out what it is, what the solution is. Of course you know it has been proven that beyond a quartic we cannot get even a closed form solution for this in the sense that you cannot get an expression that will get you a solution to a quartic equation. This is a, I mean beyond for a quintic equation and so on. This is a quadratic equation. So you necessarily have to guess or come up with an algorithm, a mechanism to generate guesses automatically which will get you a solution to the equation that you seek and the process of automation which computers of course are very good at this kind of drudge work but what you need is some kind of organization or something of that sort so that you structure, the search can be structured and then algorithm can be developed. So we have now reduced our requirement to representing things on the computer. Things is a generic term. So I will say representing, we have now come to what I said earlier in the class, representing mathematical entities on the computer and we will follow this in a sequence. I will make up a history. We will follow this in a sequence which is very similar to what we do in calculus. We will start first by constructing the real line okay. So towards that end we ask the question how do we represent anything on the computer? What is the basic nature of how things are represented on the computer? I am not going to dwell on computer architecture. I am not going to dwell on other high performance related issues that are there that one would have to that you know if we need by we need be we can visit at a later time but the only thing that I want you to know is that on a computer I will just recollect most of you have already encountered this. Numbers are represented in a binary form which means that a binary digit or a bit coming from a binary digit can either be a 1 or a 0 can be a 1 can take 2 states 1 or a 0 normally they will give you examples of off and on and so on can be a 1 or a 0 okay. The important thing is that it has 2 states 1 or a 0. So if I use 2 binary digits one next to the other just like we do our regular decimal numbers then the 2 binary digits can represent 4 combinations. So 2 bits so to speak 2 bits end up with 4 combinations. So these 4 combinations can be used to represent 4 symbols of some kind I mean you can decide what symbols that you want to use. The number of bits that we use then seems to relate to the number of combinations that we have. So 3 of course 3 bits will give us 0 0 0 I will just do this one more time 0 0 1 0 1 0 1 0 0 1 1 then 1 0 0 1 0 1 1 1 have I got everything 1 2 3 4 5 6 7 and I miss something 0 1 1 0 1 1 1 1 1 0 thank you very much thank you very much 1 1 0 okay very important. So I will write that a little higher I will write that a little further up okay 1 1 0 very important and 1 1 1 okay that is 8 of them. So there are with 3 bits you are going to get in fact it seems 2 power 3 where this was 2 power 2 okay. So we have something here so if I use 4 bits okay if I use 4 bits I will get 16 I am not going to work out the details for 4 bits obviously I am not able to write 3 bits so no sense risking 4 bits so but no you can actually write them out you just have to be systematic in the little organize but you can write it out. So if there are 4 bits so 4 bits corresponds to 2 power 4 symbols which are 16 symbols so there is a reason why I picked 4 bits 4 bits incidentally in computer parlance is called a nibble simply this is just for fun it is called a nibble because 8 bits are called a byte okay. So it is called a nibble there are 16 symbols so 16 symbols if you can imagine 0 1 through 9 those are 10 symbols that you can use so 10 of the symbols can be used to represent 0 through 9 which of course leaves 6 more symbols with which it is possible for you to represent plus right that by represent I mean you interpret it in that fashion minus division and multiplication that still leaves you 2 more may be an equal sign and something else so in actuality now you can just imagine that if I use 4 bits that is 16 symbols I can interpret what I mean by interpret is coming back here what I mean by interpret is I can say for instance 0 0 this represents the number 0 0 1 represents number 1 and so on. So each of these symbols when I have 8 combinations I can interpret it as something just like when I write 1 the chalk dust 1 just like when I write the chalk dust 1 you interpret it as 1 right you give it the meaning 1 so in that sense these 16 symbols for each of these 16 symbols you can actually attribute some number associated with those symbols and other operations and low and behold we are able to build a 4 function calculator using a 4 bit computer if possible it just 4 bits right with the 4 bit representation it is actually possible for us to do this. So now what do we do in real life so of course just for completion 8 bits which gives me 2 power 8 256 symbols is called a byte BYTE and most of the computers that you use these days either have a 32 bit computers are increasingly 64 bit computers. So you have 2 power 32 or 2 power 64 which are enormous number of combinations enormous number of symbols. So 2 power 32 will give you of the order of 4 billion symbols basically okay so it is a useful thing to learn the powers of 10 just as an aside so 2 power 10 is 1024 which is approximately like 1000 so 2 power 32 is 4 into 1 billion right is the order of 4 billion it is very quickly very easy to quickly estimate what these values are okay. So you have 2 power 32 symbols so what we can do now is we can use these symbols first to count just like we went from 0 to 9 you can actually go from 1 to 4 billion plus combinations or you can use them to represent integers which basically means that you take 2 power 31 going from minus 2 power 31 up to of course there is 0 which is neither negative nor positive so 0 1 and going up to 2 power 31 minus 1 right so it is possible for us to interpret them assign the symbol for one of them being minus 2 power 31 and the other one to be 2 power 31 and you can represent basically integers using the 32 bits but integers 32 bits it is a very large number 4 billion but it is not the full set of countable numbers it is not the full set of integers so it is very large however large it is it is not even the set of integers. So here I am I started off by saying I want to represent mathematical entities on the computer I want to start with building the real line is what I promised but I am not even able to represent integers the whole set of integers so there lies the problem so from here how do I build the real line so the real line is a greater difficulty right I mean real lines consist of rationals and irrationals rationals are of course a countable set so you can map them to integers irrationals are an uncountable infinity so there is no hope of representing irrationals at all so you could start the argument by saying that look thanks to Weierstrass that I can represent any irrational as closely as I want by a rational but that still does not help so we throw away all the rational we are left with rationals we are left with rational numbers and what we have is that we have to look at basically may be representing rational rationals in terms of scaling a problem between 0 and 1 is scale a problem all our problems between 0 in the interval 0 1 then it is possible that we represent all our computations basically work as a fraction on the interval 0 1 what I mean by that is that you only have the mantissa somehow manage to scale the whole problem the problem that you are working on right so that the solution always lies between 0 1 so if it is possible for us to do that you can use fixed point arithmetic of course if you cannot scale it you can always add a few decimals here so it is always possible for you to use fixed point arithmetic so as you say 0.125 or something of that sort so it is always possible to use fixed point arithmetic right so what you basically do is you have the decimal point and you have fixed number of you use the 32 bits to represent the mantissa so as you can see what I really done is it is a cheat what I really done is I have taken these integers that I have got and I am just interpreting the integers is the mantissa I am just basically saying that it goes from 0 to 1 so instead of mapping it to minus 2 power 31 to 2 power 31 minus 1 I am mapping it to 0 up to 1 and representing the mantissa as basically as that integer and all the arithmetic that takes place then the integer arithmetic so this looks like a good thing this is called fixed point arithmetic I will just write arithmetic fixed point arithmetic so what is wrong with fixed point arithmetic why the heck should we do fixed point arithmetic well fixed point arithmetic there are 2 issues that could crop up one is that if you do add numbers temporarily we may have numbers that exceed 1 we may have to develop algorithms to take care of that so you have 2 numbers that are added up they exceed 1 then you turn around and say that look I will take temporarily take because I know my answer is finally going to be between 0 and 1 I will store that excess still it goes away that is one way to look at it but you will have to do special things clearly you have to do special things and there are times there are known instances where in our space program the French space program there are known instances where these overflows have actually caused failures so using fixed point arithmetic there it is very fast because it is a effectively equivalent to integer arithmetic but overflows can be a serious problem there is another problem which is worse so you have just say you are carrying only 3 decimal places so what is the problem what is the issue what is the big deal so whatever is here beyond this whatever actual numbers whatever the actual decimal representation that you have we will get to the issue of binary representation and so on whatever you have beyond these 3 digits that you have put up here have actually been thrown away you have been you are just essentially truncated it because you are you have an ability only to represent 3 places so this position here is suspect you may have rounded off you may have rounded down you may have truncated so this last number 5 is suspect so if I start performing arithmetic so for example if it turns out that from 0.125 I am actually going to subtract 0.12 as a course as a part of my computation that I am performing this leaves me with 0.05 and it leaves me with a number that I started off by saying is suspect that is I have 0.120 0 is also suspect but I am left with something that is that is not as good as what I started off with I lost my most significant digits so anytime that you do subtraction this is going to happen this loss is going to happen anytime that you do the subtraction so there are 2 extremes one extreme is when you are performing additions that it is possible that you somehow overflow that fixed point container that you have the other extreme is that you have loss of significance in the sense that you subtract out somehow due to this operation you knock off the significant digits that you have the digits that have whole meaning and you are left with digits that are suspect. So if you say that I have only 3 places in which I can represent this I have a problem so and you can say well why should I have to truncate why should I have to reduce what should I say why I always have to truncate is it possible not to truncate you look at this you look at the issue look at these numbers I have 1 by 2 1 by 3 1 by 4 1 by 5 1 by 6 1 by 7 1 by 8 1 by 9 right and of course 1 by 10 I want to take it up to 10 in decimal look at this in decimal and ask yourself the question which one of these which one of these fractions that I am representing here has a finite or a closed I would say representation in which one of them has what we call recurring representations. So this would be of course 0.5 whereas this would be 0.333 recurring this would be 0.25 this would be 0.2 have a problem 0.1666 recurring so this would be recurring this would be recurring that would be recurring that would be recurring so what is it that differentiates the recurring ones from the non recurring ones. What differentiates it is that these are all primes right and the base base 10 of our number system is a composition of 2 primes 2 and 5 and as long as you have fractions that are made up of 2 and 5 they have a closed representation if they are primes that are not 2 or 5 then you have a problem that is the key so this is 3 times 3 which is a problem 1 over 7 is a problem 1 over 6 is a problem which is 2 times 3 so though the 2 works the 3 does not work and that is a that lies therein lies the problem so you cannot get finite number of positions in decimal for 1 over 3 okay so now by going to binary on computers we have done something worse on binary you cannot even represent 1 over 5 is also recurring this has unfortunate consequences because being I would always say decimal I hold my hands up being because of our 10 digits we have gone for a base 10 representation and as a consequence we are always going to take when we say give me in a give me a set of points or give me a set of intervals we invariably take one 10th and the tragedy is that that one tenth cannot be represented exactly on a computer it is a given right we never think to take one eighth or one fourth or one sixteenth or whatever we tend to take one tenth right so back here so what it means coming back here what it means is you have no choice right so if you are representing one third it is going to be 0 3 3 and you know there are an infinite number of 3 is here and you had to cut it you had to truncate you had to truncate the series there was no choice so you have to have you have an error associated with this and as a consequence depending on what is happened here it is this this is digit as I said would become suspect it is not as large as it should be or it is not as small as it should be okay so fixed point arithmetic therefore has an issue fixed point arithmetic very clearly has an issue how do we fix this well we go to something called floating point arithmetic and many varieties of floating point arithmetic that have existed the as many as computer manufacturers once upon a time but ever since floating point arithmetic or floating point representation I will just say representation floating point representation so nowadays we would find you would use IEEE 654 754 you can go look this up on a on popular OSS you may go look for this file IEEE 754.h of course the header file most probably will be of the form IEEE 754.h so these standards associated standards were 654 754 and the latest one 854 you can go find out the details about these but the whole idea is that we ran into problems earlier simply because the decimal point was fixed right so if I am allow if I allow the decimal point to move it is possible that something like this I may have ended up with more digits I do not know right so that is that is what we are looking at so what we will do is the 32 bits we will assign these 32 bits in a fashion that will allow us to how should I put this that will allow us a larger dynamic range we are not going to restrict ourselves to 0 to 1 right so what we will take is we will take the real line I will show you what I mean so I will assign we will pick the origin right that is very clear we will pick one you know what we want to do there we know that we cannot pick all the points on the real line that is not possible so I have a largest number that I can represent which is L I may choose to set aside a symbol for infinity and we can repeat the same thing on the other side it is possible for us to have a minus L there and the minus infinity at the other end okay so we have 32 bits and we need to pick these numbers so one of the things of course as I said we typically in and around between 1 and 0 we want to cluster a lot of numbers okay so we want a certain amount of density here so we will divide up these 32 bits in the following fashion we will assign one bit I will write this this is this is bit 0 we will call this the sign bit so this tells me whether the number is positive or negative fine this tells me whether positive the number is positive or negative the second thing that we do is we assign the next 8 bits these are 8 bits this goes from 1 to up to 8 the next 8 bits to an exponent we assign the next 8 bits to an exponent fine so what is the size of the exponent it can go to 2 power 8 so that is 256 so clearly just like we did with integers you could have negative exponents and positive exponents you can bias the exponents so that there are negative numbers and positive numbers if you look up this file if you look up that if you look up this file you will see that for the 32 bit representation they will actually have a they are defined a bias in terms of hexadecimal I do not know why I am writing this right now but in terms of hexadecimal right they will define the bias that is right so that is half way through the half of it is negative half of it is positive of course there is 0 in between and then the remaining how many are left 23 bits are left going from bit 9 bit 9 remember we started the count at 0 up to 31 the remaining 23 bits are used to represent the mantissa the remaining 23 bits are used to represent the mantissa is that fine okay so this is this is this is a standard that is used to represent floating point numbers what I want to point out here this is a particular set particular type of floating point representation it corresponds to this standard there is a little more to it if you go look it up I can you can check this out in any resource that you want even on the net you go look up the meaning of big Indian and little Indian because there is a humorous story as to associated with why this nomenclature big Indian and little Indian came but you can go look up the Indian as an end E and D Indian okay so there is a reason why these are numbers are chosen this way so the standard setting up of the standards of course there is a little thought that is put into all of these. So if you perform a comparison on a computer and you want to know if one number is larger than the other number the first thing that you can do is just check the sign but you just need to check the first bit if the first bit is one is positive the other negative then you know the positive number is greater than the negative number just checking the first bit you immediately know the second thing that you can do is you can check the exponent if the signs are the same if one exponent is larger than the second exponent then you know that is larger the exponents are the same and this is the same then you go and check the mantis are to see whether the compare you perform a comparison so in that sense the order of representation is very important the sequence is very important because it makes comparisons and so on very easy. So what the what we would like to do now is just I will just give you a little detail on just one tiny detail on just to show how clever we are okay I will give you one tiny detail on this so what we do is in floating point arithmetic is we make sure that we eliminate all leading zeros right so if something because I have an exponent now so the decimal equivalent would be if I had 0.0125 then the decimal equivalent of that would be I would convert it to 0.125 into 10 power minus 1 right decimal equivalent of that would be I would shift so my exponent what I would store in my exponent is this one and what I would store in my mantis are but be 125 and I do not have to store the 0 and point because I know that 0 point is there but choosing binary has an advantage having chosen binary there is an advantage and what do I mean by that I mean the symbols can either be 1 or 0 right so the so if I have if I say that I have a binary number 0.0101 something of this sort and I want to do a shift I could have actually chosen this because this is actually a power but it does not matter I can I can I can shift so I would get binary 0101 right so I have shifted I have shifted 1 place and therefore my exponent has to appropriately change and my leading term is 1 the idea is that my leading term will always be 1 because it is binary there is no other option in decimal the leading term can be a 1 or 2 or 3 or 4 or whatever it is but in binary the leading term will always be 1 so there is no reason why I should store the 1 what I am trying to say is in this case there is no reason why I should have this one here why should I have the 1 I know it is going to be a 1 so I can actually get rid of this one and just store 0 1 I do not put the decimal point what I mean is that the 1 is implied right if they if it was the difference between this and this would be that this would go all the way the 1 will shift all the way and of course I am not going to store it and therefore I will store 0 so what I am trying to say is this last this 1 the leading 1 that I have does not need to be stored because the leading term is always going to be 1 so effectively we have it looks like 24 bits 24 bits you can see where that 24 bit you can think about where that 24 bit came from 24 bits effectively we did it is not that we got it free it may look like we got it free we are being clever but we just managed to get everything that we can get okay. So the smallest number that we can represent the smallest combination or the number of combinations that we have is 2 power 24 but you can imagine that if I if I get rid of if I shift everything 2 power minus 24 is the disc is what I can discriminate what do I mean by that well we can ask the question you can ask ourselves a question I have these numbers here this is the number line that I have the number line that I have I am representing certain numbers here right so there are 2 power 24 combinations in this from 0 to 1 that is what we have basically shown 2 power 24 is large but it is only 16 million of the order of success slightly over 16 million so it is not really I mean it is not definitely not the continuum there it is not all the rational there either so what have I actually done when I say floating point representation and I am looking at this is my real line what have I actually done what have I managed to do what is it that I am doing so to answer that question I am going to ask myself is it possible for me to find a positive number I will make a positive number you can always generalize it later positive number right so find what is the nature of this positive number so it should be the smallest positive number I will write smallest there smallest positive number such that since I have taken 1 1 plus this number epsilon is not equal to 1 I want to find the smallest positive number such that 1 plus epsilon not equal to 1 I am sort of getting normally the way I would like to do it is I would like to find the largest or the flip side of this is find maybe this will make a little more sense and you can think about it largest positive number I will say positive number such that I will use a different epsilon do not get confused 1 plus I will use that epsilon equals 1. So the first question is is it possible for us to find an epsilon so that 1 plus epsilon equals 1 is this actually possible well on our number line it turns out it is possible I would suggest that you write a program to find out what this value is if such exists you may be under the impression that in mathematics of course if you write this you will assert that epsilon equals 0 but in our case this is not really true I mean this is 1 plus epsilon equals 1 it is possible that you may be able to find an epsilon positive number such that 1 plus epsilon equals 1 simple code that you can write for this is for example say while so you can set let us set epsilon. So you say epsilon is simple I am just going to write pseudo code epsilon equals 1.0 and you ask the question so the code while 1 plus epsilon you can say greater than 1 or not equal to 1 greater than 1 epsilon equals epsilon times 0.5 you have it you make it one half so we are we are hunting so it is going to go through this and as long as 1 plus epsilon is greater than 1 right this process is going to keep going till you get to a point where suddenly 1 plus epsilon is not greater than 1 right epsilon is positive so you can ask the question how is that possible well if it is possible print out epsilon and see what is it that you get okay so and then you have to ask the question you look at how the while loop works and what is it that you are actually measuring and try to figure out are you getting this are you getting this or are you getting something else which are the epsilon are you getting. So the issue is it possible that this actually works and what is the number that you get I suggest that you try this out for 3 data types for those of you who are in C please do this for float on this program for double and if possible on your compiler long double for those of you who are using FORTRAN what I mean by that is real, real star 8 and real star 16 if possible these do not correspond these do not correspond okay real star 16 if possible and please let me know what is it that you get okay so that is basically something that you can try out just run this on your favorite computer and with whatever language that you want if you have a scripting language also it is fine just try it out and see what is it that you get with this so what we managed to do in today's classes I have basically shown you that we need to in order to solve differential equations that govern the fluid flow problems we need to find the solutions or functions we need to be able to represent functions on the computer we also need to represent the differential equations that we are going to solve on the computer so that is basically what we have set out to do and in towards that direction we have started off with like we do in calculus and mathematics trying to represent the real line and the real line we started with integers we could not represent all the integers of course there is no hope of really representing the whole of the real line we have thrown away the irrational we have represented some of the irrational we have used the IEEE standard to do that representation we are now trying to find out what exactly it is that we are doing in representing numbers in this fashion once we understand this we will then in the next class go on with representing other mathematical entities like possibly vectors and matrices and then see if we cannot represent functions okay so thank you.