[MUSIC] Hello, welcome back to this course on modeling and simulation of natural processes. Now we will start our second module. And our second module is dedicated to modeling and simulation, some specific ideas, so why do we need a model? So there are several reasons, but I think first we would like to describe some process maybe to classify it. But mostly, I would say to understand how things work and to be able to predict how a system will involve and to potentially control it. What is a good model? That is, of course, a difficult question. We have already discussed on a previous model the importance of identifying the right question. But it's also clear that one model is not, I mean for one process there is not only one model. You may have several different models. And I like this quote by Einstein saying that for good model everything should be made as simple as possible, but not simpler. So you should just capture the right level of what you want to describe. Avoid to do too much. But of course, don't oversimplify thing, because then you will miss what you want. I think it's important to understand that when you do modeling, that nature has a certain level of reality in a sense that according to a scale at which you want to describe a given process, you may use different tools, different methodology. But since we know that our world is composed of atoms, of molecules, and if you think of, for instance, the atmosphere, you know that if you want to describe the wind or the value we don't want to describe this in terms of molecule. It's too much detail. So maybe you wanna describe this in term of fluid element, which is already dividing the atmosphere on small [COUGH] cubes for instance. And, in the end, you probably wanna discuss what's the pressure feel, what's the wind speed, and so on. So, you do it at the higher level and, of course, what makes the air? Well molecules and things like that. And, in the end, you may want to study weather forecast or climatology, and definitely don't want to do to credit modern atom. So again, you should really adapt your model level to the question and the scale at which you want to answer your problem. Another example in biology, we know that our body is made of cells. Cells make tissues, tissue make organ, and organ make living beings. So again, depending on what you want, you should focus on one of these levels. It's very difficult to model a full human being just out of the cells. It made off. So we are still very, very far from having the computer power for doing that. Same idea in a more, another problem. For instance, if you consider traffic of cars, well you may decide to describe that as a global phenomena. How many cars you have in the town, or something like that. But you can also describe in detail the position of each car. But certainly you don't want to go at a lower scale. I mean, we know that a car is made of mechanical parts, engine, wheels. That's totally irrelevant. To know that if you wanna study traffic. So again, if it's part of the system you described, it's not part of the question we want to solve. So again, be very careful of what you want to ask and what you should include in your model. And it's not always easy to identify this important ingredient. And to identify how these ingredients mutually interact. And that's where the knowledge of the field is important. So sometimes you have really to collaborate with people who know very well the phenomena. You wanna describe. And it is our experience that sometimes if you want to simulate a process at a finer scale than the question at which you want to have answered, it's usually a good idea, for instance if you want to similar traffics, it's good to go back to the level of the cause, and not have a higher level of description. It's usually true in many other problem and you will see example in this course later on. I would like also to illustrate the fact that for the same system, you can really describe it in many different ways, depends also on the scale at which you wanna describe it, but for instance take the case of fluids. I mentioned the atmosphere, can mention a flow in the river or whatever. So you see on the slide, there's an equation, mathematical symbols, it's a partial differential equation knows as the Navier-Stokes equation. Which is the key equation to describe a flow of a fluid. So it's a very beautiful construct, you should understand in terms of problem solving methodology that from the phenomena we go to this partial differential equation, PDE, And then most of the time you are totally unable to solve it. It's a too complicated equation for real situation. So then you go to a next stage which is discretisation so that you have a chance to have a computer solve this equation. So from the PDE, you need techniques, rather sophisticated applied math techniques to discretize this equation to finally get a numerical solution. So that's the standard way of modeling fluid, but recently there has been a new proposition for instance to create a virtual thread in your computer. So, what do I mean by that? We know that fluid is made of molecules. So could we just have a model with abstract molecules and abstract interaction with this molecule? So that's what is illustrated on this drawing, where you see actually the main phase of the motion of the molecules, so they will interact together, so that's what we call, collision. So think of them hitting each other and then due to the collision, they will bounce to a new direction and move across the space. Or they would probably eat new particles, and so on, and so on. So, it's a very abstract way of representing a fluid. But it turns out that it's a good way, and we will learn more about that later in this course. Because you put some very important ingredient in this model, which is mass conservation and momentum conservation. And the equation I showed you before it just a mathematic expression also if momentum conservation. So we just express momentum conservation either through a partial differential equation or through a computer model. And this look interesting, because with this approach in term of problem solving methodology you go directly from a phenomena to a computer model. And so it's arguably simpler. Now of course, as you should know, there's no model which is always better than another. And again, it depends on the question you ask and your resources to solve it. So those are some example of modeling techniques that are common so I will just go through them. We have N-body systems, we have molecular dynamics and you will have a chapter in this class about them. Then you have a very important domain which is mathematical equations to ordinary differential equation, a partial differential equation. So we'll touch a little bit this field, it's of course a course by itself, as actually all these different methods, methodology. But here we would also just cover the basic idea so you have an intuition of the different approaches. Then we will also briefly discuss what's known as Monte-Carlo method. And spend maybe a bit more time on Cellular Automata and Lattice Boltzmann. Lattice Boltzmann is just an example of this picture I show you before. So we can go very far with this idea. Then we will have a chapter on Multi-agent system. Discrete event simulation. And I will briefly mention complex network very soon but we don't have time to do it. So there are many excellent books and courses on each of these topics. But to our experience, there is no document or causes which try to cover all this field at once. And just to insist on the differences and what's the philosophy behind that. So I hope that we will be able to do it successfully in this class. So once a model is specified, of course, you need to run it on your computer. And you need to study the result, okay? That's what's called a numerical experiment. And basically, you have a kind of laboratory within your computer which implements a virtual universe out of the model that you define. So to do that, you need not only to understand the phenomenon that you are describing but you need to understand computer programming, a bit of software engineering, algorithms, data structure, hardware. Whether it's parallel computing, GPUs and so on. Need to understand about code, code optimization, data-analysis. So it's a lot of knowledge and that's all part of this computational science domain I was mentioning. Of course, once you have your program implementing a model, you need to verify. I mean it's not clear that you didn't make a mistake and maybe I have implementing something not corresponding to the model you define. So it code verification. Suppose you code is correct. You are really implement you were expecting. Maybe the model is wrong, so you should test whether your model that it's right. And one way to do it is to benchmark it on known phenomena for which the result is well known by other method, by theory. And so on. And if you want to apply your model to your processes for which you have no idea of the result, of course you need to have enough understanding of the field to be able to judge whether your result makes sense or not. So this is just an example of a a model where you would like to reproduce the deposition and absorption that you can see on the left image. This is a gray level, so you see little dots so that's particle that hit the surface and stick to it and form little clusters. And on the right, you have an image which is a computer simulation trying to reproduce the same thing. And, of course I will not tell you now what's in the model. But I just want to show you the result of this model, which is not only the image you see, but also the data which are on the plots on the right. And you see that as a function of time we measure the number of clusters or aggregate that we see per millimeters square. And you have a continuous line which is a production of the model. And you have the dot, which are the experimental observation, and of course, you're very happy here because you can explain your experimental observation out of the model. Of course, you have many parameter that are suggested on the top of the figures, which shows you that you have, of course, to input some knowledge in your model. So, with this I would like to close this second model on modeling and simulation and the next module will be about space and time. How do we integrate them into a model. So thank you for your attention. [MUSIC]