Well, hello back again. We have discussed a number of things about public key infrastructure so far, but I have withheld one really important thing and that is called revocation, revocation of certificates. Now what am I talking about? Well think about the following. What happens if you issue a certificate and the private key that belongs to it is compromised at some point in time after the certificate has been issued? Well actually, the certificate at the time of issuance is just a statement that the binding between the identity and the key is valid at that time, at the time of issuing. A simplified example using a kind of comic series. Let's assume Milhouse has stolen Bart's private key and Bart notices a day later. That actually means that for an entire day Milhouse can do pretty much anything mischievous that he would like to do. He has, as we say, a window of attack for one day during which he can impersonate Bart. This has important consequences for PKI. You actually need to make sure the binding between the identifier and the public key is correct at the time that you are interested in when you verify the certificate and in order to achieve that, you need to do a revocation check. Now revocation is actually incredibly important in PKI but in most discussions that you're going to encounter people won't think very much of it. That is a bit sad but it's true. No certificate can be considered valid without a revocation check or at least in theory. And there are cases when a certificate that has already been issued must actually be withdrawn. An obvious case is if the private key has been compromised but it's not the only one. For example, what happens if the owner of the certificate decides that they don't want to use or to operate the service any longer? They don't need a certificate anymore. Best to revoke it or otherwise someone might achieve to use the private key for something else. The key ownership might have changed. For example, someone might have sold their business or more often than not, the private key has simply been lost which means the certificate is unusable on a server. And believe me or not, but this is actually a really common case because human error prevails a lot in security. It doesn't stop there. It's not enough to just check the ENTO certificate. You also need to check that the intermediate certificates are valid at the time that you interested in. In the world of X5 or 9, generally we say we have two options, certificate revocation lists and OCSP. And these come in various flavors, at least in the case of CRLs and we're going to talk a little bit about it. Let's have a look at it. The simplest form are lists. A list of certificates that are considered revoked can be published by every CA that is in the business. They should of course be updated and maintained at regular intervals. There should be ways to identify a certificate for example by a serial number. That is why the field serial number is important in a certificate. Ideally you should also give a reason for the revocation. But obviously there are business secrets and sometimes you just don't want to do this. And of course to be usable, a certificate revocation list must have a time stamp because you need to know which certificates are on the list and at what time they are considered revoked. And it needs to be signed as well of course by the CA because otherwise you have no assurance at all that no one is trying to get you to use a forged certificate revocation list and try to make your service unavailable. There are further entries by the way like when is the next update you etc. But we don't go particularly deeply into this. Certificate revocation lists are the simplest form of revocation but they come with a few drawbacks. Now technically a browser or let's just call a client should download a certificate revocation list every time it connects to a server and of course update it after a given time. So they can check if the end host certificate is correct and not revoked. Now there are problems. Obviously there are always problems and CRLs galore in that respect. First of all downloading certificate revocation lists means you need to download a lot more than the number of bytes in a typical TLS handshake for example.  The other problem is of course there can be a relatively long time interval between two updates of a certificate revocation list. That would mean for example that your window of attack is one week the worst case if your interval between two updates is one week. Not exactly ideal isn't it? Now CRLs can unfortunately also grow relatively large. Just imagine you have a large CA. Then they are going to have relatively large certificate revocation lists. There was a response to this actually someone proposed to use so-called delta CRLs that essentially just contain the differences. However that requires a certain amount of server side support and in practice they have never become very popular. It doesn't stop here unfortunately.  If you are already under attack and someone is trying to get you to use a forged certificate or a certificate for which they have managed to steal the private key. Well there's actually nothing that prevents them from also blocking your access to download the certificate revocation list. And that renders the entire thing pretty much moot. Now for all these reasons browsers historically did not activate certificate revocation lists at all. Meaning on the web for a very long time and still is and it's still the case in most cases. Browsers are not going to download certificate revocation lists at all and they are not going to do a revocation check via certificate revocation lists. You might be wondering now why are we even talking about it? Well because these are the foundational principle of revocation and it's worthwhile to have a look at them. Enter the online certificate status protocol OCSP. You might be asking why should I download an entire list if I'm actually only interested in one single certificate and why don't I do it live so I have the assurance when I actually need it without a window of attack that corresponds to the time interval between two updates of a certificate revocation list. Why don't I use a query response model? Well that is what OCSP is for exactly. You can think of it literally as a kind of live implementation of look up in a CRL without a CRL ever being transferred over the network in its entire team. You look up a certificate status in a server side data structure that has many properties of a CRL. You query actually by several hash values correspond to the certificate and the serial number of the certificate. Replay protection can be added by using nonces. So you don't just send your query but you also add a nonce in a particular way. You sign it and the responding server must reply with that nonce or modification of that nonce and then you receive the result. You can be sure this is actually a response that you have asked for and it's not just some replay of a previous response. Encryption however is not required. Now what can responses actually be? Clearly there are two status values that are useful. One is good and the other one is revoked. And they are exactly what you think they are. Good means the certificate is still considered valid revoked means it is considered revoked. There is interestingly a third status. What do you do if the certificate for example is not contained on the server side in a data structure? In that case, OCSP interestingly responds with unknown and the response will always be signed. Now there are a few oddities that are worth looking at. Here are the problems and number of issues. Once again, lookups have to go over the network, which means in addition to your TLS handshake, you're going to have additional latency until you can complete the handshake until the OCSP response arrives. That also means your OCSP server must have a really high availability. The last thing you can accept is a server that is slow to respond. OCSP information must always be fresh. So if a CA just uses CRLs in the background and doesn't update them immediately when a certificate status changes, well, that doesn't actually help you very much because you basically have fallen back to a CRL model. It's just that you have managed to reduce the bandwidth required to download. Again, the revocation check can be blocked by a man in the middle or person in the middle. And that is a bad thing because it doesn't actually allow you to check the certificate status. Historically, by the way, many browsers opted to do a so-called soft fail that don't show an error in that case. Why is that? Actually, it turns out that OCSP servers often don't have the high availability that would be required. And even a very small percentage of OCSP queries going wrong would mean that a browser is going to show an error to a user on an otherwise legitimate site. And what is the user going to think? It must be somehow a browser problem. I'm just going to switch the browser until I find one that doesn't show the error. That is a perverse incentive, of course. That's really the term you would use. And because it implies that it is better to ignore security than to protect your users properly. Nevertheless, this soft fail is a phenomenon. This has really happened and has been done. A further issue however is privacy. The OCSP server on the CA site is going to learn which site you are going to access. In other words, they see which IP address is requesting the status of a given certificate. The certificate contains a domain name, almost all cases. And that was going to reply and tell you, well, here's the status of your certificate. And by the way, thank you for your data. Now I can actually build profiles of users. I'm not sure if anyone has ever tried to sell that kind of data or make good use of it. But in principle, this is a leak in terms of privacy. Now, Peter Goodman, who I quote down there below, is a cryptographer from New Zealand. And one of the many quotes that he is famous for is the following one. OCSP was designed as a fully bug compatible stand in for certificate revocation lists. It is true. It solves a couple of problems that are pertain to certificate revocation lists. But it by far, it does not solve all of them. Now, there is an actual improvement to OCSP stapling that addresses a couple of these things, especially the latency of the lookup, the load on the CA. The idea is the following. Why do clients have to request fresh proof from the CA that the certificate is still valid? I could actually instruct my web server to request the very same and basically piggyback it as part of the TLS handshake to the browser to the client, meaning I have reduced my interval of attack, my time window for attack to maybe let's say 10 minutes for server requests fresh OCSP proof every 10 minutes and adjust piggyback the result for example, the certificate is still considered valid to the browser, right? This is called stapling because the piggybacking is like adding a staple to a certificate that the server sends in the SSL or TLS handshake, it reduces the load on the CA in principle, because many users might access a website, and hence also access a CA in a normal model, whereas here, the web server can just do it once every 10 minutes. Nicely, it all dissolves the privacy problem because all the CA learns is that there is a server that requests a new fresh proof at certain given intervals. Now OCSP stapling has been around for while I write a long time, by which I mean at least five years plus, but it has actually seen pretty little deployment. And that if you want to take further lectures, for example, on internet measurement is a phenomenon on the internet that new good technology sometimes is just not accepted by the market. Consequently, browsers chose a new method chose to do different approach revocation, based on the observation that actually most users ever access a relatively small site, a number of websites. If you think about your own browsing behavior, how many websites do you really access a day? Maybe a few dozen? No, imagine most users are like you. They're probably going to access a good part of the same sites as well. Meaning that if you actually have fresh revocation status for let's say a few thousand or a few 10,000 websites that actually is going to cover the needs of let's say, a large part of your users, I have no concrete number, but let's say it covers the needs of 90%, 95% of their users all the time. Why not bake a list of revoked certificates into your browser and let the browser deal with it by phoning home to the browser vendor, who does the entire evocation check on your behalf for that selected list of websites. Nicely enough, browsers actually have such a call home channel. Browser updates nowadays are always distributed basically in band. The browser is active, it downloads and updated updates itself. Most users actually don't even notice that the browser has updated. And in that update process, well, you can just go and do it once daily, for example, and download a fresh list for this list of tens of thousands of websites. It's beautiful. It counters attacks where traffic to the CA is dropped, for example, because your browser is really going to complain if it cannot connect to its own own vendor network. And this way you can avoid the person on the middle attack against the connection between browser and CA. Now, from a more theoretical note, I would say the scalability in general for the entire web is really bad, right? Because we have hundreds of millions of websites, and you can impossibly track revocation status for all of them. But for the most important sites, let's say anything between a few thousand a few dozens of thousands, this should work really well. And indeed, it is a state of the art approach. I believe it was pioneered by Google's Chrome, but was later also integrated into other browsers. Now, let's maybe summarize what are the lessons that we have learned revocation is crucial, but we do not have a silver bullet so far. It is absolutely safe to say that CRLs never worked. They always had very limited use, but they are useful at least to understand the basic principle. OCSP checks are expensive. There's latency load bandwidth, and they are not sufficient to either against an attacker who drops traffic to the CA. OCSP stapling would be nice if it was deployed in sufficient number. And we have the general statement for the general web revocation is an unsolved problem. For a subset of important sites, most browsers can offer a solution.


Moving ahead, let us talk about quickly the mathematical background that is required for this course. Usually you will see that fluid mechanics as well or even later the CFD part in many textbooks will be treated from a mathematical point of view. And we believe that both the physical aspects as well as the mathematical aspects should be known to a teacher to a good extent because you should be able to connect the two in some sense. So what I have listed here is the absolute minimal mathematical background that we will be utilizing for our course. And to the best of my knowledge typically this is the background that you will require even when you go and teach a fluid mechanics course or even a CFD course. So I have listed here the Taylor series expansion for a function of one variable. So if I am talking about the function value at a point x plus delta x, I express the function value at x plus delta x in terms of its value at the point x. And then these additional terms as you keep adding if you want only the first term in the Taylor series, we call it a first order Taylor expansion which will then be then f at x plus delta x equal to f of x plus the derivative of x with respect to x times the distance delta x between these two points. And that is what we used in the previous couple of slides when we are coming up with the expression for the rate of shear strain. Additionally if you want to keep on adding higher order terms as they are called, you can add a second order term, a third order term and so on. Keep in mind that in fluid mechanics because of the assumption of continuum and the resulting smooth distribution of fluid properties, we will actually always be restricting ourselves to a first order Taylor expansion. The reason is because when we are going to come up with differential equations of motion etc., we will be dealing with two points which are separated from each other by an elemental distance such as this delta x, delta y let us say delta z. These are all elemental distances and for elemental distances in continuum situations a first order Taylor series expansion is found to be sufficient. What I mean by that is it is found to be sufficient in terms of the accuracy that is required. In principle you can always keep on adding terms as you wish but for continuum situations it is found to be sufficient that a first order Taylor series expansion is what we can deal with. Thus immediately I have tried to list the Taylor series expansion for a function of two variables. So, now we are dealing with a function which has a value at the point x, y and then the function value at the point x plus delta x and y plus delta y. So, now we are moving both in x direction and y direction by the distances delta x and delta y respectively. When we are dealing with a two dimensional situation such as this the Taylor series expansion will involve partial derivatives with respect to x and y. So, the first three terms will form a first order Taylor series expansion and I have placed in brackets the second order terms. The second order terms as you can see will involve the second order differentials again partial with respect to x as well as y and there will be what is called as a cross derivative as well right here the third term. You can keep on adding terms here again the third order and the fourth order and so on. But again coming back to the kind of situation that we are dealing with we will deal with a first order Taylor series expansion. Then there is something called a Leibniz rule which we will utilize time and again you will see that many of the textbooks will routinely use this Leibniz rule. Some of you may be familiar with the Leibniz rule as the differentiation under an integral sign. So, what I have listed here is a one dimensional version of the Leibniz rule. So, what we have is a function of two variables x and t with variable limits on the integral u of x and v of x the lower limit is u of x and the upper limit is v of x and this entire integral is differentiated with respect to the variable x. So, what we can do is that using the Leibniz rule this differentiation with respect to x which is sitting outside the integral can be brought inside the integral in the form of a partial differentiation now which will operate on this function f. But then you need to add a few more terms and those terms are essentially evaluation of the function at the upper limit times the differentiation of the upper limit which is v of x with respect to the x minus the evaluation of the function at the lower limit which is u of x. So, the t here that you see inside the argument for the function is essentially a parameter and depending on the value of the parameter you will use either the lower limit or the upper limit. So, here we have used the upper limit and we are subtracting the lower limit multiplied by the differentiation of the lower limit with respect to the variable x. So, this is what we call a Leibniz rule in one dimension if you are dealing with a situation where both limits u of x and v of x are actually constants meaning that they are not really a function of x at all what you realize is that this dv dx and du dx these two differentiations will actually turn out to be 0 and what you have then is only the first term here which is inside the integral then a partial differentiation with respect to x of the function which was the integrand here. The reason I point out this special situation of constant limits is because we will utilize this routinely when we go to the integral analysis what we will be actually dealing there with is a fixed control volume. So, that the limit of the control volume is actually fixed and in which case these third second and third terms will not really be there because the differentiation of the limits upper or lower will actually be exactly equal to 0 and we will deal with only the first term. So, this is what formally is called as again the Leibniz rule in one dimension and this is what we will use when we go to the integral analysis later. It is good to know some basic vector algebra and vector calculus as well. In fact, we will be utilizing the vector algebra and vector calculus routinely through this course. Many of these are actually familiar to you. So, I am simply listing some of the common vector products and differentiation rules that we should be familiar with. So, at the top we have the dot product then we have the cross product in terms of their magnitudes. In terms of the vector representation I am listing the cross product as our standard determinant expression. When it comes to the differentiation I am dealing with in the first instance here a scalar which is small a multiplying a vector and the whole product then is differentiated with respect to another variable t. Then I have a dot product which is differentiated with respect to t and then we have a cross product which is differentiated with the variable t. When it comes to the differentiation of the cross product we make sure that the order of the cross product is maintained when we carry out the differentiation. So, you see how it is we have d dt of a cross b where both a and b are vectors. So, we first differentiate a with respect to t and then cross that with b. So, the order is maintained and then plus a crossed with d b dt. So, these are standard vector products and differentiation rules which we have been routinely using right from perhaps basic engineering mathematics and these are something that will be required often on in the course. So, I am trying to list those right at the beginning. Let us talk about the notion of a field. So, as a result of our continuum assumption we will necessarily be dealing with what we call a field and field is nothing but you can say a continuous distribution of a physical quantity such as pressure, density, temperature, etc. In space it can be a function of time as well if you are dealing with unsteady flows. But typically we will talk about fields as continuous distribution of distributions of physical quantities such as temperature, velocity, etc. So, if you are dealing with a scalar such as temperature we have a scalar field if you are dealing with a vector such as velocity we will have a vector field. And in general the vector field v say can be a function of x coordinate, y coordinate, z coordinate and time as well. Once we have defined this field we are in a position to talk about the directional derivative and what is called as a gradient. So, directional derivative as the name implies is simply the rate of change of a field variable with respect to distance in a particular direction that is simply called as the directional derivative. And the directional derivative for example in the x direction will be the derivative of whatever field variable that we are talking about with respect to the x direction. Similarly, the derivative of whatever field variable that we are talking about with respect to y will give you a y directional derivative. So, here I am talking about a scalar field actually phi and I am talking about phi as a function of only x, y, z right now. So, from our vector calculus we recall that the directional derivative you can obtain as a dot product of what is called as the gradient of phi with a unit vector in the direction of interest. So, since our direction of interest is given by the letter s which can be x, y, z whatever the unit vector in that direction is denoted here by a hat over the s. So, s hat is the unit vector in the direction s we are familiar with the Cartesian unit vectors. For example, i hat is the unit vector in the x direction j hat in the y direction and k hat in the z direction as I have written in here actually. So, s hat is simply the unit vector in the given direction s and if we form a dot product of the so called gradient of phi with the unit vector in the s direction we obtain what is called as the directional derivative in the direction of interest which is s. So, d phi d s is simply gradient of phi dotted with s. So, what is this gradient of phi then in Cartesian coordinates gradient of phi will be represented as the derivative partial derivative of phi with respect to x in the x direction. So, the i hat is going with the partial derivative of phi with respect to x plus j hat times d phi d y partial derivative plus k hat times d phi d z which is in the z direction. So, note that if this phi is a scalar function gradient of phi is actually a vector. So, you can imagine that this d phi d x here d phi d y and the d phi d z which are the three partial derivatives with respect to x y and z can be considered as the components in x y and z directions for this gradient of phi vector. So, continuing to talk about the gradient if you recall from your vector analysis for the scalar function phi as a function of x y z we can always devise surfaces of constant phi. So, phi equal to phi 1 will be a constant surface, phi equal to phi 2 is another constant surface and so on. So, this gradient phi turns out to be normal to the surface phi equal to constant and in fact, it represents the largest spatial rate of change of phi at a given point on the phi equal to constant surface. So, physically speaking this gradient of phi turns out to be the largest spatial rate of change of phi at any point on phi equal to constant surface. We normally talk about the vector operator which is given by this inverted triangle which we call as the del operator and the vector operator del is simply given as the unit vector i times the partial derivative with respect to x plus unit vector in j times the partial derivative with y plus unit vector k times the partial derivative with respect to the z direction. So, that this vector operator del operates on functions such as phi. So, if I can form del phi or in principle I should call it as the gradient of phi all I will do is I will add a phi here, here and here to come up with let me go back in a second the gradient of phi as we had seen on the previous slide. So, this del operator is a very important and frequently encountered operator in vector calculus. We will be using the methods of vector calculus sufficiently in this class. So, we will come across this del operator all the time and that is the reason I would like to point it out here as part of the mathematical background. Now, note that again I had talked about this few minutes back if the field variable phi is a scalar function then gradient of phi when this del operator operates on this scalar function it returns a vector as we saw earlier. Then we will deal with what is called as a divergence of vector field and it turns out to be a scalar. So, what is meant by divergence of a vector field? If you want to denote this through a symbol we use this as del dot a where a is the vector field that we are talking about. So, in general a will have three components a suffix x in the x direction, a suffix y in the y direction and a suffix z in the z direction. So, this del dot a will return partial derivative of a suffix x with respect to x plus d dy that is partial derivative of y with respect of a y and partial derivative of z with respect to a z and this turns out to be a scalar. So, this divergence of a vector field is a quantity that we will encounter often again and when we go to some of these governing equations we will specifically try to point out the physical meanings of some of the specific divergences that we are going to talk about. So, for example, if this a vector turns out to be the velocity field divergence of velocity has a certain specific physical meaning which we will try to point out when we come to it in a few lectures from now. The next operator that or the next relations I should say that we have listed here is that we first form a gradient of a scalar function phi. So, this grad phi is a vector and then we take the divergence of this gradient. So, the divergence is the outer operator you can say gradient of phi gradient that is is the inner operator and if you work out the algebra in the Cartesian coordinates you will get del dot del which is something called as del square which is what we call as a Laplacian operator and that Laplacian operator in Cartesian coordinates is given by the second derivative of x partial operating on phi plus second derivative of y partial operating on phi plus second derivative of z operating on or second derivative with respect to z I should say operating on phi adding together is what we will call a Laplacian of phi. So, this del dot del operating on phi will result into del square phi and the explicit expression for del squared in Cartesian coordinates is simply partial square divided by partial x squared partial squared divided by partial y squared partial squared divided by partial z squared. So, these are second derivatives all of them partial with respect to x, y and z added together. Moving on with few more vector operators there is something called a curl of vector field which is simply given by the cross product of the del operator with respect with a vector field. So, in this case I have chosen b as the vector field and this del cross b is simply using our standard cross product rule of the determinant expression I can evaluate this using the determinant expression. So, when it comes to kinematics we will see this curl of a velocity field which will result into what we will call a vorticity field and the vorticity field then will be simply del cross v where v will be the velocity field and it will be utilized or sorry calculated utilizing this determinant expression. What I have listed down here is a set of vector identities which we can come across during the study of our fluid mechanics. I am not going to talk about these these are for your reference whenever we use one of these I will simply remind you that we had discussed or we had pointed out some of these vector identities at the beginning. So, for example, if you look at the very first one what we are dealing with here is a curl of a gradient of phi. So, the curl is the outside operation gradient of phi is the inside operation phi is a scalar here. So, gradient of phi is giving you a vector and then that vector is you are finding actually the curl of that vector in the outer operation and it turns out that whatever be the phi the curl of a gradient of phi will always be 0. It is very very easy to show this using the Cartesian coordinates all that you need to do is you first find the gradient of phi and then take the curl of it using an expression such as this and when you work out the algebra you will see that this turns out to be always the case as long as phi is a scalar. And similarly there are a few more useful vector identities which I do not want to discuss, but you can easily prove many of these using the standard Cartesian coordinates. So, the second one here is what we will call it divergence of a curl of a vector is equal to 0 always and so on. So, at this point what I will point out to you is that you simply note down that these are some of the mathematical requirements that we will be utilizing from time to time. At this point we are not discussing those from a proof point of view clearly we have not discussed any formal proof for any of these, but for the purpose of our course we are not really required to get into those kinds of proof. We are going to utilize these as mathematical tools and at this point we want to note down these whenever we are going to use one of these specifically we will point out again that this was the identity that was pointed out to you long time back. The one last point here that needs to be talked about is the utilization of couple of integral theorems from vector calculus which we will routinely use especially in the integral analysis and converting the integral equations of motion into a differential equation of motion. You will always require some of these some of the textbooks on CFD that deal with the finite volume method. We will actually utilize some of these vector integral theorems as well in their derivations. So, you should be familiar with these integral theorems when it comes to the use for CFD type material as well. So, what we have here is an enclosed volume which is shown by this roughly ellipsoidal shape and the volume itself is shown by this symbol V and it is an enclosed volume. The surface area that is enclosing the volume is shown by this letter A here. At any point on the surface that is enclosing the volume we can talk about a unit normal which is pointing outward from the surface and when it is pointing outward this n hat for example, at this point which is pointing outward at this point will be taken as positive if it is pointing outward from the enclosed volume. The two integral theorems from vector calculus that we will utilize regularly are what are called as the Gauss theorem which will deal with converting a volume integral into a surface integral and a divergence theorem which will also convert a volume integral into a surface integral. You can always think about these as converting an area integral into or a surface integral into a volume integral as well going in the reverse manner. Similarly, for the divergence theorem going from surface integral to volume integral. So, either way these two theorems of integral calculus vector calculus I am sorry relate volume integrals to surface integrals. So the Gauss's theorem here deals with the gradient of a scalar function phi integrated over the enclosed volume V can be represented equivalently as a surface integral where you take the field variable phi and integrate it over the surface. Only thing is that the integral is actually a surface integral in the vector sense because we are utilizing the vector element dA using this n hat as the qualifier for the area element as a vector element. The divergence theorem deals with taking the divergence of a vector field integrated over the entire volume V and expressing that as an equivalent surface integral where you form a dot product of the vector B with the unit outward normal n hat and integrate that dot product over the entire surface. So, again here we are not talking about the formal proofs of the Gauss's theorem and the divergence theorem. You will find the formal proofs in one of the two applied mathematics books that I listed at the beginning of this session. It is quite possible that during your engineering mathematics courses you have undergone the formal proof of these theorems. For our point of view we are going to utilize these theorems more as a couple of tools rather than a mathematical entity. So, three things treat them as such that these are going to be the tools which will be utilized as we move on in our course material. So, this is more or less the first set of slides that I wanted to talk about as part of the introduction. So, to summarize this introduction session what I have done is that we have just introduced the basic ideas that we will deal with when it comes to this fluid mechanics analysis. We will deal with a continuum description of the fluid medium. As a result of the continuous or continuum description, we will make sure that our field variables like temperature, pressure, velocity, density, etcetera are all continuously varying, smoothly varying throughout the field. As a result of this continuum assumption, we will employ methods of differential calculus and the vector integral theorems. What we have listed toward the end is a list of useful vector identities and integral theorems from the vector calculus which will be routinely using as we move on in this course. Typically this will be used in the fluid mechanics part. Some of it may also be used during the CFD part. As I mentioned some of the finite volume techniques can be derived through the utilization of these integral theorems and many of the textbooks are actually utilizing these integral theorems as well. So, it is useful to know all this information. Again keep in mind that at this point we are utilizing this as a set of tools from applied mathematics. You can always go back to those nicely written couple of mathematics books that I have listed to get more information on this vector calculus and the integral theorems. So, with this we have essentially come to the end of the first session which we will call the introduction session. What I will do is that since there is about half an hour left for this session let me try to take a few questions just to sort of get going on this. Mufakumjha of Hyderabad you have a question. So, please go ahead. Thank you Mr. Paranik for giving us overall idea of CFD and its importance. Some limitations with respect to the approach to draw these profiles etcetera because even the solutions that we adopt for solving these equations because we will rather energy equation or other way another two equations. Whereas, the limitations could be just as slightly zeroes a proof idea about the limitations of CFD. Though the benefits are appreciated they also find that there are some limitations with respect to the study of CFD. Yeah, so the question seems to be if we can point out some of the limitations of the CFD analysis. If you go back to the set of slides that I just showed the basic limitation think about is the limitation of the model that you begin with. For example, if you cannot handle a full set of Navier-Stokes equations for whatever reason that will be a limitation from the CFD point of view. However, let us say that you have a model that you have chosen and then you are going to solve it numerically you will generate some numerical solution.  So, what happens is that when you execute a numerical solution you evaluate various terms in the governing equation through some approximations. So, how good are those approximations are going to decide how good is your solution.  So, especially when it comes to things like compressible flows for example, there are entities such as shocks which you want to capture through your CFD simulation. Many times depending on the accuracy of the method that you are employing you are not in a position to actually capture the shocks correctly. So, that turns out to be one limitation of a CFD analysis. Usually if I want to point out in one line what can be the main limitation of a CFD analysis is that you are trying to approximate each term in your governing equation somehow. So, depending on how good is that approximation that you are implementing your solution is going to be decided on that.  So, that to me is one of the main limitations. Of course, you know some problems are very, very complicated to be simulated. So, for that you will need enormous amount of computation power. So, that is an inherent limitation as well that you just do not have that sort of a computational power available to analyze a very complicated real life problem. So, what you end up doing many times is that you simplify that problem in terms of either the governing equations or in terms of the geometry that you are going to handle. So, again there is a limitation from the point of view of a CFD result that you are not really solving the entire real life situation because of the lack of computational power you are actually simulating something which is a subset of that and that also turns out to be another limitation. But to me the primary limitation is how good are your approximations for the terms in the governing equations and you will actually notice as we proceed especially the next week when we talk about finite volume method as one of the techniques for the CFD analysis. You will see that we will employ several approximations for each of the terms that comes in the governing equation and there you will come to know how the approximations are actually resulting into let us say a poor CFD solution. So, that is what the answer would be at this point. Thank you. So, R C Patel, Sherpur you have a question please go ahead. My question is related with the continuum model before considering the continuum model how we can define the continuum means what does the continuum exactly and what is the significance of the continuum? Yes. So, the question is about continuum model and specifically the question is what is really a continuum? So, very simply if you want to talk about physical terms a fluid continuum you can think about as a continuous distribution of fluid material where we are not bothered about the molecular nature or molecular structure of the fluid material at all. We are going to only focus on the overall behavior of the fluid medium and to get to that we do not really need to get into a molecular level. What we say is that the fluid material is continuously distributed and distributed in the domain of interest and corresponding to the material distribution there will be a distribution of the fluid properties as well like the velocity and the density and the pressure which will be also continuously distributed through the domain. Now the point really is that as you said how do we know whether a situation is a continuum situation or not correct before we get on with it. So, that is when I had pointed out that governing parameter called the Knudsen number and in many situations that you start analyzing you can actually calculate many times the value of the Knudsen number based on the mean free path of a molecule that in that particular situation to the characteristic length of that problem you form that ratio and if that ratio turns out to be much smaller than 0.001 or there about say rule of thumb you are fairly sure that the continuum situation is valid and then you do not have to bother about anything. Quite roughly most of the engineering applications that we normally deal with in mechanical engineering are perfectly within the continuum application only if you are dealing with a highly rarefied gas flow or a micro or a nano scale flow type situation you are in a situation where the continuum model is not applicable. But roughly speaking continuum is more or less always applicable what we mean by continuum is that sufficiently large number of molecules are always present in a very very small volume that you can think of within the domain so that some sort of a point value of density or pressure can be assigned meaningfully to that particular volume and then you can get a distribution of these points in the domain. Thank you. Shivaji University please go ahead you had a question. Is the scalar quantity or the vector quantity? If it is vector quantity is it important to specify its direction? Shear strain is actually a completely scalar quantity it is essentially a ratio of two lengths as if you go back to one of the slides one of the beginning slides we had calculated a rate of shear strain. So first we calculated the shear strain and then we calculated the rate of shear strain. So if you see the expression for the shear strain which is by the way very similar from what you get in solid mechanics also strength of materials is exactly the same it is simply the ratio of two lengths and as such it is a scalar quantity. Thank you. NIT Trichy you have a question please go ahead. Yeah I have a question I am not a mechanical engineer I am a metallurgist I would like to discuss about the main pre-parked of the atoms or molecules whatever you call it. Okay suppose the density of the metal is very high the main pre-park decreases is it correct? Yeah the question is about mean free path of the molecules and specifically the question is that if the density of material increases whether the mean free path goes down and that is absolutely correct. We are actually talking about the mean free path in a fluid medium though please keep that in mind. Typically we are talking about gases really if we are talking about mean free path one can talk about liquids also but mean free path is nothing but the distance that a molecule fluid molecule will travel between successive collisions. So as the density of a material increases the molecule is actually start colliding more and more in a given time and therefore the mean free path will actually go down as the density of the material increases that is correct. So that is why I said that if we are dealing with a rarefied situation a rarefied gas dynamic situation for example we are dealing with a very low density fluid flow such as what will happen in a vacuum situation for example or very high altitude from the earth surface where the density would be very low and therefore the mean free path will be very large. So what ends up happening is that if you form the ratio of the mean free path to the characteristic length of the problem in a situation where the density is very very low the Knudsen number turns out to be very high and therefore the continuum model in such situations is normally not applicable. So if you are dealing with a rarefied gas dynamic problem or a vacuum situation you will see that typically continuum models are not applicable. However we are going to restrict ourselves completely to continuum situations as far as this course is concerned but I hope that answers your question. Thank you. J. N. T. Hyderabad you have a question please go ahead. At what conditions the gas theorem and divergence theorem is to be used first question and the next question is shear stress tau directly proportional to rate of shear strain whole power n. What is the physical significance of n? What do you say? Yeah, so there are two questions. One is with respect to the use of the Gauss theorem and the divergence theorem when they are they are supposed to be used. Actually what I will say on that use is that we will utilize them very soon in the next couple of lectures. So I will request that if you can just have some patience maybe for two more sessions we will actually end up using those for situations where we are going to convert volume integrals into surface integrals and vice versa. So just wait for a couple of sessions and you will know how to use them. The second question was tau directly proportional to du by dy. What is the physical significance of that? Actually the physical significance is that there is a whole lot of fluids which we will call Newtonian fluids which are found to obey that relation experimentally. So if you were to do an experiment with with a Newtonian fluid you will actually find that the shear stress in case of a Newtonian fluid behaves or is directly proportional to the rate of shear strain. So physical significance is that experimentally a large number of fluids have been found to be conforming to that law and those are what are called as Newtonian fluids. So in this course we are going to be dealing with only Newtonian fluids. Non-Newtonian fluids if you want to deal with typically you will deal with those in chemical engineering situations. So slurries for example are non-Newtonian many times.  So it does not follow this tau equal to mu times du dy type situation. It is actually mu root times du dy raised to something. However, we are going to follow only Newtonian. So that is that is the answer to that. Thank you. Nitte Minakshi you have a question please go ahead. Can you verify the flows and where exactly can we find the application of this highly rarely failed verified flows in real world applications that is in real time applications and also can you share some more knowledge on this close form solutions. Yeah so there are two questions. One is dealing with the applications of rarefied gas flows where those are encountered. So as I was mentioning earlier if you look at situations such as reentry flows which are very very high altitude aerospace applications. You will typically deal with rarefied situations because at very high altitudes let us say about 90 kilometers from the surface of the earth or 100 kilometers from the surface of the earth. The density is very very low and there you are actually dealing necessarily with a rarefied gas flow. So that is one application. The other application is somewhere where you can think of a vacuum technology application. So if you are dealing with a high vacuum equipment and if you are analyzing flows in high vacuum equipment again because the density is very low you will necessarily deal with a rarefied gas flow. So that is about the rarefied part. The second question was about close form solutions. So what I will answer is that we are actually going to work out in detail 5 or 6 close form solutions maybe in 3 more days as part of the course. So I will request that you just wait till about Thursday or at the most Friday of this week and we will actually work out several of these exact solutions close form solutions. So you will know what we are talking about there. Thank you. Ajay Somaia you have a question please go ahead. Yes of the printout page number 5. The question is on the last line when the fluid is at rest it cannot resist a shear force no matter how small. But there is an internal resistance. So how do we justify this statement? Yeah so that is how actually we define the fluid. So the question is about whether the fluid can resist a shear force no matter how small when it is at rest. In fact that is the definition of a fluid material. What we say is that something which is fluid which behaves like it cannot stay in static equilibrium when it is in a static equilibrium and if some sort of a shear force is applied it will start flowing it just cannot stay in the static equilibrium. However we will see little later when we are working out some of these exact solutions is that when the fluid is in motion it can actually keep moving under what we will call a dynamic equilibrium situation where it will not really experience any acceleration it will keep moving with a constant velocity but it will be moving with a couple of different types of forces acting. So for example there will be a pressure force acting and there will be a viscous force acting but at the same time the fluid will keep on moving without an acceleration in some sort of a dynamic equilibrium situation. So there it is not continuously accelerating mind you. So that way it is able to resist a applied shear force when it is in motion but if it is stationary and if you apply a shear force it just cannot remain stationary it will start flowing. So that is the way we actually define a fluid. Thank you. This is a question regarding application of computational fluid dynamics in manufacturing process such as electrochemical machining or electrolysis. Can we apply computational fluid dynamics for analysis of variation of conductivity of electrolyte between parallel plates? Yeah the question is about application of CFD in a specific manufacturing process. To be honest with you I am not really familiar with those kinds of manufacturing processes but I have come across some mention of the use of CFD in the kinds of processes that you are mentioning and in principle I would think that it should be applicable. There should not be any question of that. I am not particularly in knowledge of any of those but if you read some of the manufacturing journals especially the latest journals I am very sure that you will come across the application of CFD for the kinds of manufacturing processes that you are referring to. Unfortunately I am not really an expert in any of those. So I cannot really specifically answer that question. Thank you. Amrita Kolam you have a question please go ahead. Could you explain how a Newtonian fluid differ from a non-Newtonian fluid with an example? Yeah the question is how do we differentiate a Newtonian fluid from a non-Newtonian fluid. So the best way to really look at these two types of fluids is if you go to a rheological diagram where you plot the shear stress on the y axis and the rate of shear strain on the x axis. So if you see the Newtonian fluid since tau is directly proportional to mu times du dy there will be a straight line describing this situation passing through the origin. However if you are talking about a non-Newtonian fluid because tau is proportional to du dy raised to some power which is not equal to 1 the plot that will describe this situation will not be a linear one passing through the origin. So it will be a non-linear curve passing through the origin in case of a non-Newtonian fluid. So the typical non-Newtonian fluid that you can think of is a toothpaste for example. So if you start squeezing the toothpaste harder and harder it will start flowing more and more. But you will need some sort of a certain shear stress before which it will actually start flowing. So it is not like a Newtonian fluid where you employ a very small shear force and it start flowing but it requires certain finite force which will make it move and then as you start increasing the shear force it will start flowing better and better or more and more. So that way it is a classic example of physical example of a non-Newtonian fluid. Thank you. Manipal, please go ahead you have a question. Yeah I am. Let me come back to the concept of continuum. Hello. Yes, please go ahead. Concept of continuum. See when I say the distribution of matter is continuous and it is homogeneous. Distribution of matter is continuous or homogeneous whether those statements are analogous or else is there any significant factor when we do the statistical averaging? So the question is about continuum assumption and whether if the material is continuous and homogeneous will essentially mean the same thing. Roughly speaking it is correct. The material does not have to be necessarily homogeneous. However there will be a continuous distribution of properties like the density and the pressure throughout the fluid medium. See what we mean by this continuous distribution is that if there are sufficient number of molecules present in a very small volume that you can think about you can assign a value of properties such as density for that volume and then you can think about several such volume sitting right next to each other forming the entire fluid continuum. So that way you can imagine a continuous distribution of a property that can be formed as a result of the continuum. So the continuum assumption will lead into the formation of a continuous distribution of the fluid properties and for the continuum assumption to be valid you need to have a very large number of molecules present in a fairly small volume that you can think of in the medium. Thank you. So what we will do now is that we will break for lunch. So thank you very much.


What year is it? Good morning little ones Another new Sunday is here, and we're actually leaving on a trip tomorrow Tomorrow we head back to the truck today. I guess we're just enjoying the The wind it's been very windy this fall if you guys notice that too has been windy where you are too extremely windy here all the time Always windy well it seems the weather has calmed down It's calming down at least so that's good. That's good So some news to share with you guys It'll sort of tie into what we're doing today, but my dad is in the hospital right now he had a mild heart attack it's his second one and He said it's not as bad as the first one. It was very very mild But he my mom took him into the hospital. Luckily he was at home again My mom took him into the hospital because he was having chest pains and they did a bunch of tests and They found out that he had indeed had another mild heart attack so since The sickness is still among us We're not allowed to go visit him in the hospital And again because this sickness is still among us before they do an angiogram on him or go any further with the procedures that they need To to see if he needs stents again or not They need to test him for the sickness We're waiting on those results right now. So they they initiated that or they did the test last week and We're expecting them back on Tuesday, which should be tomorrow for you guys Unfortunately, Canada does not have any rapid testing yet like other countries do so We still have to wait like two to three business days For results to come back. So in the meantime, they have been isolation at the hospital Just a case those guys are precaution because before like I said before they can work on them They have to rule that out They have to wait for a negative to come back So they're not letting us go visit him the only people who go to see him are his specific the specific nurses and even they go to see him as little as possible and they have to wear the whole gown and stuff when they go in there and he's all by himself and He said the heart the heart attack wasn't that bad at all. It was very small even like like I said even smaller than the first one So he's doing fine. He's in good spirits. He's not in any pain. He's doing just fine But I think it's the hardest part is being alone so the family decided that We would Or mom made this sign says we love you. I'm not sure what it all says on there and We know which room dad is in in the hospital And we're gonna go stand out in the parking lot and call him from the parking lot and tell him to go to his window and we're all gonna be standing there holding up this poster of this banner saying that we love him and We support him and that he's not alone. We're gonna stand out in the parking lot for him and I know he'll appreciate that so they're gonna be here actually any minute probably and we're gonna head over there and hopefully make dad's day a little bit brighter and Then hopefully tomorrow on Tuesday, we can get that negative result back so that you can go into Winnipeg Get the angiogram done get all of that stuff out of the way and get the green light to continue on with life again But the way the world is right now There's so many extra steps you got to take and so many extra precautions you got to take that it It can be really tough Especially the isolation so that's what we have planned for today And then after that we're going to go to their campsite and help mom clean up a little bit So that dad has one last thing to do when he gets out of there and Gets back to life But just to clarify we're expecting a negative result from the tests for the virus and the sickness He doesn't have any of sim any symptoms that relate to that whatsoever They just have to do that as a precaution before they move forward with other treatments for the mild heart attack that he had But we're expecting them to come back negative Here we go Rose couldn't make it but That's okay. Well yell extra loud for her So dad had sent us a picture of his view out of the hospital. So we're trying to determine which window he's in He doesn't know we're here yet in the hospital there My sister is on the video chat with us We can't come and visit you, but we we did anyway. I guess we can go closer, right? We're a way out here There's dad's view. Oh, can you see him? It's too bad that that's the way we have to visit in the hospital nowadays. He was pretty psyched. Yeah He was pretty excited and it worked out perfectly the view was perfect So we got to go into admitting here mom is gonna quickly run in Dad's Bible for him to read and what else were you gonna drop off jacket and his jacket in case he needs to go to Winnipeg And he's ready Yeah, me too. I always like being in control. I'm not a very good passenger Fly around if it's not me driving. I don't know why So we're here at the campground it's already all closed down So we had to walk in Mom knows the owners. They know we're here cleaning up got to get it ready for winter Season's over already. We had a like I was showing you before really windy day and it's blown most of the leaves off already I don't want to say it, but you know what's coming. There's a farmer that empties his barns Probably about five minutes ago by the smell of it. That is fresh Farmers around here would say that smells like money No, you got mice too See people have been worried about us having mice in our trailer where we have it but you get them here, too Get them in storage. You get them everywhere. You just gotta get them in houses unless you live like in a cement Bunker I'm gonna probably find a way in there, too underground then you get the rats Down here so our job for today is to tarp this thing Looks like it's already tarped done. Yeah, we gotta put a tarp over it and we're gonna take their Their smoker home looks a lot different in fall here. Hey guys remember it during the summer And it's all been packed up already Yeah, you can see your neighbors now pretty clearly couldn't couldn't see them in summer. I think that's a little bit. Okay. Yeah I think that's about as wrapped up as we're gonna get it should be good for winter All set ready for spring Now we just got a fast forward through winter And skip that season. Yeah, I think that'll that'll work Trying to try in here Maybe yeah, we put this here so we could line these up and see they line up up there, but they don't line up here Oh, it smells good, so this has got to go home to their house the barbecue staying no, this one's got to go home because this one's fancy Oh, it's right. Okay Okay Here we go. Good thing it's got wheels on it. Here it comes. I'd love one of these. This one's awesome. You can do it, your super sister Five minutes. Okay, so I've got this. Washers are here. Okay, so I think it's just gonna stay there We better put this canopy up I think Eastbrook's does a take That's all we got over here We can't be perfect at everything. I know, right? We're already ridiculously good looking. Very ridiculously good looking. Oh, yeah, that's right. Those go down there as soon as I see it I'm like, oh, that's right Figure it out. I don't know how guys do it, but Right against it, right? Yeah, but then you put a wristband on some of these guys and they're like, hey What does whipped mean? You ready? Stiff peaks. Hey, you want to pull it up? Oh, these things have to come out. Yeah, you see that on there? This thing here, mom? Oh But we are professionals. There we go. It's all set Dad's gender keys Keys for everything. I know Somewhere there. I've got to find What's this? Oh, it's a viney. I should have brought some cheese for all this vine How's it going boys? Hey Let's let the little guys out first.  Okay, let's go. Where'd she go? Where'd she go? Where'd she? Just letting you know I'm here too. Oh, hey dad. Hey dad always number two Diesel you love me, right? You love me? Chevy don't yell in her face He's Those are the rules Go on guys So yeah, that's the that's the day so We made dad's day made his day brighter by Showing up outside the hospital there. We went and helped mom clean up her campsite Mom took us out for supper afterwards So my bell is full Feeling good about the day I wish dad wasn't stuck all alone, but You know, he'll be fine. He'll be fine. They'll get that negative result tomorrow Or on Tuesday and then he can go in for all the other tests that he needs to and then Be back to normal in the middle time


You'll experience patient care that is specific to you with exceptional follow-up care that ensures your hearing and balance needs are being met. Audiology Associates at 1428 Northlake Drive in Prestonsburg. On Thursday, April 27th, the Southeast Kentucky Chamber of Commerce will be hosting the National Civics Bee at the Mountain Arts Center. Twenty students from all over Kentucky will be gathering for a competition that will use civics as a problem-solving device. The top three winners will receive cash prizes and a trophy for their efforts. So we've got 20 students all across Eastern Kentucky, several here from our part of the region, but all across those 24 counties. We're going to give away some gas cards from DoubleQuick to make sure that getting to and from the competition is not an issue. We've got medals and cash prizes. Everyone gets a medal, top three students get a trophy, top three students get cash prizes, and it's going to be a great event. So all this is optional. All of it is extracurricular and beyond the scope of their normal day-to-day. We had to submit an essay about a problem in the community that civics can solve and how they may be able to use civics to solve those problems. So we brought in almost 200 essays and talking about challenges in the community. And these six, seven eighth grade students are bringing ideas to us on how we can solve those problems using civics. The competition will begin at 11 a.m. on the Mountain Art Center stage. After three rounds of multiple choice and critical thinking competition, the winners will be selected by a board of judges. So Thursday, the day of the competition, live in person on the stage of Mountain Art Center, we've got three rounds for the competition. First two rounds are multiple choice. We have tablets on stage, donated, sponsored by Appalachian Wireless. They're going through in time, real time, answering questions multiple choice. First two rounds, the questions get harder, questions have more points, and then we'll take a break. We're going to feed the kids, take care of mother here, and then the final round, the top five students through the first two rounds of competition actually go through their essays. And the judges will have live judges there talking to them actually go through and get questions for their individual essays about the problems in the community and how they're using civics to solve those. And from there, we get the top three winners. Reporting from Mountain Top News, I'm Nick Colum.


Hey, everybody forced here. We're ripping 2021 prison football team all 10 box number three and teams. I'll show the results right here. And you can always find these lane sports cars dot com. Make sure you're joining everybody and good luck. See we got tokens. Happy to see you. Hey, so Caleb says go away toe. I'm just kidding. All right, prison team. I'll first I've opened up at this year. So we'll get a red and yellow rookie prism. And usually there's like a silver as well some base. So let's see what we got. Jones, I guess silver rookie Washington, Jamie and Davis, and a red and yellow Jason Taylor out of 39. There you go. Red and yellow Jason Taylor dolphins. What was with them like turning the lights down and back up? I think it was to get people to leave. Oh, it's gone. They're like, All right, doesn't matter. Gotcha. Gotcha. Once that guy's been a quick refresh over here. There's a sign. More like gold red to me. That's what I'm saying. It's so bright. It's really bright yellow prison yellow. It just looks gold. Yeah, the law. Nixon and Palmer rookies. They silver rookie with Niners, Ambrie Thomas and red and yellow David Johnson Texans also to 39. I think it should just all be 39 then. Yeah, 39 or less. Yeah, he he he just he just landed a minute ago. He's he leaves in the morning actually to go back. Yeah, it's a quick stay for me. He's just here so I could take a quick break and he's going back home. Good use of funds. So Broncos rookie Seth Williams and red and yellow rookie Sean Wright Dallas to 39. Yeah, I haven't been pretty busy. Haven't seen courtesan like six hours. You don't want to read that. This is the eight. Well, that's the eight. I'm sorry. I literally looked at it too. This is the eight. So the rookies are to kill him's right. He's always right. No, he's not sleeping on a table.  It's not even it's like it's like a double. It's not even like a the Brady Bay's Nico, McKinney, Silver rookie gain well for the birds. There you go birds and red and yellow Blacksico birds Giants to 39. So we just got this back from BGS. That's cool. It's a bald guy. Limited Locos Michael Jordan. 810. That's pretty cool. We're exquisite 0607. It's cool. Yeah. I don't know, dude. Lane just been handing me big cards all day. Look at this one. I'm like, sick. Everyone, everyone says do better next time. Make the grade better. Silver rookie Ravens Rashad Bateman and red and yellow Ravens Marcus Peters to 39.  Yeah, it's pretty nuts. I don't know, dude. Lane just been handing me big cards all day. He's like, look at this cool Serena Williams. We're exquisite. I'm like, Oh, what? Check out this game use shield of Drone Bettis or something. Pretty though. There's a Herbert second year. He's the end rookie followed by a bright well Silver rookie Kelvin Joseph Dallas and a red and yellow Cooper cup to 39 Rams. Serena's good. She's behind me doing the sorting and stuff. Cortes I haven't seen for like a few hours now.  I don't know. She got caught up with the hotel and something. Yeah, she said the hotel was like super slam. She couldn't even like valet like it was that busy. Schwartz, Revan Jordan, the silver rookie J2 fell Jags told her we needed her liquor ready yellow to 39 for the Washington football team. It's joke guys with like a line down it. Get an empty box and wrapper to the Washington here. It's a color match too. No, but Cortes was grabbing us just making like a supplier on as far as like food and drink basically. And she was doing some shipping and yeah, I wouldn't blame her if she just went to bed. I wouldn't be mad. I get it. Good on you for tea. So Silver, Khalil Herbert bears rookie. And red and yellow Keenan Allen charged 39. Yeah, today went by fast. It's good stuff. basketball team all prism. Maybe we'll get some of that. Tralance rookie Niners. Bar more silver for the Colts rookie quitty pay. And red and yellow Cam Newton Pats at 39. Alright, last one guys. This is a 10 box number three will be caught up by the end of the next one. It's already going by fast. I'm just gonna go into filling in a cheese thing. Esbridge. I mean, also looking forward to Saturday night. Silver rookie bills Greg or so and a red and yellow Grady Jared Falcons to 39. Our new boss Rocco. That's right. That'll do guys. We got a another 10 boxer prism team all coming up next. I just swiveled the camera. Appreciate it.


Hi sorry for that delay technical problems in a tech conference who would believe it So without further ado, we now have Stefan Finuka who would talk to us about Enabling real-time computing in OpenStack Thank you afternoon So yeah talking about real-time presentation and we're not running out of time. So I'm gonna speak to this a little bit Stop me if I happen to there's a laser pointer at the end of this or stop me if I happen to point the laser with somebody's eyes by mistake So a little bit of background This is a pretty broad presentation that covers a good few technologies So I'm going to give a quick run through of some of the technologies I'm going to be talking about here first and then I'll move into like a deeper dive on This functionality how this is implemented and how it works So in case you haven't heard of it OpenStack is a big deal It's an open source cloud computing system Made up of a load of little project a load of individual projects that focus on various aspects of a functioning cloud So you have services for Networking you have services for compute you have services to block storage and so forth The thing I'm going to be talking about here today is Nova, which is the compute service I'm an OpenStack Nova core developer basically one of the maintainers and Most of my focus on OpenStack Nova is on enabling NFE functionality So high performance compute huge pages CPU pinning that kind of thing Which I'm going to go into here OpenStack From a high level perspective it tries to be as much of a cloud as possible So you should realistically never have to know anything about the underlying hardware capabilities of the cloud that you're running on You're able to create servers. You're able to create networks images attach things together It's all nice and kind of like abstract and cloudy And that's that's what 90% of people are looking for But the problem with this kind of cloud abstractions and that is when you talk get down into the nitty-gritty of the the kind of features that telco users or Scientific users are looking for those cloud abstractions tend to hamper your your performance and That's not something that you want. It basically means OpenStack isn't useful for your use cases so we've been working on kind of Fixing a few of these issues for I'd say since before the June over lease, which was three or four years ago So we've implemented a couple of a couple of features during that time to kind of close this performance gap with like normal bare metal so things like Allowing you to attach SRIOV devices to instances allowing you to pin the CPUs of your instances to host scores huge pages Like representing your your hop or your guests apology and like a numeric aware fashion and Then the last two releases we've worked on On two particular features one of which I'm going to talk today the real-time policy and then another one Which I'm not really going to focus on which is emulator first policy so for Anyone that isn't aware what real-time is real-time means that you're if you have a real-time application And you're you're guaranteed that that will meet certain timing constraints So if you're delivering messages over a network that those messages will be delivered at a certain amount of time something will happen Like I'm a given repetition. It doesn't mean that it's fast or anything It just means that it's consistent and this is important from again the telco perspective because if you're talking about Sending voice packets or something over your network. You need to make sure that they actually get where they're supposed to be getting So there's a couple of prerequisites for what I'm going to be talking about here The first of these is that you you need suitable hardware. This is a bit of a This is a bit of a tricky area because if you go on to like the real-time Linux kernel wikis and stuff they'll list hardware and they'll say well We tested on this hardware and the performance wasn't that great and it was better on this particular chip than this chip and They very rarely give a reason for why it's better. There's just something in the underlying architecture of those chips That makes it better for real-time use cases All the testing that I did on here was on a standard like Intel Z on base Micro and micro semi server or something. Yeah, I got Obviously, you're gonna need open-stack piker newer because as mentioned before This functionality wasn't available before pike You're gonna need a recent enough version of livevert because this all hooks down into livevert Deep down and then you're gonna need a kernel that has the real-time pre-empt patches applied So sent us packages this you can get real versions of this.  You want it running a hundred percent a hundred percent of the time So basically disable hyper frame power management turbo use that kind of thing And then from the software perspective the real-time kernel that I mentioned before the real-time KVM module and There's a utility called tuned which you configure like your grub kernel boot parameters for you tuned comes with profiles for for real-time that you can install through a Repositories and that will just pass through those are those kernel boot time of boot parameters So instead of the kernels and started installing the tune profiles Configuring those tune profiles enabling huge pages and then this last option This last option is a Nova specific thing Which lets you determine What cores on your system Nova's allowed to touch When you're talking about real-time Linux You should usually leave a couple of cores for non preemptible processes So the the preempt patches make most things in the Linux kernel But not everything So the the general best practice is to get leave a couple of cores that the schedule looking keep for itself So yeah, basically isolating a couple of cores from the from Nova The guess what you're actually going to be running from your application perspective is entirely dependent on What you're trying to do for the sake of testing? I just went and use the exact same configuration for my guest as I had on my host that meant that I was using the real-time kernel again and The tuned profile only this time I went for the guest profile, which again is a bit like it's packaged and available If you already have a real-time application whether that's something that you've got from like you bought in Application from Ericsson or something a VNF that kind of thing thing you should obviously use that Again install all those stuff Enable the profile enable huge pages And then we actually finally get into the needed other the opensec stuff Opensec Nova has two ways of configuring a guest The first of those is via image property So when you create an image you can set certain properties saying I need this specific CPU feature for this image to work The other way is what they call flavors. So flavors dictate how much memory your your VM is going to have How much CPU is going to have? It also allows you to use a thing called extra specs, which are like scheduler hints So they'll say I want CPU pinning. I want real-time. I want real-time to use these cores this kind of thing There's three things that we're going to want to configure here. The first of these is CPU policy, which dictates Whether your guest cores are pinned to the host on that We're going to want them pinned The second of these is whether you're enabling real-time because it's a real-time demo Obviously, you're going to be enabling real-time and then the last of these is huge pages Which you usually want from a performance standpoint You've also got the other two things, but again, I'm not going to talk about these today So going back to that open stack The command line client will create some of flavor. We've got four CPUs four gigs around 20 gigs of disk space and We're calling we're given in a name RT1 small and Then we're going to set these extra specs, which again I like scheduler hints. So there's four of these here The first of these the CPU policy is the one that determines whether your guest cores are pinned or not Dedicated means that we want our guest cores to be pinned to the host cores So it'll be a one-to-one mapping between guest core processes and your host cores The second of those real-time we want to enable the real-time and We also want to Tell Nova that some of those cores Shouldn't be marked as real-time cores Again, because we're using the Linux kernel for our guest here and we want some of those cores to be non real-time and for scheduler processes and Then the last one is wonky huge pages And then we create a server with this flavor and with some sample image that doesn't really matter so the interesting Thing about how this works. This only works Nova supports a couple of couple of hypervisor drivers This only works with Libvert KVM. So if you're using Zen or something, sorry, this you're out of luck So What's interesting to look at here is the Libra XML that Nova will generate for you and what that actually how that reflects Like beat down what kind of calls and stuff is making to the host So the first of these is the the CPU tune element This will be if you do like dump XML for your Libvert domain, you'll get a big XML blob With all the information about your your guest in it. If we look at just the CPU tune one CPU tune It's an element that specifies which of your host physical CPUs that are maybe CPU would be able to do So that CPU pinning that I was talking about this determines that for you So there's two important attributes to note here The first of these is the vCPU pin one and the vCPU scheduler one vCPU pin How that works under the hood it calls and Linux Function, which is set affinity if you look At your your QMU process and you look at the threads that QMU has spawned It has an individual thread for every single one of your guest your guest cause so each vCPU is basically a host process a KVM process and By Configuring this property what we're saying is that the the first vCPU in the instance we want it pinned to Core to on the host we want the first vCPU then to be pinned to the third core on the host and so forth and It called liver calls the set affinity function on that and if we go and we look using the tacit command at The pinning information for these cores. We see that in fact they are actually Affine to host cores and nothing else if assuming you have your host configured correctly Nothing else should be running on these which means that you're getting essentially 100% of your performance For each of your guest cores The other one then is the vCPU scheduler attribute So this is again another optional element and what this determines is the scheduler type that your CPU threads are going to be using Under normal circumstances this will just use the standard scheduling process that whatever your host is using Naturally, we don't want that what we want is we want VFO or one of the real-time Priorities to be applied How that works under the hood is again another kernel function this time the previous one was set affinity this is set scheduler and As the name suggests You pass in a process ID And you tell it what scheduler policy you want to be applying to that process ID and Various magic will happen and that will get applied and for this to validate this we have a CHRT application you pass in a Process ID to this and it'll give you the scheduling policy That's in order and the scheduling priority the priority is a value from 0 to 99 and that determines If you've got two things in their conflict in which of those will take priority over the other process The interesting thing to note here the first two calls that we had We're using like I said we had told we'd mass those because we didn't want every core in our guests to be running With a real-time policy because the kernel isn't necessarily guaranteed to work that way So they're using the standard other Policy for this and then the other two cores, which is where if we were running an application This is the cause the guest cause that we actually run our application on They are scheduled with the the FIFO policy We also talked about a huge pages as far as that's implemented. There's a memory back in attribute You say what page we configure what page size we wanted We and then there's some other stuff in there. It doesn't really matter Nova does all of this for you And if we go and we look at again the QMU process we get the process ID for that and we look through the through the huge page mapping for each of those processes We'll see that it is actually indeed mapped to the QMU process as we'd expect if we Because we created the server if we go and log into that server then You can use an application called cyclic test, which will evaluate the real-time readiness of your system That's you that will give you a measurement of your latencies From what I've been told you want you want to be looking for something in the below 20 microseconds, I think Of latency on average anything below 20.  So yeah, that's keeping it real-time. Thanks for listening If anyone has any questions shout Can you say that again? so If I heard you correctly you're saying if you boot multiple instances and they're pinned they'll use the same host They'll be pins the same host CPUs Do we do anything to prevent that from happening? We use Yes, so far no of a perspective The recommendation that we have is if you have pinned instances and non pinned instances The non pinned instances As a way of the pinning information and just stomp all over your the cores They'll float across cores and they'll use anything that they can The recommendation we have for that is to use a normal feature called host aggregates Where you divide you eventually essentially divide your cloud into multiple parts and you're saying this part of my cloud ID servers are allowed to run real-time Processes or pin processes these ones are allowed to use non pinned processes And that just stops them from overlapping Far if you have two pin processes noble will make sure that the two servers won't overlap There'll be no overlap. So you'll give four cores or whatever to one server And then if you give four to another guest There'll be four different cores and if it's not able to do that it'll fail to schedule So I'll make sure that we don't overlap that doesn't happen So the question was One of the drawbacks if you have CPU Pinning already. What are the drawbacks of adding real time to that? So the I know that there are performance impacts Of using real time within the kernel real time I think I said that at the beginning real time doesn't necessarily mean faster. It just means it's more deterministic So the general recommendation will be you use real time if your application requires real time Knowing that it is going to require more resources or you're going to get less throughputs If you don't require that real time You shouldn't yeah, you shouldn't need it because you're better off use increasing your resource utilization possible. Yes So the question was in the benchmarks that I stress I stress the guest Did I also stress the host and other guests? Did you say? so as part Part of the deployment process for this the expectation is that you would stress the host first to make sure that the host is actually configured So there there's a real time evaluation tool RTE valve which you're supposed to use to make sure that it is configured correctly And then you use something like cyclic test to make sure that your latency is is what you'd expect Yeah, so that was done before anything else was deployed on top just to make sure that the host kernel was configured I did not know I didn't know there were several processes that would That would actually be a nice test to do Because theoretically There should be no impact Theoretically yeah, but I imagine there probably would be some impact You'd be trying to keep us as much logic even the way that I deployed this I used This still isn't supported in triple O like Red Hat's deployment tool So I was using DevStack for this and it was an all-in-one Deployment so I had like neutron and stuff running on that that compute node. I shouldn't have had any of that there They're all isolated, but I realistically I should only have had the compute service running on that and everything else should be on a different machine It would be a bit. That's actually something. I'll probably go and do when I get home. I I did a question. Did I try running two things? I did but I didn't benchmark it It was only just to make sure that it didn't work and there was no funky stuff going on So the question was if the VM is pinned So one CPU is it possible to live migrate to different hosts? No you sort of This is a long-standing bug with Nova We don't provide as part of a live so live migration for anyone that's not aware means that your instance is running And you move it on to a different host and the instance Stays running with minimal downtime like micro seconds. It's usually a little more than that But almost no noticeable downtime The problem with how we do live migrations is we don't pass sufficient information as part of the live migration request to recalculate The CPU map pinning in for mapping on the destination side so what ends up happening is that you use the exact same cause that you're using on the source on the host we don't regenerate that which means if you already had an instance running there and The cause would be you have we're using cause five to ten and this use cause three to seven then that would be the two or three core overlap Yeah, so it's a long-standing bug and The reason it probably hasn't been fixed is because the fix is really really difficult So you're saying that the scheduler isn't properly evaluating the the destination It kind of it's a dumb Like how it's doing it is a little bit daft all it's looking at is do I have enough free CPUs and It will attempt to find the pinning information and if you have enough free CPUs. It's not a scheduler issue per se So you you will have enough free CPUs and it's able to do the appropriate mapping But when it actually gets there it doesn't recalculate that So it's more it's not the conductor kind of think of the name of the actual specific service that would do that But it's it's only in fact that we should be regenerating this XML and we don't it's a long-standing bug and it's annoying, but The recommendation usually is like don't live my great instances with pinning and Realistically if you have CPU pinning on and you're worried about determinism and that you probably don't want to be live migrating in most cases It is a bit of a niche use case Any other questions? I think we're good. Thanks guys


The idea is this. The world is changing. And so are we. Time seems to be moving faster. But we intend to outrun it. What's thrown away today could be gold tomorrow. We look to the future. But we are not fortune tellers. We are entrepreneurs and innovators. We see obstacles as a playground. We see the difficult questions as chances to learn and to grow. We look at the world and we see challenges and opportunities. The idea is to find a place where ideas can flourish and we can nourish our ambitions. A place where students learn from experts. A campus for solutions and startups. A world within our world where entrepreneurship and business innovation. Ideas and ambition. Are at the core of our existence. A place where studying isn't just studying, it's an immersive experience. A place for developing knowledge, business skills and an entrepreneurial mindset. At research university level. A place where we can grow and contribute to a society of our own making. A place for innovation, analysis and smart solutions. The idea is that this place now exists.


Partially taxable pension and annuities. So now you're saying you got a pension or annuity, but only part of it is taxed Okay, so now you're gonna have a you know a taxable amount non-taxable So enter the total pension or annuity payments for from form 1099 our box One online 5a so if you're form 1099 our doesn't show the taxable amount You must use the general rule explained in publication 939 to figure the taxable part to enter Online 5b that's kind of an unusual situation because usually you would think and hope that it does show the taxable amount But if it doesn't you can go to that publication But if your annuity starting date defined later was after July 1st 1986 see simplified method later to find out if you must if you must use that method to figure the taxable part So you can ask the IRS to figure the taxable part for you for a $1,000 fee that doesn't sound like very worth it for details. You can see publication 939 So if form 1099 our shows a taxable amount you can report that amount online 5b But you may be able to report a lower taxable amount by using the general rule or the simplified method Or if the exclusion for retired public safety officers discussed next applies Insurance premiums for retired public safety officers. So kind of a special type of area here If you are an eligible retired public safety officer law enforcement officer firefighter Chaplain or member of rescue squad or ambulance crew You can elect to exclude from income distributions made from your eligible retirement plan That are used to pay the premiums for coverage by an accident or health plan or a long-term care insurance contract You can do this only if you retired because of disability or because you've reached normal retirement age The premiums can be for coverage for you your styles or dependence The distribution must be from a plan maintained by the employer from which you retired as a public safety officer Also, the distributions must be made directly from the plan to the provider of the Accident or health plan or long-term care insurance contract You can exclude from income the smaller of the amount of the premiums or three thousand dollars You can make this election only for amounts that would otherwise be included in your income an Eligible retirement plan is a government plan that is qualified trust or section 403 a 403 B or four five seven B plan If you make this election reduce the otherwise taxable amount of your pension or annuity by the amount excluded The amount shown on box 2a of form 1099 are doesn't reflect the exclusion Report your total distributions on line 5a and the taxable amount on line 5b enter PSO next to line 5b if you are retired or Retired on disability or reporting your disability pension on line 1h Include only the taxable amount on that line and enter PSO and the amount excluded on the dotted line Next to line 1h so again somewhat of an unusual type of situation there You