 And now we have a session on Introduction to Open Foam Structure and Dynamic Mystique by Dr. Chandan Bose from University of Edinburgh. I would like to welcome him for his talk. Yeah, so I warm welcome Dr. Chandan Bose. So I'll just brief his bioscage. He has a very big bioscage, but let me introduce him to you all. So Dr. Chandan Bose did his masters from Jadalpur University Kolkata and was a gold medalist in his batch. He was a first class first in his batch. He did his PhD from IIT Madras and has been awarded the Institute Research Award, Best Thesis Award and the prestigious Indian National Academy of Engineering Innovative Project Award. So he did his postdoctoral research from the University of Leach, Belgium, and is a senior postdoctoral research fellow and adjunct lecturer at the School of Engineering University of Edinburgh. And he is also a member of the Open Foam Technical Committee of Hossie, IIT Bombay. So it's a pleasure to have you here, sir. Over to you. You can begin the session. Thanks a lot. Thanks Pyle and thanks everyone for joining the session and I hope that it will be useful to whatever projects you are involved with in Open Foam. So let me first try to share my screen to see that if it is happening properly. So I have 45 minutes so I will try to first give you an overview of what type of MESS motion or dynamic MESSing we can actually incorporate in our Open Foam projects. So this will be first overview of different kind of MESS motion algorithms that are available in Open Foam. I understand completely that it is a bit advanced topic but due to my unavailability I have to give the talk today at the starting day, but I will take you through the process and then we will do one or two example problems so that you can do it with me. And just to ensure at first that you have the materials of two case directories that I have shared. Is it true, Pyle can you confirm that? Yes, the case files were sent to them through our enemy IIT team. So all of them have received it. So I request all of you just to download the two case files that I have shared to you and towards the end of the talk I will tell you which are those files and what do they mean and how to run them and how to visualize what kind of MESS motion we can incorporate. Alright, I think with that I would like to start this session or this talk and the title is Introduction to Dynamic MESSing but I will also take you through the introduction to the case directories of Open Foam first because I can completely understand that you have just learned the MESSing in Open Foam so block MESS in an introductory example and then an advanced setting but you may not have already run many cases. So whatever case one or two as time permits we will run together I will take you through the steps one by one. Alright, and I request you all of you to make it interactive and so as Pyle have already given a big introduction I just want to correct one thing that I did not do my masters from the other university I did my bachelors and I did my masters and PhD from IIT Madras and now I am in the University of Edinburgh alright and I am since I am involved in the technical committee for documentation and tutorials so you are please feel free to reach out to me if you have any particular queries or if you want to contribute to the tutorial repository of Open Foam directory and just to inform you at the start that there is also an Open Foam Journal and you can see these two cover pages which actually summarizes my research interest and I am interested in biometric fluid structure interaction problem so in the 2022 cover you can see the flow field above a porous disk which we are modeling to understand the flow dynamics of a dandelion seed and then 2021 cover below you can see the figure that that comes from my PhD thesis it's a chaotic flow field around a flapping airfoil so throughout this talk I would give you some examples and those examples comes from two main references the first main references which is very important for all of you and I would strongly encourage you to go through the link which is Open Foam wiki tutorials and you will get lot of tutorial problems and contributions from the community although this is the open CFD version but it's almost the same because now you are doing Open Foam version 7 or higher which is actually the foundation version and all of my examples will work with that I have tested that the case files will work with Open Foam 7 as we will see in a while but this link that I'm giving because I am associated with the Open CFD version so you can go to the link and see the contributions from the community and you can go through the Open Foam journal and download the associated codes with the paper so those are very useful if you want to build up your project carrier in Open Foam and the second important reference would I would suggest you to go through the tutorials that are provided by my colleague Joel he is one of the main contributor of the company Ulp Dynamics which actually has given lot of contribution in building up this Open Foam tutorials alright so about this training I have already told you that whatever we will learn and we will see is can be reproduced in Open Foam version 7 as I hope that you all of you are installed with version 7 so we can do things together and make this session interactive please so the agenda of this talk would be first to give you a recapitulation about what a Open Foam case looks like which you have already seen in this previous 2 or 3 tutorial session but I will just take you through that and we will also see how overall the Open Foam code repository look like so as all of you can understand it as a software but I would take a detour from your understanding and I will tell you that the Open Foam is not a black box like the commercial software but it's a code repository so it's very important for you to go through the codes and open the codes and see what is written in C++ language alright and the main topic of this session would cover different examples of dynamic messes so what do you mean by dynamic messes so till now whatever tutorial I suppose you have done you have done a flow field within a lead given gravity and a flow field within a pipe and so on and you have prepared the messes so in all these problems so far that you have done there the mess does not move so you solve the transport property whether it is a flow field whether it is heat transfer whatever it is your mess remains static alright but if we consider more more interesting and more difficult problems where I need to move the mess to facilitate different applications such as one of the one of the very interesting one is the fluid structure interaction so how can we do that so it is a bit advanced level of application so Open Foam code repository already has many features to incorporate these things and these are the main features that I have noted down here one is mess morphing so what is mess morphing mess morphing is nothing but where we deform the mess so in this animation as you can see it's an example of mess morphing so we see a mess where an airfoil is actually pitching but to incorporate that pitching motion we are actually deforming a region of the mess based on a inner and outer diameter alright so how do we do that what are the different algorithms involved in that so we will look into that I will just give you an overview and we will do an example and then you can build it on that the other methods which we will not we will not cover today but are possible in Open Foam are over set messes second is moving messes where you can move the whole mess together let's say to to solve a problem like like sloshing where you have a container full of liquid and let's say a truck or a truck containing a tank of petrol and then when the when the car moves or the truck moves there is a sloshing within the within the container if you want to solve such problems you have to move the whole mess region either with a prescribed motion or as a fluid structure interaction problem you need to use this moving messes then there are sliding messes such as arbitrary mess interfaces AMI capabilities in Open Foam and the last and very interesting one is the adaptive mess refinement I will show you the examples of these cases just to show and get an impression that how we move the messes but for now in this session we will mainly focus on mess morphing where we deform the messes to incorporate our desired motion of the structure and we will see what are the different algorithms for that alright so before going into that before diving into the dynamic mess motion let's recap what you have already learned throughout the morning and I can understand this is I think the last session so probably it's a good idea to recap things so if we want to solve any problem let's say we want to solve the previous problem that I saw that we want to understand how the flow field changes when an airfoil moves or airfoil peaches so as a overall CFD engineer how do you tackle this problem so first of all you need a geometry alright like I was seeing in the previous hands on session like the geometry of the pipe so if you want to mess a pipe you need a geometry you need a pipe then what we need to do to solve the transport or scalar transport equation within that region let's say for example Navier-Stokes equation to solve the flow field we need to discretize that geometry and to do that we mess that geometry and then after that we need a solver or we need CFD solving methodology or algorithms to solve those governing equation in each of these discrete points and we can do that by either serially with one processor or parallelly by co-processing it over multiple processors and once we solve the equation we need to we need to actually observe what are the outcomes of that simulation so we do post processing alright and so so we can divide overall as preprocessing solving and post processing and in the preprocessing just to give you an idea that in open form we have block mess capability which you have already practiced today we have snappy hex mess we have other capabilities like CF mess and etc. and we have commercial options like gmsh and so on and we have ansys fluent messing their own capability and so on and for the solver part we divide the whole open form code into incompressible compressible multi phase combustion heat transfer and so on so in the coming two days you might see some of these examples such as heat transfer and multi phase flows and then in the post processing we we have open form utilities but normally we use para view which is a open source post processors there are visit and other parts and also we have ansys take plot etc. so now if we if we look into the code structure of open form what we will look into that we have a project directory where my open form is installed alright and we can access it I will show you we can access it by going to that directory by the CD comment that CD dollar WM underscore project underscore directory alright if you go there. You will see that the whole open form code is actually divided into our categorized into different folders. One is the main application folder where my main solvers are located so they are actually this app within application solvers are the most important directory that you need to look into if you want to use a particular solver. Then we have tutorials folders which you have already accessed by dollar form underscore tutorial. Then the most important is SRC which is which represents source code which contains most of the source codes that is written within this open home framework alright and being is a installation folder etc is the configuration folder and W make is the folder which contains script to compile the C++ course. So how many of you have not seen this structure. You can just unmute yourself and tell me because it's difficult to see how many of you are alright because I can see how many of you are raising hand. Okay so I think at least more than 10 people have not seen so it's a good idea to first look into the whole code structure to understand how the codes are actually categorized and the most important folders here are the application and solver folders. Tutorial folders and the SRC folder alright. And if you go to any particular solver you will see that we solve a transport equation. Alright or we have a partial differential equation which we discretize using CFD algorithms and open form is known for its high level language high level coding pattern. So if you can see this particular governing equation which is a partial differential equation we can just write a bunch of line of codes in open form in source C++ to solve it. So we just write solve and within that solve block we just we just mentioned whether it is a finite volume method or finite volume code which is FBM or FBC. And then we have different functions already in built within open form to actually solve different terms such as we want to solve this partial derivative with respect to time we do DDT of row U. Alright then similarly if you want to do divergence we use div function and then if we want to solve a Laplacian function we solve Laplacian. So this is the high level programming that is used in open form and in the coming problems when you solve use a particular solver such as ICO form you have used ICO form for cavity. So if you go back to the source code of ICO form which is maybe located in this application solver part and some of the parts will be located in the SRC. So you can see that this type of high level programming is used which is in that code. Alright but now we will not go into that we will use that solver and simulate some of the problems. So the other thing that I want to show you about your installation directory and the user directory. So you can it's a better idea to show you that so I will. Okay so this is the terminal that I'm using and I have actually installed open form 7 just to do things with you so that you can do the same thing. So if you just open your terminal first thing first the first comment that we use to before we can use the open form environment is to source the banners. Alright so I guess that you have already known that so I will just let's let's do that. So my open form is installed in OPT. Okay so I will do go to the installation folder and source the BASRC file which you might already have included in your system BASRC which happens automatically. So by this comment by sourcing this BASRC file which is located within the ETC folder I enable the environment of open form and now I can use different environment variables. Alright so now you have already learned some of them but if you want to look at where is your installation folder. Okay so to do that just type FOAM form the form part of open form. Okay if you do that you go to the directory where your source code is located. Okay and if you check the path of that I can check it that my open form 7 code folder is located within OPT open form 7. Okay so can you can are you able to do go to your installation folder. So we can do the same thing by going by typing the CD comment and going to this thing CD dollar WM project direct underscore DIR. Okay so you can see that both of them are the same folder. Let me check the chat. Okay. Alright so this is the code folder where it is located and then if you just see what are the different folders you can see here that and these different folders can change with version to version may not be the exactly the same thing but the main folders that I told you will be the same. So within this you can see this application folder within which my solvers folders are located. Then we have the important SRC folder which is the source code folder within which all my source codes are located and we have this tutorial folder. Alright so now I just went to CD dollar WM underscore project underscore directory. This is what is this? This is nothing but an environmental variable by just typing that we went to the same path like you used basically going to CD dollar form FOM all capital form run. You have used it before as I've seen and you see that there is no such folder because the path is home open form run and we do not I did not set this folder that path. So it is showing no such file. But if you have already said you can go to your run folder. Okay. Like so what are these environmental variable if you want to check this what is the comment. So we can easily check this by by using this this comment just let me show you this. Yes. So we can grab the form the form keyword from my environment and I can show you all these different environmental variables that you are using. Can you see it. I hope you can see all the different environmental variables that are available within the open form environment and you can directly use them to go to those folders without even using all these long paths where you can make mistakes. All right. So that was my main objective to show this to you so that it is useful to you later and then let's go back to our main topic and resume our discussion. All right. So now coming to the case structure before we jump into the dynamic mess motion is that we are actually if we go to any tutorial folder and I have shared with you two folders. I hope that all of you have opened that and actually seen what are the contents. So you will see that there is a zero folder where basically we include all my initial condition and boundary conditions. So all the state variables it can be velocity pressure temperature and so on. And then we will have a constant folder within the main case folder, which will content my mess within the poly mess folder. Your block mess dict is executed and your mess file creates a folder called poly mess where your mess files are located. And we will have a transport property file where actually we write down all the different constants of the system such as kinematic viscosity and so on. And the other folder is system folder where basically my main executable are located. Okay. So we basically give the instruction to the code that how much time it to run for and what will be my time step size and so on. Those are located in this control dict file and the FV scheme and every solution contains the instruction for which CFD schemes to use what will be my other algorithms to solve that and so on. So I hope that now you guys have downloaded the folders that I have shared. And if you see those folders in each of those folders you have these three files mainly zero constant and system. And also you have a basket which contains the commands that we need to run to execute this simulation. Okay. So can anyone of you can confirm me that you can see these files within the folder that I have shared. Just unmute yourself and. Okay. All right. So now we are ready with the case folder. Now I will give you a faster background of what we are going to do. And then we will run those case and see the files what are there one by one. Okay. So as I have already told you that when we use dynamic mess, it is the difference between this dynamic mess cases as opposed to the static mess mess cases that you have already used is that we have to move the grid point. All right. So basically if you see my this examples. Okay. So these are the three examples of three different dynamic mess motion where you can see that first in the case of mess morphing. We are actually morphing the mess where we are deforming the mess to move my structure. In the second case, we actually have in the AMI means arbitrary mess interface method where we have two different mess region. And one mess slides over the other. And the third example is adaptive mess refinement where based on some scalar criteria that we will propose the mess gets gets divided and gets finer and finer to capture the details of the flow field. So these are the different examples of dynamic mess motion. Now, mathematically, how does it how does it come into picture. So we have a transfer scalar transport equation in terms of our integral equation or in a partial differential form. In this case, you see the integral form of a scalar transport equation. So the problems if you need to morph the mess if you need to add or remove new sale. If you need to slide the mess if you need to overlay one mess on another just to move the structures. We need this dynamic mess algorithm and which are very useful for solving different physical problems. And these dynamical messes are compatible with all any physical models. It can be Navier-Stokes equation solver. It can be your heat equation solver. It can be your porous body solvers, whatever it may be. You can use this dynamic mess algorithms globally. So they are not dependent on anything. And what are the application and why do we need it as I already told if you want to simulate a rigid body motion. If you need to simulate a fluid structure interaction problem or you need to refine your mess only in the regions where you are interested in. You can you need to use this kind of dynamic mess algorithms. So for example, as this example I give again and again because I've done my PhD on this. So if you take an example of a flapping airfoil, you can simulate the same problem using different dynamic messing algorithms. And these three examples are actually first one is arbitrary mess interface. Second is mess morphing. Third is overset mess where one mess moves over another mess. So these kind of examples, this can be any, any more difficult and challenging example. But based on the physics that you want to capture, you might have to choose which dynamic mess algorithm is most suited and most accurate to give you the proper results. All right. So how do we incorporate this dynamic mess algorithms. So that we do by a file called dynamic mess dict, which we keep in the constant folder. Okay. So if you need to incorporate this algorithm, if you need to tell open form see I want to move my mess or I want to morph my mess. You need to include this file, which is dynamic mess dict, which is in the constant folder. I request all of you to go back to your constant folder of the cases that I've shared and you should find this file, which is called dynamic mess dict. All right. And what else we need, we basically need to define the motion type. All right, so how are we going to move it? Are we going to move it with a prescribed motion or with passively which governs by the flow field and so on. And accordingly, we have to define the boundary condition, which we define in the zero folder as the moving wall velocity or calculated because that body. So in this example, if you see this body, this airfoil is my structure, which is moving. So the bound what will be the boundary condition for this airfoil that boundary condition will be moving wall velocity or a calculated method. Which is applicable for fluid structure interaction problem. So these two changes you need to have in your case folders. You have to very cautiously see what boundary condition you have given to the moving structure, which will actually move the mess. And the other thing is that what is whether you have the dynamic mess dict file in your constant folder. Okay. So these are the source code folder paths where you get different dynamic mess codes already available in open form. So I'm not just going there because I don't have enough time to so all these folders to you. But if you go to your SRC folder, which I just showed you that which consists of all the source code, you will find dynamic mess, dynamic every mess, every motion solver, rigid body dynamic, six degree of freedom body motion. So these are all the different dynamic mess folders which contains related codes to incorporate this motion. All right. So you can go back to your installation folder and check whether you have these folders in within the SRC folder. Okay. Okay. So I will just now show you two folders just to show you that where these codes are located. Again, this is for your future reference. If you want to modify some of these codes and you want to write your own algorithm to move the mess, you need to know where these source codes are actually located. So to do that, let's quickly go to my terminal back. And if I go to SRC. Okay. And you see the path is slash OPT open form seven SRC. And let's see what are the folders we have. So we have here dynamic every mess dynamic mess and so on six degree of freedom, six degree of rigid body motion, etc. So these are the folder which contains the dynamic messing codes that you might need to modify if you need. Okay. So now if we go to a folder called every motion solver, which we will use in the dynamic mess dict just in a while. So let's go to every motion solver and we see what are the different. There are different folders, but I just need to know what are my solvers which can move the mess. So I will again go to every motion solvers. And you will see there are different mess motion solvers available, particularly within this mess morphing type of dynamic messing. Okay. So there are displacement based solver where you define the criteria for movement of the mess as displacement. There are velocity based criterias or algorithms where you define the velocity of the moving mess or the grid velocity. You have a component displacement, there are different algorithms. So there is no time to tell you what are the algorithms, but I just wanted to show you the path that where your codes actual codes are located so that you do not use open form as black box. Okay. So that's the that was my motive. Well, so let's go ahead and before I go to the folder quickly, I just want to give you some cautions on numerics that you need to use for this dynamic messes. Okay. Because as you can understand the last point says that no need to say that dynamic messes are intrinsically unsteady. So when you are moving the mess, or you are trying to solve a problem which incorporates moving mess, your problem becomes unsteady. And when your problem becomes unsteady, your solution or the CFD results are very much sensitive to the grid resolution, which you need to determine by grid independent study, which you probably will do in the later sessions. And then you need to be very careful about the time step that you use. Okay. And combining these two, there is a criteria called current number or CFL number, which decides the convergence of the CFD scheme that you are going to use. All right. So you have to be very carefully choose this delta T, you have to very carefully choose the grid size, because the problem is unsteady. All right. And also, you have to choose carefully the CFD schemes or CFD solution methods based on their stability and accuracy for dynamically moving mess problems. And these are very different from the problem that you just solved, let's say a lead driven cavity. All right. And it is needless to say that these simulations are computationally expensive. Of course, if you want to solve a challenging problem, you need to solve it for more time. And going back to the main method that we will see now is the mess morphing. And now I hope that you have a fair idea about what is mess morphing where we are deforming the mess. So it's also known as mess diffusion or mess moving technique. And we can incorporate predefined motion, such as sinusoidal motion, co sinusoidal motion by a mathematical function in the dynamic mess stick and point motion file, which I'll show you. Or we can give any arbitrary motion in a tabular form, which also I will show you in a while. Okay. And without wasting much time, we will see what are the libraries and all and I want to show you in a hands on with the folder. So let's let's go back to our folders. So please keep those two folders that I've shared. And I'm going to show you them and open the files one by one and so you water those file. Okay. Yeah, so I have shared to you two folders. One is called mess motion, which we are going to look at now. And the second one is called input table. So these two are actually these two simulates, these two simulates nothing but the problem that I just showed you here. Let me show you again. So we are basically going to solve this problem. Okay. So we have a cylinder which is oscillating with a prescribed motion and to incorporate this oscillation. We are using dynamic messing in open form and I will show you how we can incorporate different motion function using these algorithms. All right. So can anyone confirm that all of you have opened those folder so that we can look at them together. Yes, sir. All right. So let's open the mess motion folder. Okay. So here I have already run the simulation because it takes some time. So you have all the solution files already. And this point one point two point three are not nothing but the snapshot that we write using the right interval. Okay. So mainly you will have zero constant system. And these three folder. We will look into these three folder and run the case and you have this run underscore solver.sh. This is the basket where the comments are written. Okay. So let's look into the zero folder together and we have here pressure velocity. These two are quite normal, which you already had also for the cavity case. All right. So this gives you the kind of initial and boundary condition for the pressure and the velocity variables. Okay. But the extra two files that you have here is point displacement and point motion you which we basically where we will define the motion. All right. So you can open this however you want using notepad or whatever. I am I am actually using it by a software called text edit. And let's open the file and look at it together. Okay. So I have created a mess and given to you already where it is a rectangular domain and we have a cylinder as a wall. All right. And so basically we have outlet one patch is outlet where we are giving. So this is my point displacement. So these are the boundary condition that we mentioned. So these are pretty standard boundary condition for all the patches. But the important one is for cylinder. Okay. As I told that if you are going to move the cylinder, you want to have a different boundary condition given to the bottom. Okay. So here the type that I'm using which comes from this dynamic messing library is the oscillating displacement. That means the cylinder will oscillate with a certain amplitude and with a certain frequency. So to define that we have to give what is the frequency and in which direction. So this amplitude is a vector. So this first one is X second one is why third one is Z and Omega is the frequency. And telling that the cylinder is oscillating in the Y direction with an amplitude of four and everything in open form is in SI unit as you know and Omega is basically ready and per second in this case. Okay. And this value is uniform. So this is the extra part of boundary condition that we need to give to the cylinder to denote that this cylinder is going to move. Okay. So next what is the other file? Let's look at a point motion you where we will basically see what type of motion we are giving. Okay. So let's look into it. Everything is the same. So these are all the patches which are already defined in block mess. Okay. So if you see the block mess file, you can understand how the messing is done and you have already learned that. So here in the point motion you also I have given the same boundary condition. They should have the same values with amplitude, frequency and the type of the oscillation. So this is a function which is already coded in open form that oscillating displacement we want to incorporate. So that's done. So anybody has any confusion over this zero folder? If yes, please unmute yourself and ask. I think the difference between one specimen type and one simple one. Why we have this different one? Yes. So these two files. I'm going to that. So they are linked to the mess motion libraries that I just showed you right. So basically as if you can just recapitulate that I just showed you that you can apply this mess motion based on velocity criteria based on displacement criteria based on mixed criteria or many things. So these are the input boundary conditions files or these files are linked to those libraries. So if you go into detail of the libraries that I'm going now, you will understand why they are required actually. So coming to the main file, which is the dynamic mess stick within the constant folder. So if you open the dynamic mess stick file, you will see that we have actually mentioned the name of the method and name of the library file, name of the algorithm, everything. So here first coming to the fact that the dynamic every mess is the type of the dynamic messing solver algorithm that we want to use. So this is the dynamic motion solver every mess is a library which contains all this algorithm. All right. So I mean it is located in the dynamic every mess folder in the src as you have already seen. And now we are actually including the executable that is needed to execute this, which is this live file of every motion solvers. But the important thing is you do not need to change anything here. What you need to change is that what type of motion solver that you need to use. So the motion solver here I'm using displacement Laplacian. All right. And we have now also know that where this folder is located. So you can go to that folder and open this code and try to understand how it is written. But just to run the simulation, you just need to know what type of Laplacian motion is available within mess morphing. So one is displacement Laplacian. Other one is velocity Laplacian. And there are many other things which I have commented here just for the sake of if you want to explode these things such as there are multi solid body motion solver where you can actually simulate multiple bodies together. There are velocity Laplacian. I'm already told there are displacement interpolation method where the mess morphing happens through a interpolation technique. So there are many more and it depends on the solver version also. So as you go towards the newer version, you will get more capabilities here. OK. Now, next block of code is what is the input parameter for this displacement Laplacian. So we need to give this displacement Laplacian coefficient where the coefficient is nothing but diffusivity. We need to mention how the mess smoothing or mess diffusion is going to happen. And for that, we need to use different function at there. So there are inverse distance, inverse volume, quadratic inverse distance, exponential and so on. So in this case, I'm just using inverse volume and I'm mentioning the patch name which is moving. So the patch name, the wall that is moving is cylinder. OK. So I just need these two comments. So you already know that this double slash is nothing but commenting part. So where it is double slash or slash within this block of slash star, those are not executed. They are just commented. OK. I have incorporated all the possible options here just for the sake of your knowledge that you can go back and try it later. OK. And if you use velocity Laplacian, you actually need to give velocity Laplacian coefficient similarly to this. So depends which one you are using. All right. So I hope that this dynamic mess dict file is clear to you at least where we are incorporating this. And the other things are actually the same transport properties contains the kinematic viscosity turbulence properties contains whether it is laminar or turbulent and poly mess folder actually contains your mess mess information. All right. Now let us look into the system folder where we have the block block mess dict. And let me show you but I'm not going to explain this to you because there is no time. You already know how to mess bodies in block mess. And if you open this block mess dict you will see that what are the different vertices and then what are the different blocks and edges. And what are the different boundaries. OK. So here in the boundaries we are defined these patches out symmetrical ones into inlet cylinder. And we are using the same names of the patches in the zero folder where we are actually deciding on the initial and the boundary condition. All right. So next is my control dict which is which is important for dynamic messing because you need to decide that delta t clearly. So let us look into that. OK. And please let me know if you have any questions by the meantime. But here. So what I suggest is that you can comment out all the function of function force function objects. So for force you can use that but all the other function object you can ignore because you do not need it. You mostly need start time stop time end time etc. Which are very normal. But the important thing here is delta t. OK. And if this delta t you choose uniformly then you need to do a time independence test to decide which delta t gives you converts result. OK. And this right interval and right control where it gives you the capability to write your snapshot at some time step. So whether you want to write every time step or 100 time step you can choose that. OK. Another important step is here. Adjust time step. Here I have done no but if you do yes then you can actually include another variable which is called actually max co which is basically nothing but the maximum value of the CFL number or the current number. So if you do that your delta t will be automatically changed to keep this current number within the maximum limit whatever you mentioned here. All right. So this is somehow goes the structure of of the thing. The other things are every schemes and every solution you already know what are the different algorithms that you want to use from the theoretical knowledge. And then decompose per dig tells you whether you want to run it in parallel and how many processors you need to decompose the whole domain. All right. So now we are ready to run this case and I will also suggest you but let me explain the comments which we need to run. This case with and please let me know at this stage if something is not clear to you. So once you have sourced the open form environment, you know that the form clean tutorial this comment gives you the capability of cleaning your tutorial completely. All right. That's the first step. So you want to delete all your previous results just to clean your template file and then you do block mess by doing the block mess. You basically mess your block mess stick and get the poly mess folder in the constant for constant folder. Then if you want to check whether your mess is all right whether it is within the results of skewness non orthogonality that you want to have your mess with it's okay. Then this is a comment to increase the speed of your simulation. So you can just ignore it. So it actually renumbers your message to increase the speed of your simulation but main line is here which runs your code. So I'm not using any particular solver to solve an equation here. I'm using move dynamic mess which is a solver just to move the mess without solving your trans scalar transport equation. All right. And I do not want any function object or just to manipulate forces and so on. That's why I'm giving no function object and I want to write a log file of it. That's why I'm giving this comment just to write a log file of this solver which just moves the dynamic mess. All right. So let's let's do that quickly and then I will take up your question. So let's go to home. I mean please go to the direct go to the directory where it is located. Okay. So this is showing something else. So let's go to. Okay. It's easier to open another. Okay. So my folders are located in documents and open form documents. I've forgotten actually. So then open form. All right. Then within that I have this folder. Chandan. Yeah. I got it. So within that. Okay. So I have gone to the folder now. And I have. Dynamic mess. Right. So I have gone to the templates file. So you have this template folder with this with this folder mess motion. Right. So if I go to the mess motion. I see that I have zero constant system folder and the basket and all the solutions files already. So what you do is that you just do dot slash run solver dot SH is it clear to everybody what to do. So go to your folder just to dot slash run underscore solver dot SH which has the steps that I showed you. So it will first clean the directory. Then it will mess mess the mess file. Then it will move the mess according to the dynamic mess dig that is provided in the constant folder. All right. So I will take 10 seconds and stop sharing just to see what is the scenario is everything clear to everybody. Are you in the folder that I have mentioned or not. Please tell me that or I can clarify if you have any problem. Okay. So maybe you are shared as a Jeep folder. That's why it is showing permission denied. So let me show you what to do. Let me share my screen again because you have been shared this with Jeep as Jeep folder. That's why it might show the permission denied. So you type this comment. I will put in the chat. Okay, just go to the folder open the terminal and then type this comment which I'm putting into the chat window. Everyone. Yes. So after you do that then if you do whatever I'm telling it should be it should work. Okay. All right. So once I do that, let me do it again. Okay. I just do it. It just changes the permission permissions of the file. Now I just do dot slash. Are you in hyphen? Then if you put tab, it should automatically take the file run underscore solver.sh. And if you run it, it will execute the file. And if you run it, it will execute all the comments that is within that one by one. We can also do it separately one by one, but it is easy for you. If you know what are the steps, you won't forget. You write it in a batch file and run it. So, okay. I have not sourced the open form. So I have to again source the open form bassers. Okay. So let me see where I did it. Okay. Let me do it again. So if you have not sourced the open form environment, it will show that comment not found. Okay. So if you get that, you will understand that you have not sourced the BASRC file. All right. Okay. Let me, I don't know. It's a Mac version. So it's doing something crazy. Let me go to Linux version. I anticipated this. So I basically took this another version. Okay. So can you see the same folder? Now it has zero constant system and run solver. And actually I'm now opening the terminal and I am sourcing the same thing. So I'm sourcing slash OPT open from seven ETC and BASRC. Now I'm just running dot slash run underscore solver dot SH. Okay. If you run, you will see that one by one, all the comments will be executed and you will get the results. So now let me know if you have any problem or you are getting this. Yes. Okay. Now if you got this, now let us visualize. All right. So you know how to open a paragraph view and visualize already. So I'm just doing the same thing. Doing a creating a para dot form file just to open with para view because I want to use my different version of para view. So I'm using para view 5.10 some version. Okay. And opening it and let us see what type of simulation we have just done. Okay. Once it opens, I apply do apply button and I see the mess because now you cannot see the mess. So you go to the surface with edges and you see the mess that you have created at initially. Okay. Although it's not at zero, you can see the time time folder here. All right. You can see the time is point zero to five. If I don't, if I do here, skip zero time and then apply, you can go to the first step. So this is the mess that it looks at zero time. Now if you if I play on the mess motion, you can see that I have given a prescribed motion. Okay. Which is a sign omega t with a particular amplitude and the frequency and the body moves along with the mess. All right. And it creates a mess morphing to incorporate this kind of problem. And if you solve, let's say this problem with icofoam or any other solver like piece of foam, you can visualize what type of vortex setting and pressure field and how the velocity field changes. But here I have not solved for those. I've just moved the mess. Okay. So I think since I've already taken extra time, I'll not extend it more. But the other tutorial folder that I've given, if you go to the dynamic mess, you will understand the differences there instead of a function. I am giving a table. So basically you what you have to change is the point motion you and those files in zero folder and the dynamic may stick into the constant folder. And you can give any arbitrary motion of your body through a table form. Okay. And you can reach out to me if you are facing problem with that. Thank you very much. And that's all from my side and I'll be happy to answer any questions if you have. So lastly, just do let me acknowledge the other contributor actually. Otherwise it won't be a kind of fair. I will try to acknowledge my colleague Joel here because as I have already given the reference, you can get many more tutorials in his company website and this is a bit of advertisement that we are co-organizing with Joel me and some other colleagues. The 18th open form works up in Italy. So I'll be very happy if some contribution comes from India and it will be virtual. So if somebody is working in some project, they can virtually register and present their work. And this is the, these are the organizing committee where I am also in. So please feel free to reach out if you want more information. Thank you very much for attending the session. Thanks a lot. So quickly, if you have any questions for Abhushan or our team members or Dr Chandan, we can just have a quick five to 10 minutes question and answer session. Yes. So I am here. So you feel free to ask me if you have any particular question to me. So in the airfoil case, is there any way to make like an angular displacement where you can have the change of angle of attack? But how would you specify around the point which it is changing the angle? Yeah, you can just change the kinematics as alpha zero plus a sin omega t where alpha zero will be your angle of attack. That's one thing you change the kinematics code which gives you the kinematics or the second option is you can change your maze. You can prepare your maze, which is at some angle of attack. Okay. So basically if you create your airfoil originally at zero time at some angle of attack and then give the same a sin omega t motion so it will preserve that base angle of attack. Is it clear? No, like an application where you calculate like lift and drag over all ranges of angular attack. Like if you want to change the angle of attack. So that will take angular displacement. This was oscillation. So how would you make like an angular displacement? Okay. I got your question. So here in the point that you motion file we have given oscillating displacement function, right? So there are other functions like angular displacement. So you have to use a different maze motion function to prescribe that and to do that you have to go back to the source code that those are within the src folder to see what are the different maze motion function you are already happy. Let's say for example, if you want to do fsi you have to do six degree of freedom motion function. So yeah, so you have to use different maze motion functions. Okay, sir. Thank you. Thanks a lot. Yeah. Sir, I have one question. Sir, is there any case available in this open-form tutorial, sir? Like for cardiovascular fellow like bullets? Okay. These are very complex set of problems. So yeah, I mean depends on whether you are doing Newtonian flow or non-Newtonian flow, but and whether you want your geometry. So geometry of the heart to be flexible or rigid. If it is rigid, it's the same. I mean, in open form, you just have to provide the correct geometry and make it properly and choose appropriate solver to solve that. Okay. So basically, if you want to solve simple incompressible flow, you can use any incompressible solver. But I don't think there is any ready-made tutorial for cardiovascular flow within open form, but you can create your own case files actually depending on the physics that you want to solve for. Okay, sir. Okay. Sir, I have one question. Open form having a lot of solvers, right? Suppose I'm having a problem like if I want to drop any solid body on the water surface. So how to know, like, which kind of solver we are supposed to take? Like, whether this is multi-phase and what kind of solvers we use? So that is not related to open form. That is related to fluid mechanics. You need to do proper fluid mechanics courses to know what type of physics you want to simulate, right? So the problem that you just said that you want to leave a solid over a free water surface, it is a multi-phase flow because you have air and water and then you are in the rigid body motion of the structure. So once you know that it is a multi-phase flow situation, that knowledge comes from your knowledge of fluid mechanics, not from open form. Once you know that you come to open form and search for appropriate multi-phase flow solvers which can solve for multiple multi-phase flow air and water situation and also you have to incorporate appropriate dynamic motion algorithm to simulate the motion of the rigid body that you are leaving, okay? So you have to break it in step by step but the basic knowledge comes from the fluid mechanics and CFD, not from open form. So let's say which algorithms to use in open form, you need to know from your courses of CFD, not from open form. Okay, sir, thank you. Sir, I have got a question. Sir, am I audible? Sir, like you have shown the examples for rigid body motion, mainly. So if there is a flexible body displacement, then will there be difference in numerical stability, in these two cases and where will it be? Yes. So a flexible body problem like an appropriate two-way coupled FSI problem will depend on the coupling algorithm. How you are so there will be two components, one coming from the flow solver and another coming from the structural solver. So you have to also solve governing equations such as let's say Euler-Bernoulli beam equation for the structure and the solution that you get from the structural solver has to be coupled to the Navier-Stokes solver for example. And it depends on how you are coupling it. So there are different coupling algorithms such as partitioned approach or monolithic approach, weak coupling, strong coupling. So it's more difficult and involved problem which needs more knowledge from fluid structure interaction background. And accordingly you also have to change the CFD schemes just to reduce your error or make it converge. Okay. And this physics whether the code will converge or not will depend on the non-dimensional parameters that are involved with the system. So let's say for example the mass ratio how soft or how flexible your solid is in comparison to the fluid density is an important factor whether your solution schemes will converge or not. Okay. So thank you so much. Thank you. All right. So yeah. So basically I think I'm done with it and just I wanted to give you my email ID if you need, if you have more questions I cannot promise you that I will answer everyone immediately but I will try to get back if you have more questions. All right. Yes. And if you want to actually also do some internship related to open form please apply to the summer fellowship of 4C where I also last year guided some of one of the candidate and also if you have more involved project in mind feel free to reach out to me because I'm going to join probably University of Birmingham as an assistant professor. So I will come interns to work with me. So semester long internship for 2023. Yes, please apply to that and we I mean I also closely work with other professors in IIT Bombay. So that is a very nice platform to build your open form portfolio with very interesting that's today. I mean I worked with Dr. Chandan books during the summer fellowship program. Yes. So there is always an opportunity I'll talk about all this opportunity in the last day. So I get it for now. Yes. So since I will not see you all. So I thank you again for attending the session and I hope that it was at least useful for a bit. Okay. Yes. Yes. Please go ahead. Sir, how can you apply for the internship? Yes. So we'll actually instruct you. So there is always already an advertisement from 4C that there is a one semester long internship. So Pyle will give you all the details in the coming sessions. So we did this 4C.in there is a tab called internship. There you can find the advertisement. You can apply to that. Yes. I'll come to all these details in the last day. Exactly. Yes. So I just wanted to give you my email ID in case if you have any questions feel free to reach out. Okay. Thank you Pyle. So can I leave now? Yeah. Yeah. We are also almost time. It's 5 30 almost. So I'll close the session today. We are done for the first day to see you all tomorrow and thanks once again for joining. Thank you. Have a good day. Bye. Bye.