 Basically, this is the LES calculation, very simple simulation, and this one is showing you a bed formation, initiation formation and migration in real life stream that I will show you later more cases about this, and this one is also contaminant transport in the same basically stream. So as you know, for example, simulation-based research for waterway restoration is very important, and it gives us the opportunity to simulate the details of flow field and see the interaction between hydrodynamics and structures, and through this code, VSL3D, we are also able to simulate the interaction of flow structure and bit morphodynamic to see how a scour hole might develop around this structure and how we can basically optimize the design of different structures. And also, I'm going to show you some test cases that we have done to simulate bit form initiation for migration and growth of bit forms, and as you know, these bit forms, they have kind of global characteristics, and they happen everywhere in different scale rivers with different scales. I'm going to show you a couple of simulations that we have done to simulate small scale, intermediate scale, and also large scale bit forms in real life streams. So as I told you, we always look forward to see the physics-based simulations that are validated and are... So for that reason, we use a stream lab that is called Outdoor Stream Lab, OSL in St. Anthony Falls Laboratory, University of Minnesota, and also we use this indoor stream lab to measure data and gather data for validations. So let me introduce the OSL very briefly here. As I told you, OSL is an under-controlled experimental facility which is located at St. Anthony Falls Laboratory of the University of Minnesota. We have different apparatus to measure flow field, scan the bed with sub-centimeter resolution, and so these data can be imported into the VSL code so that we can simulate the flow field with a lot of details and also bit more for dynamic and contaminant transport with a lot of details. So it has a lot of applications, but what we are more concerned about here is to provide data for validating VSL 3D, basically. So I will go through the algorithms very briefly here. First of all, VSL 3D is a curvilinear immerse boundary code. It means that you can have a curvilinear mesh along your river or stream or waterway, and then immerse different structures with highly complex geometry in it. And we blank out the simulation inside of these rock structures and do simulate the flow around them. And also, like here, I show you a curvilinear channel, so we make a curvilinear mesh for that and then we can immerse any different kind of structures in it. And you can have, because of this immerse boundary capability, we can immerse rock structures with different characteristics, like in this figure I'm showing you how it works. And then we use immerse boundary method. It shows you the immerse body, which can be a rock. And then we interpolate the velocity and pressure field and all the information for hydrodynamic on the IB node, which is the next node, the node next to the immerse boundary. And we can use wall model in this middle VSL 3D to simulate cases of processes that are more applied. The code is a second-order central differencing on a staggered, hybrid staggered, non-staggered grid. Use a fractional step algorithm. And different turbines models are adopted in the model. We can do DNS, LES, and URANs in grand simulations. And of course, you're able to do fluid structure interaction to solve for the flow field and see the effect of flow and the interaction between flow and any structure within the flow. And the code is fully parallel so that we can run huge simulations on parallel clusters and supercomputer, as I will do it here for you so we can see. For example, through these validation cases, I will show you some cases for it. For example, this is a rock-wraith structure that is installed in a indoor flume in St. Anthony Falls lab. And then measurement has been done for this case. And we make a mesh, and we also have scanned the geometry of these rocks. So the scanned geometry of the rocks are imported into the model. And we make a mesh background mesh for the flow field as well. And as you see, the Reynolds number for this flow in the experiment was about 40K. Flow field measurement using ADV is provided. And you see the detail of this in rock-wraith treated in this boundary. And also, you see that we can also directly simulate the roughnesses. We also use a wall model to simulate this roughness effect. But also the important part is that we can directly simulate the roughness so that we. So this is the ELES simulation. Very fine simulation, though. Sometimes we don't need to have such fine simulation. But because the code is parallel, it gives us this capability so that we have a lot of nodes, a lot of, to resolve it really good. And this shows you instantaneous flow field, velocity magnitude. The flow is coming from this way, from top right to bottom. And this data shows you the comparisons for stream-wise transfers and vertical velocity along this section. And also turbulence statistics. So the other capability is free-surface modeling. We use level set method. I don't want to go through details of this. But we are able also to simulate the free-surface development and couple that with flow field simulation. And also we can couple that with bed morphodynamics. So assume that there is bedforms forming in a live bed channel, in a mobile bed channel. These bedforms will have some effect on the flow field and also free-surface. We can couple everything together to see the effect of them. And since the code is very good, scalable, we can use a lot of nodes and surround the whole thing on like 500, 1000 CPUs and get very good results within a quite short amount of time. So in this case, in this slide I'm going to show you some of our simulations. This is again a cross-frame structure installed in the same indoor flow. Flow is coming from this point along this arrow. And then we have done some measurements for flow field in bed morphodynamic because it will create some of the coward down the stream. And this video shows you the simulated free-surface. But this is simulation. As you see, we put the level set. First of all, we do hydrodynamic. You solve for hydrodynamic using LES. And then you solve level set equations to get the free-surface. This video shows you the simulation. And as you see, we can see a lot of very small-scale hydric jumps in different directions. And these are slides showing the validations points. Circle show you the measurements for the free surface here, automates for free surface, and the elevation at different locations along the structure. So it's already a very good agreement with simulations. So again, now I'm going to show you some flow field measurements and simulations to validate the code along the same channel, OSL. As I told you, OSL is an under-control facility that we can measure the flow field. We can feed sediment at the inlet and see the effect of sediment on the flow. We can feed contaminant, different kinds of contaminant, and measure them, and study different kinds of things. So here, I'm going to show you our simulation for flow field in this channel. As you see, we scanned the whole thing, again, with a centimeter resolution. And this shows you how detailed is the geometry. We import the XYZ data of this scanned geometry into code, VSL3D. VSL3D uses this whole geometry. And we run the flow. And also, we measure the free surface elevation and feed that into the model. And for the specific case here, there was bank full flow. The Reynolds number is 100k. And using about 70 million grid nodes, and as you see, the roughnesses are modeled. We use LES to do simulation. And this shows you a instantaneous snapshot of flow field, velocity magnitude, that we calculated at free surface. And this video shows you how detailed is the simulation. Flow is coming here, and it comes here, and hit the outer stream bank, and goes down the stream. We have raffle zones here. In the raffle zone, you have these cobbles that are large roughnesses. So it creates a highly turbulent flow over this raffle zone, and it's like kind of a free jet hitting, wall jet hitting the downstream flow. This is, I forgot to say, it's contours of velocity magnitude, as you see. Looking at different levels, this was free surface. But this model is 3D, because it's called VSL 3D. So we have more than 100 nodes for this specific simulation along the depths of the flow. So if you can look at different levels of the flow field. So for example, this figure shows you the details of the flow field near bed. And as you see, the roughnesses, the effect of these roughnesses, very small scale eddies around these roughnesses are modeled very good. And this figure shows you the validations for different locations, actually, that we have done. And the cover spectra of the simulation under red, showing you that comparing it with the blue one, which is measured cover spectra of the flow field at a specific location. And this figure again shows you the same simulation, but it's snapshot at the free surface. And this shows you the contours of TKE, turbulence kinetic energy, showing you the shear layer and how the flow field develops around it. And these are streamlines of flow fields showing the location of this recirculation zone at this point. And here I'm showing you the visualization of by injecting some material from the free surface and taking a picture, long shot picture of the free surface in the OSL. You can compare this with the simulation. And as you see this visualization, we see that the convergence of the flow field is very close to what we can see in the OSL. But one important thing here is that we have to be careful about what kind of model we are going to choose for our purpose. Here I'm showing you LES simulation that I showed you. And if I do a U-RAN simulation using a K-omega model, I will get something like this. And as you see due to the fact that a U-RAN model is very diffusive, you can capture a lot of details of flow field. And then if you're going to do couple simulation to simulate flow field and also bit more for dynamics, you can't see the effect of flow field at this, for example, recirculation zone here if you use U-RAN model. So we have to be careful about the kind of model that we use for our purpose. We can time average the solution after we are done. Yes. So again here in these two slides, I'm showing you there are two cells. This paper, this work has been published in this paper by Konkan Citrupolus. There are two cells that are showing up. During earlier simulation. And as you see, the cross section shows that this flow is not isotropic. But if you solve it with a U-RAN model, you basically would get isotropic solution for it. Again, in this very short slide, I'm trying to show you the difference between simulation methods. If you use for a DNS, with a DNS simulation, direct numerical simulation, basically we capture all the details of eddies and whatever flow structure that exists in the nature. But the fact is that DNS simulation for a engineering test case would be very expensive and not applicable. So what we do is that we use a filter size to forget about some of those very small eddies. And instead, modeling them with sub-grade scale model and do LES, which is larger dissimulation. In LES, we only focus our attention on simulating the larger scale eddies. And then we also model the smaller scale eddies with sub-grade scale model. There are a lot of different sub-grade scale models. And we have two of them in our code. In VSL3D, we have dynamic one and constant and smuggler scale model. Of course, in U-RAN's models, you basically don't get anything because, in my opinion, they give you some non-physical thing. They average out everything. You time average the solution. But they are, of course, very important for engineering applications. So in the next test case, I'm going to show you some of my simulations on turbulent flow and also the contaminant transport in real life streams. In this figure, I'm showing you a Greek, which is 30 miles south of Minneapolis in Minnesota. This Greek is called Eagle Creek. The length of it is about, I would say, 200 yards, about 150 meters. So in a project, we wanted to simulate this, the whole thing. We wanted to study the uptake of nitrate material to the flow. So in this simulation, first of all, we did some surveying to scan the geometry of the stream. Because this is a real stream, real life stream. So you have this fallen logs in it. But they're important. If you want to do a good simulation for contaminant transport, you need to have them. So in our simulation, not only we scan the geometry of the bed and we consider all of these details of the geometry, you also simulate the effect of them. So as you see, we scan the geometry of the logs, and we put them in the simulations. And this shows you a zoom in of this point. As you see, we have a reputation here, like three logs are located at this point. And in this video, I'm showing you only free surface. I'm not showing you water body here. You don't see water. But we inject some material for a short period of time. It's a pulse release. We inject some salt, let's say, at the inlet. And then stop the injection for a while. I mean, I'm sorry, we inject it for a while and stop it after 32 seconds. And then this material goes along the stream. And as you see, everything is modeled basically. You can see the detail of the geometry bed geometry. The average width is about 3 meters, 2.5 to 3 meters. And then through this elegant simulation using DSL3D, we are now studying the effect of different structure, like logs, the geometry of the stream, and different things on the resident time of, let's say, this kind of contaminant. Let's say, as you see, we can study the effect of this, the resident time, this purification. And right down the stream of the island, you have a purification and the effect of that on resident time is obvious. Now, for the test case, for Eagle Creek simulation, I will do a simulation here for you later. So I will submit the job for you so that you can see how we do the simulation. Next, I'm going to talk about the morphodynamic module of the code. And this morphodynamic part, as I told you, we do fluid structure interaction. That's we solve for the flow field. And then once you're done with solving the flow field, then we project the solution of flow field over the bed, over the mobile bed. And now we have vitreous stress, velocity, and everything on the bed. And then we solve the x-ray equation that net deposition and also entrainment rate. We consider everything, suspended load, bed load, and everything to solve for the mass balance equation, to solve for the bed morphodynamics. Bed load is calculated using this formula. And we solve also for suspended load as well. So here I'm going to show you a couple of test cases for the simulation that we have done, coupled simulation, bed morphodynamic, and hydrodynamics. In this slide, I'm showing you the result of experiment done by Venditti in British Columbia. He has studied the evolution, initiation of bed forms. These are very small-scale bed forms, though. They are like 6 centimeters in amplitude. They're not that huge. We call them small-scale bed forms. As you see, the first day, this study was really good to show that what is the origin of bed forms, how they form. So we have done the same simulations. These are non-cohesive material, non-cohesive sediments. And Reynolds number is about 76K for this case. We have done a lot of simulations for this. And we are publishing a paper in JFM very soon to show how bed form effects flow field and what is the interaction between those two and figure out what is the cause of bed form initiation. So in his study, Venditti actually studied the different patterns of bed forms in his experiment. He showed that everything starts with a cross-hatch kind of pattern at the beginning, like 10 seconds after flow is running over the mobile bed. And then he showed that these cross-hatches form some nodes that he calls Chevron nodes. And then they connect together and grow in size and wavelengths in amplitude. And then they finally lead to formation of bed forms and migration of them. Like in this figure, I'm showing you the his result, experimental result of them after they form. They have a 2D stage bed form. And then they pass to a 3D stage. And at some point, the amplitude will be constant, but the wavelength of bed form increases. We did the same simulation, a couple simulation. And this video shows you only the bed. I'm not showing the flow field over it, but just the bed. And as you see, in our simulation using VSL 3D, we are capturing quite a lot of those features that Venditti captured in his experimental work. Like you see this effect here, this effect here at their 3D stage of development, bed form shows. And this figure in the middle shows you the experiment. So as you see, if you're capturing a lot of phenomena during bed form development, in this figure, I'm showing you the bed topography in the simulation. As you see, like 10 seconds after simulation, we are capturing the same Chevron nodes that are also captured in the experiment. And they grow in size and amplitude. And then after a while, we get to 3D. And these are three snapshots of the simulation, showing how the bed forms can merge in our simulation to shape larger bed forms while they're migrating downstream. And I have to say that this is a very expensive simulation that I would say this is the most expensive simulation, coupled simulation. It's LES, bed morphodynamic simulation, coupled with about 100 million grid nodes. Very expensive. I used like 500 CPUs for like a month to do this simulation. Yeah, this is, well, reviewers of JFM ask us to do this again. I mean, finer and finer simulation, so we are doing it. Well, one thing was that there is a hypothesis that says you are going to simulate the development of bed forms. You need to capture the Kelvin-Helmholtz instabilities. So for that, you need to have simulate stratification as well because the stratification, the concentration of sediment near the bed is the thing that causes bed form initiation. I've shown here in the simulations that you don't need to have those. And the cause of bed form initiation, basically, comes from flow fill and the pattern of turbulent flow, and specifically the sweep event, the turbulent sweep event that leads to the formation of these cross-hatch bed forms. There are a lot of physics involved, and we have discussed that in a 100-page paper in JFM that is coming out. Yeah, for this, yeah. Well, we have... Yes, this has suspended load, and I will show you in a couple of slides in here. Here I'm comparing. I will show you the slide that shows that. In this slide, I'm showing comparison between simulation and also a different snapshot in time with the measurements. So this shows the celerity of the waves and wavelengths and amplitude. In this video, I'm showing you, so the same channel, the 3D channel, basically. In this video, I'm showing a cross-sectional view in the center line of the channel. As you see, this is a coupled simulation. So flow fill influences the bed. Bed influences the flow fill, as you see the structure changing. On the top, you see the velocity magnitude here. I'm showing you the suspended sediment concentration. It's a stratified flow. So the initiation, they start to grow. I mean, the initiation time is very important to be able to capture, and this is the first time you're capturing it. I'll show you this video again. So one important thing here to notice is that, as you see the scale, the time scale of flow fill, very different from time scale of bed forms, right? Like here you have a highly turbulent punch of flow going like for five meters, but the bed form migrates like five centimeters, right? So this is what makes it really expensive to do coupled hydrodynamics and morphodynamic simulation. Here I'm also showing you the current structures that are developing over the bed using Q-criteria. These are the initiation for the first 50 seconds of the simulation. As you see, these are the vertical structures that are forming. And we have also shown in the paper that how they carry a patch of highly condensed sediment, suspended sediment, and heat it to the free surface. So other test case that I'm going to show you here is intermediate escape. These were, I mean, the things that I showed you are very small-scale bed forms. Now I'm going to show you some of the bed forms that we have captured in OSL, outdoor stream lab in our experimental facility here. As you see in this figure, we have installed three rock weighing structures with real rocks. And there are some bed forms here. You can see the bed forms that are migrating down the stream. We have also tried to simulate this migration of these bed forms as well. Again, I have to tell you that we feed some sediment here at the free surface. We inject some sediment at the inlet of the stream. So these two just make sure that the bed forms and the flow of sediment is natural. We don't want to go run out of sediment within our stream. So here I'm showing you some of our simulations. OSL. This is with another kind of structure which is called bend-wave ears. I'm sorry, barbs or barbs, yeah. And also over here I'm showing you some of... All of these experiments have been done in OSL to study the effect of rock weighing structures on the flow field and on the bed geometry. So as you see, we have captured these red parts showing the crest of a wave, a sand wave. And the scale of these structures is quite larger than what we saw in the previous slide. These are about 20 centimeters, 30 centimeters in amplitude. So as you see in the simulation, we are able to capture using BSL3D and LES. We are able to capture the migration formation of them. And it's also important to say that using URANTH model, we are not gonna be able to do this kind of simulation to capture the evolution of bed forms and initiation of them. So for that reason, I have done a lot of simulation. It doesn't matter which resolution you choose. If you even do a finer simulation using URANTH, you're not gonna be able to capture these bed forms. For the previous simulation that I showed you, those smaller-scale bed forms, there also you're not gonna be able to capture the bed forms using URANTH. You need LES to be able to capture the vertical, the perturbation necessary for formation of bed forms. And here I'm showing you over this S trajectory, I'm showing you these bed forms. Characteristic, it's a characteristic that shows you the S over time. So these are my bed forms that are merging together to form larger bed forms. And then larger bed forms also merge together to form larger bed forms at the end of channel. I showed you those development of bed forms. You can see them here, too. So these bed forms are also measured experimentally. And if we compare out simulation with the measurement, you can see that we are within a good range of agreement with the measurements in terms of sterility, wavelength, and amplitude of the captured bed wavelengths. So now in this slide, I'm showing you some of the bed forms, very large bed forms that we have also captured. So we call these bed forms larger, that are in larger rivers, macro-scale bed forms. These are, these two streams are about a kilometer long. And the width of these two channels is about 30 meters wide. And like for example, in this video, I'm showing you this has been done in a project for NCHRP to study the effect of stream restoration structures on the morphology of different rivers. And as you see, we are able to capture the bed forms. They initiate and also they migrate downstream. The amplitude of these bed forms is about one meter, which is quite large. And also the wavelength is about 10 to 30 meters. So they're quite gigantic, I would say. And one important thing here is again, that we use the URANS model to capture these bed forms. So you don't need necessarily to use LES for such a large bed form, because here you have larger perturbation. You have a huge river that perturbation, even that URANS is large enough for you to initiate bed forms and their migration. And if you compare this like that, like this top figure shows you a figure from Gary Parker for a real life large river. And as you see in this part, the apex of this river, you're seeing the same similar kind of bed forms. This one is also a snapshot of bed forms in our experimental stream OSL that shows you similar kind of patterns for bed forms. So we use VSL3D actually to, as I told you, in a stream restoration project to design some guidelines for different stream structure and structures. Rockwain, J-Hux, Bend Bay Veers, Crossway and different structures. So to do that, it's quite impossible to use experimental facilities to develop a guideline because you would need a lot of simulations. We would need to install the structures, a lot of different patterns of the structures and try different numbers of these structures at different locations to optimize the number, location and angle of different structures. But we were able to use VSL3D to do this, actually task. And in a different presentation next, I will show you how we did this and I also will run a case with these cases for you. So let me go to my next presentation, which is about, let me go to my presentation about Eagle Creek. And after we are done with this, I will show you how I submit a job to for the same simulation. Hey, again, please. We have two options, I will show you. One is a constant and Smokronovsky model. The other one is dynamic Smokronovsky model. So here in this shorter slide, I will show you the simulation, I'm sorry. I went back to the same slide, actually. I will show you some of our Eagle Creek simulation. And right afterward, I will submit a job, submit the same job, basically. So Eagle Creek is located here and this is the whole length. The two yellow parts are places that we have measured the concentration. One upstream, this is upstream, this is downstream. And then we have two transverse locations for flow field measurements. And these are benchmarks for scanning the bed and doing survey. So this is the geometry. One important thing is also that I need to mention this, we also surveyed the whole length of the stream to figure out different locations. Like you have sand port, you have bedrock, you have gravel port. At each location, you have different roughnesses for the bed that needs to be considered in the simulation. So we have considered different roughnesses in our wall model simulation to make sure that we are doing it right. So and then we have logs, like 15 logs or 13 logs that are fallen logs that are immersed. The whole geometry of bed is immersed. And then we have a curvilinear mesh covering the thing. I'll show you later. And this shows you only the flow field simulation using LES. As a matter of fact, it's not a very high, well it's a high resolution simulation but it's not very expensive because we use only, I would say 25 million grid nodes for this. And to get this flow field, you would need 120 CPUs for 10 days. So it's quite less expensive, I would say. So you see the flow field? So here we have a bedrock with a lot of roughnesses so that's why it shows you the free surface, only free surface, but it's a 3D simulation. So we have different layers, 100 different layers below this too. It shows you the velocity magnitude non-dimensionalized by the mean flow velocity. So zero to three, three means that velocity at this point, which is white, is three times the mean flow velocity. And you have the logs, a lot of recirculating zones here, here, here, because of the logs. And also, I mean, it's a, and then once you're done with this, then you can inject your material. So we had two different experiments here and I simulate both of those experiments. So this one is a plateau release in which we don't stop the injection, but this video you have already seen it, which is a slug release or pulse release. So we stop releasing. So in this one, you can see the recirculating zone. LES can nicely capture this large eddy, large eddies for you and like look at this part here. You have a quiet, still water down the stream of the island. That's why you see the recirculation of the, and again, I have to say that this, in this video, you only see the material, the concentration of material. Water body is not shown. So I cut off the water body so you can see also only see the flow of this material. At some point actually we stopped the injection. So you'll see, at some point we stopped the injection and we couldn't really release the material forever. So we have to stop it at some point. I think after eight hours or so we stopped it. Weather was getting cold, so we needed to wrap everything up. I'm not able to. I just want to show you the negative wave of this material after stopping the injection. But it would take five minutes, so it came actually basically. The video is quite large, the video file is quite large, so let me go here and show that video separately. So once the material is uniformly distributed over the whole ridge of the stream, then we stop the injection and so at this point the injection is stopped. So the negative wave of the concentration and as you see the red shows you concentration. Volume fraction of one versus zero at white takes quite a while for the material to get kind of trapped in this part. And this contributes to the resident time, a very long resident time of the material. Down the stream of this and this next slide I will show you the time series of concentration measured versus simulation, that how accurate is our simulation capturing these time scales and resident time goes on. Takes quite a while and I'll go back to. So in this slide I'm showing you the time series of the blue one shows you the simulation result for time series of the concentration. This shows that these two are, the blue one is for upstream section, upstream and local point time series and the red one shows you the time series of the concentration at the downstream section. And as you see circles are for measured values and lines are the simulation results using this LES. And as you see the agreement is quite good. And we see some fluctuations. I've discussed the reason for these fluctuations in a paper that is being published in JGR that is related to these large size eddies that are fluctuating. We don't see these fluctuations, measurements because the measurements are time kind of time averaged. Like we measure the concentration for like, let's say 10 seconds and time average for 10 seconds. So you don't see that fluctuation in. And also for the slug release, as you see here, we have two peaks, this is for the upstream one, this shows you the downstream section. One thing is that for the downstream section the LES couldn't capture the peak of the basically concentration that goes, that is due to the fact that the resolution is not that high. We are doing another simulation with higher resolution and getting better results. And also I need to mention that for these time series we have a hydraulic lab that we put it in the stream and it has a point measurement. In, they say it measures the concentration at a level which is three centimeters above the bed. So I try in my simulation to pinpoint the same point and extract the time series at the same location. This is, I mean the hydro lab might not be that accurate about the location of this point. So if I change the point of measurements though it will show a lot of difference. And this is basically the same thing showing you same time series. And these are the velocity. I mean the validations for the velocity at those two cross sections that I showed you. Now I'm going to switch to my supercomputer here and try to run this case for you and then we can go back to morphodynamic case. So now we are going to do a flow field and a contaminant transport using VSL3D for the same taste case, Eagle Creek. Well I would say it's quite easy to use this code. We have had guests from different institutes coming over using the code for like one or two weeks and then they were able to do very nice kind of simulations using this code. But to do that you would need some stuff like you need a supercomputer because it's simply not possible to do a fine resolution with a laptop or a PC. So here I'm connected to my computer and here I have this test case for Eagle Creek simulations. First of all I have made the geometry of the river that I will show you later how I made it and you will see the mesh of the domain. For the flow field and also as I told you like these are different, I have like different files here, IBM data, IBM data, IBM data. Those represent the geometry of logs. So XYZ data, it's very easy. You go to a grid generator, it could be a grid gen, it could be a gambit or different softwares. You create the geometry, you mesh it, you export it. It will export a XYZ file for you representing the geometry. You put it here and a VSL3D is able to read that and import the geometry there. And also I have a control file and also I have a grid file that is the same for the curvilinear mesh I will show you later. I have a control file here that is here. Control file. In the control file I, by the way, you would need Linux machine too. So it's a Linux based code. So here, like I have different parameters. Well, you don't need these three for now. It's very simple. You say that I need a time step, DT is time step of non-dimensional time step of point zero one. I will have, we have different versions of Poisson solver. The dynamic module has different Poisson's equation is basically the pressure equation that needs to be solved. So we have different options for Poisson solver. One is works the best for me, so I use it. And then LES2 means dynamic Smokronski model. I can use LES1, which is a constant Smokronski model. I have wall function in this model because it's a huge river and I don't resolve the near bed ridge and all the way down to the wall because it would be really expensive for me. So I use a wall function. We have different wall functions. I think five different wall functions. I prefer to use one. And then here I can say what is my roughness size? The effective roughness size. And let me just forget about this. Here I said this is my flux, which is the discharge. We know the discharge of that stream. So we have to enter it here. For this case is this one. And the range is U-range. I don't use U-range, so I put it zero. Don't use U-range. I don't want to have a bed more dynamic, sediment is off. And then it's not a live bed. It's a rigid bed, but I use it somewhere else. I solve for convection diffusion equation to trace the tracer concentration. And I'm not supposed to deal with density current here, so it's off. CFL numbers, VNN numbers, and then implicit solver for the, it's a pressure based method. So we, different options. Immerse boundary method. Yes, we only use immerse boundary method, so it's on. Immerse boundary method number three. How many bodies I have here? 14, because I got, one is for the whole bed geometry and banks, and 13 is for each fallen logs. So a lot of different logs. And TIO tells me that, like TIO of 200 means that after each 200 time steps, save me some results. It's just for seeing what's happening. I don't want to save results every one time step because it would need a huge, basically, memory disk. So I say every 200 seconds, time steps do it for me. And here is the Reynolds number. These are something different that we don't need. And inlet one dictates the type of boundary condition at the inlet that we are using. You can say how many total time steps, total steps that you want to do. And as you see, it's a very easy thing to apply. You can play with different parameters to see like, what is the effect of roughness height? What is the effect of diff, I mean, how can you use different wall functions and different time steps, how they affect your solution? And also, we have boundary conditions here in this BSC.dev file. And this line, the only one line here is needed. So I say minus one, minus one, which means that I have solid boundaries at two part. And then 10 is the free surface boundary condition. Five is inlet, four is outlet because you would need this boundary condition for your solution so that your model knows that like at the outlet, you use new boundary condition for parameters. It's quite easy, it doesn't change that much. So you don't need to change this boundary condition at all. It's a typical boundary condition, but we always use, I'm sorry? No, I'm sorry. No, the level set goes to a quantifier, I'm sorry. I will show you later. You say level set one, which means that turn on the level set. Then automatically this 10 will go away. You know what I mean? Then you will solve for free surface. No, no, no, no, for this, for this test case, I didn't solve for the level set. Yeah, that would be really expensive to do it. So what we did was that we measured the free surface with a good resolution. So we knew that what is the elevation of water at different locations of the stream. So we, and then we feed that into our model, into the mesh that we made so that the model knows that we did the free surface. Okay, so we got everything ready here. So the only thing, my executable file is tests one. Tests, tests, yeah, here. So this is my executable file. Hopefully you will, I mean, people can have access to the source code so they can compile the code for their own own or they can use already compiled code. And here I'm going to submit this job, Q sub minus. So this is the job that I'm going to submit. Let me first show you how I submit this. So there is a SH or shell file here. That is something which I can say how many CPUs use for me. So I say use 12 nodes and I have 16 CPUs on each node. So the total number I think would be 160 CPUs, not that much. Hopefully we are able to use those because my colleagues might use. So I'm going to submit that. So if this will basically, we will use the tests executable file to simulate this Eagle Creek that I did it. And you already saw the result, but I'm going to do it here. So I submitted the job on our super computer in University of Minnesota. And as you see, I'm running it here. But this is another simulation of my, 192 simulation we are using right now. This is another simulation of mine. So now we can, yeah. And then if you want to use this code, then you would be able to see what's going on. So if you go to ERR file, it shows you what's going on. What is, well, it takes quite a while for it to start showing up something. And in the ERR file, you are going to be able to see how, what is the convergence of your momentum solver? What is the convergence of your Poisson solver? What is the convergence of your convection diffusion solver? And if you're running on morphodynamics, see what is the convergence of your morphodynamic solver and also for the level set as well for the free surface. So as you see, it's quite simple to use the code for, yeah, it's going on. It's showing up something. It's simulating the case. Now I assume it's reading the geometry. It takes quite a while to read the geometry. It's a huge room geometry. You see different parameters. We will come back to the simulation later. Is it going? Okay, now that you're done with this simulation, I will go to another slide. I will show you another slide and I will come back again to this. Let me talk here about the hydrodynamic and bitmorphodynamic simulation that we did for stream resolution structures. So first of all, as I told you, we use this VSL3D to develop guidelines for stream resolution structure and different streams. For this purpose, after a long study, we chose two different streams, which like this stream is, these two streams are representative of streams. So like this one is a sand called sandbedded stream in which we have very fine sands on the bed and the length of the whole meander is like 120 meters. I'm sorry, 1.2 kilometers. This one is a gravel bedded stream which is again over one kilometer long. The width of these channels is like 30 to 50 meters. So they are huge rivers. We have chosen to deal with these rivers because we are going to install these structures in real streams, so we need to have those. And then we use different structures, we install different structures to study day effect, like rockwain, j-hook, bandwain, via crosswain, as step crosswain and w-wears. So like using the standard standards that USPR has developed, you have to protect, if flow is from this direction, you have to protect the outer bank from 1B upstream of Apex to like 1.5B downstream of Apex, because this is the region that you will have the deepest cover and your outer bank will basically collapse and you will have this erosion. This shows you OSL, Outdoor Stream Lab, Experimental Facility in our lab, that shows the deepest discover part of the same part and also this shows you part of our simulation showing that in a sand-bedded river you will have a very deepest cover at the same location. And this is again a gravel bedriver showing that you will have this problem of unstable outer bank at the same location. So what we did here in this study actually was that we tried this for each river, like in this figure you see gravel bedded river. We installed different structures. Let's start with rockwain. We installed two rockwains, 20 degree and 30 degree, okay? And then we ran the flow field and then we ran the bedmorphidynamics, ran it for like a year and because of a, I forgot to tell you about this capability that DSL3D has, we are using a methodology that this basically disconnects the time scale between flow and bedmorphidynamics because they have these very different time scales, right? So in this method you can run for a very long time. Like this shows you a simulation for like six months of bedmorph, physical time, six months physical time on this river. So after six months you will have, and if you time act, it takes six months for it to get to equilibrium and then you time average your solution and you get this bedmorphidynamics. This shows you the geometry, elevation basically. You have point four here, deepest power hole here. So you have two different rockwains, emulate the thing and then we look at the result and decide about the effectiveness of different angles. Like here for example, after analyzing the study, the result actually we figured out that using 20 degree would be a better option here because of the, in this figure you can see in the lower part you can see the difference of a baseline case, which is the river without a structure and between the baseline case and the case with a structure. As you see having this structure, you have a pole weight in the, you shift basically the target away from the outer weight. And also for the other stream, we did the same simulation and this shows you the result of the simulation for another structure, which is bend wave year, different angles. You start from 50 degree, 60 degree, and I'm sorry it goes from 20, 30, 50, 60 and 80 degree, different degrees of bend wave year and we see the effect of different ones and we choose the one which is more effective. And then in most of our simulation, we figure out that having just one structure is not gonna provide you with enough protection because you might protect this part, but again the erosion will happen down in the same way with downstream. So you would need another structure downstream. How to choose where we are going to install the next structure downstream. To do that, we use our turbulent kinetic energy because it's a 3D simulation with depth average basically, the TKE or turbulent kinetic energy over depth. And then this turbulent kinetic energy, if you show it, and also on the bed, I'm showing you the circles or showing the deepest discover part, deepest discover hole on the river. So as you see that they are well matched with the path of the higher TKE because TKE basically is in charge of erosion, right? And then we decided to choose the place for the next structure to be where the TKE hits the outer bank. So here, for example, we will place the second structure in our second round of simulations. Like this, we installed the second structure here, we provide more protection, and also for the stream, for the sand bedded river, we installed it downstream, we provide more protection. And then as you saw, we have also more scoured downstream, so we would need another structure. So again, we use the same strategy using TKE and the map of, basically this shows you the shear layer, right? The TKE shows you the shear layer. And the place for the second is the third structure, so we put the third structure downstream, which has like 20 degree at the tip of the second structure. These are all detailed so that the practitioners can use these guidelines for their purposes. So if you now put the second third structure downstream at that location, you will provide with enough protection for the whole outer stream bed. And at some point you say, okay, this is good enough, you don't need to put another structure because it's not an economy called to put a lot of structure. This way, you optimize the number, location, angle and everything for the structure. This is result for other structure, which is J-hook. J-hook has a hook part, has a vein part, and that the hook part, it has some gaps. And as I showed you in the previous simulation, we could capture the passage of sediment through these gaps, right? I don't wanna go through details of this here, but one thing is that, if you use VSL with, these simulations are not very expensive. These simulations I'm showing you because we needed to a lot of simulation, these are 200, we did 200 simulations to develop these guidelines. So for that, we used not very fine simulation and also we used U-RAN simulation for them. But here I'm showing you the results of bitmorphidynamics development over sand-bedded river. And as you see on the lower part, this one is different though. This is, you see the bitmorphidynamic evolution downstream of one of our, yes sir, say the, please. That's right. That's right, that's right. What we do is that we, first we solve for the flow field. Once the flow field is solved, and then we use the result of this flow field to solve for suspended load. So we have suspended load and flow field now. And then we use the whole flow field for bed shear stress. And we use this information to solve the external equation, which is the mass balance. And then we solve the external so that we calculate the new elevations. No, we don't do that. Well, that's not, well, then I'm afraid that if you do that, then your whole code would not be stable. You know what I mean? Because you need to have a through-hole number, by which you're limited to the, you can't basically change the geometry. Yeah, too much so that would cause you instabilities. There are a lot of criterias. I can give you some of my papers to that. You can see, we have developed some criterias that your change, your bed elevation change should be within a limit. Yeah, so no, the Reynolds number for this case is over a million. It's a very high Reynolds number. For the field scale. It is, it is a field, everything is field scaling dissimulation. Yeah, so this migration you see, you are looking for this case, the lower, lower video, you are looking at a timeframe of two months. So the, no, it's not, well, time step, well, I told you, it's called a dual, OSI synchronized dual time stepping method, in which we use different time steps for flow field and bitmorphid dynamics. So we have two different time steps here. And we assume that, yeah, we assume that the flow field or hydrodynamics is frozen so that we use a larger time step for bitmorphid dynamics. And then we solve, we calculate the new elevation. And then for that new elevation, we assume that the previous hydrodynamic solution is a initial, you know what I mean, Tn minus one of that solution. We have, I can give you the list of the paper that we have discussed in this method in details. No, no, this is a random model. That's a very nice question. Actually, I showed you in my previous slides that for those smaller scale bed forms, you need to have LES to be able to, so that the small, the eddies that you capture, the vertical structure that you capture, they lead to initiation of bed forms. So they produce you with enough of perturbation so that these bed forms get generated. But here, we are using URANs. But URANs is able here to do that while URANs wasn't able to capture those smallest scales. Here, while URANs is able to do this, you have discussed it in a paper that I can give you the list of it. But here we have, right in front of this, you see this J hook, it has rocks and a gap between them. So it's a very highly turbulent flow. And it has enough of perturbation introducing to the flow that causes bed forms to get generated. You know what I mean? You will need enough of some levels of perturbation so that the bed forms get generated. Once they are there, then they will grow in size. As you see, they form, they grow in size and get migrated downstream. So again, here in this video, I'm showing you the same. And this video is a zooning of this part. So here you don't have enough of perturbation here. Although it shows you that how the bed morphology is getting to equilibrium state, but you don't have those distinct kind of bed forms that have downstream of the J hook. So again, I'm done with this, so I'm going to simulate one case for you. I have quite a lot of time and that's very good. So we can go back and forth. So let's see our simulation here. First, the Eagle Creek simulation, how it's going on. Let me clear here. So as you see, simulation is going on and I'm going to look at my residuals. Not yet, still reading. It's a huge geometry. So it says that, as you see, it says that I'm reading your XYZ data for different logs for the whole geometry. It's still reading. And like it says, the number of nodes and elements is that for each different logs. I assume this is for each log, you see. Different logs, different number of nodes covering the geometry of logs so that we can model it, immerse it. I'm going to get out of here and do another simulation. So I'm going to show you a simulation now on gravel bed river, this large river, which is 50 meters wide, 1.1 kilometer long and it's one and a half meter deep. So again, these are my data. I have the same set of data, control file, boundary condition file and geometry file. That's it. So I'm going to show you the control file for this. As you see, I will restart from. One important thing is that what we do here is that first we run the case without letting bed to get changed. So we assume that the bed is frozen. We run the case for a while so that the flow field gets to equilibrium. Once the flow field is fully turbulent, we save that and then we start running the whole thing with a fully developed turbulent flow. Then we start actually, solve the couple simulation for bed and flow field. But at the beginning, what we usually do is that we develop a flow field over a rigid bed. But here, let's just start. So what I've done is that I have developed that flow field here and I saved it as time step zero and I'm going to use it for my, as you see here. Now I'm not using LES, LES is zero. Again, the same post on silver. Time step is larger, quite larger than the case that we saw for the previous case. No, it's basically non-dimensionalized. It's like it's the free one. Yeah? Oh, for bedmorpho-dynamics? No, that's for hydrodynamics. For hydrodynamics? It's small. It's smaller than that. It would be like two seconds, one second. It depends on CFL number. Well, the point is that two months physical time on the bedmorpho-dynamics one, which has a longer time step of like one minute. I told you, we use, you mean CPU time or physical? Physical time is six months. No, we don't do that here. We solve flow field. Yeah, we just decouple. And that's just for this kind of simulation that you're dealing with such a large river. Like for the case that I showed you, the experiment in very small-skate LES simulation, in those simulations, we don't decouple the time steps. So we use similar, same, the same identical time step for bed and also flow field. But here for such a huge rivers, we decouple them and use different like a larger time step for bedmorpho-dynamic, a smaller one for hydrodynamics, and a smaller one for hydrodynamic. But we solve every time a step for both. Yes, we do cluster mesh around, like for the case that I showed you in this, around the J-hook, we refine the mesh around it. Yeah, that's right. It's not a adaptive mesh method. It's not that it can adapt the mesh size around different structure based on the, based on the vorticity or something, no. But we can cluster it at the beginning. That's one of the capability that we are developing right now. We have two postdocs working on the code so that, so make it so that it can have the adaptive grid refinement method in it, so that it refines itself as the flow develops. Yeah, yeah, but yeah, that's a very good question. What we did, we wanted to make sure that these are real rivers. So in a river river, we assume that you're not gonna run out of sediment material. So we basically recirculate the sediment. It was the kind of periodic boundary condition for sediment material. So the sediments that got out of domain, we collect them numerically, and we feed them from the inside. So it's a long river. It has three meanderments. The volume of sediment that goes out of domain, you mean? No. Those rivers are virtual rivers. We, yeah, we, another team that was working with us in Virginia Tech, what they did, they studied a lot of different field escape rivers. So they said that, okay, these two rivers are representative of all different kind of rivers. They're virtual. They don't exist, you know, in fact. Yeah, but yeah, so here, then we have this flux minus one, which is kind of crazy, but it means that it, flux isn't actually not minus one, but flux minus one here means that the velocity at the inlet is equal to one, and then I'm using U-rants. So Rance one, instead of having alias on, and the sediment is on, and live bed, we don't have convection diffusion. We have, let's have it on because of the spindle load. It's a mobile bed, and our particles have a WS0.5, which is fall velocity of particles, and we ask it to save the data every 500 step, and as you see, the Reynolds number for this case is 1.3 million, and the inlet is again one. Let's submit the job. Well, let me see how many CPUs I'm using. Let's submit it in a moment. Let me just initialize. So now we have this work also submitted, and as you see, I'm using only 64 CPUs because it's not a very fine, I mean, very, very fine simulation. It's a quiet course simulation using U-rants. We will come back to this simulation later. But let me show you a mesh that I'm using for it, for this simulation. So here, I'm using GridGen to create mesh, basically for my simulations, and here I'm showing you the mesh that I've made for the flow field. So as you see, this is a mesh that I'm using in this simulation. So it's a structured grid for my flow solver. It's the background mesh in the context of Immers boundary method. And then, and as you see, it has XYZ, different numberings. And then I'm going to also show you the geometry of the river. The code, the mesh generator or the code? You have to know the region. It's not so, yeah. You have to pay for it. Yeah, but for academic use, it's not that expensive, I guess. So here is the geometry, as you see. Here, you can see the geometry of these. Like this test case specifically is two rock points. So what I have here is, see the very thin wall here? Those are the geometry of the side wall of the river. I have a mesh that covers everything, but then I immerse the geometry of this river, which has the bed, two structures, and side wall. And then the solution inside of the rock wall will get blank out. Velocities will be zero inside of the solid wall. And then we solve for the domain which is within the channel. And the flow field, of course, will be solved in the channel. And then the bed movement at the interface of water and sediment will get solved too. That's what we just did by submitting the job. Okay, now we will come back to the simulation later, but before doing that, I'm going to show you one more test case, quite fast here. I think you've already seen this. Simulation of free surface over the crossfine. And as you see the simulation shows you that it's capable of capturing a lot of details about the structures that we see over the free surface. The other case that I'm going to show you here is the flow. I think many of you, perhaps, are familiar with the partial flumes. In a recent project that I'm working on, you're supposed to calibrate the partial flume for a local agency in Minnesota in that project. I'm doing this project. So flow comes in and then you have a type of free surface so that you can measure the flow field. You force the flow to get to a critical point, then you will be able to measure the flow. But the point is that you will have hydraulic jump stainless stream of it. So for this test case, we, this is the standard test case that have been done with USPR. So they say that if your Q, the discharge, is 78 CFS, then the HA, which is measured here, should be 2.73 foot. And what I did here, I did the simulation for this case to show that, to basically validate the code. And you see the simulation results at different sections. So the top, sorry. So the top one shows the velocity magnitude looking from free surface. This one shows you a cross section of view showing the velocity magnitude again. The black line here is the free surface elevation. And this one shows you the vorticity in the air and in the water. And this result was quite good because what I got out of it was that the calculated HEA was 0.83 or, which is quite similar to, and the error percentage is very small that it's kind of embarrassing to get such an accurate result for this. And again, the same thing I'm showing it here from, but it shows the elevation of water, basically the meter. So for this case now, I'm going to show you again, we had a question also about the level set, how we activate the levels in our simulation. So I have another test case in which, so another simulation, free surface, in which in this case, we simulate the partial flume that I just showed you. So we have this partial flume. Again, we have control file, geometry file, grid which has the background grid for the flow solver, the structure background grid, and the IBM data which mimics the geometry of partial flume, the wall, the concrete wall of partial flume. And let's see the control file here. As you see, the time step for this simulation is very small because it's really expensive. This is what makes it really expensive because you have these very small-scale features and this is a LAS simulation. And if you make it a little larger than that, the code will blow up, so you need to be careful about the time step here. I'm using LAS 2, a wall function. Flux is the discharge in this, the values that you see here are dimensional. I don't have these things. I only have level set one, which is solving for it. And the only thing that you need to, this one is a subcritical flow, right? So you just need to give it the discharge and the downstream boundary condition which is the downstream depth and then it will solve for the upstream. But to initiate things, we also give it the inlet z which will change definitely through the simulation. And then you have gravity acceleration which is 9.81. And immerse boundary is on because we have the geometry of this concrete wall on. And body shows you the number of immerse bodies. We have just one. The whole partial flow and concrete wallings, we made it just one geometry that I will show you. And I asked it to make output files every 100 time steps, every 1,000 time steps. And let's now submit the job for this and then we can look at the geometries that have been made for this. Submit the reservice. So this is the third job that we submitted. It has 160 CPUs, total number of 160 CPUs. You will come back to it. But let me just show you the geometry that I used for relation. So this here I'm going to use take plot to show you the geometry of the, so this is the geometry that we used for. So this is the, let me also show the mesh and everything on this. So as you see here, showing you the geometry of the partial flow that I used in this simulation. This is the immerse boundary one body in which is immersed. And the XYZ of this geometry is the one that I showed you, IBM data 00. And also I will show you the geometry for the background grid that I used. It's a 3D shape as you see. So the black one is the background grid which is structured and we call it background grid mesh. And we solve the flow in that. And as you see in this context of immerse boundary method, if your node is inside of your immerse boundary you blank it out. And you just solve for the part of your flow which is within your domain. Let me zoom in here now. So all I'm going to, I'm trying to say that is that it's really kind of user friendly code to work with. And you see that this mesh is very fine. These are, let me zoom in again. So these are like, you see very fine structured mesh and we solve on the flow field in this domain and blank out the immerse boundary. And I have other slides to show you, a couple of other test cases that I would like to show you like one is density current, of course, it's not a very complicated thing to do but it's code is a very good able to do all these kind of simulations. Like in the simple Cartesian channel I'm showing you some of our simulation that you can do with VSM 3D. Here I'm showing you the effect of fall velocity of particle on the density current. As you saw, it is restarted with different, depending on the, you see for this, for example, in this case you have particles have velocity. So they have weight, so they get deposited very fast but in this case in which the particle velocity is zero, it takes a long time and the wave of density current goes back and forth before it gets fully deposited. And for cases with higher fall velocity, particles get deposited very faster. This shows you the density current in a channel which is like a 90 degree bend from other view, you can see it. The end is not out that be blocked so that the wave gets reflected. So like this simulation has been done with LES and to do this you would need, I would say, 225 CPUs for like 10 hours to do the full simulation for this density current. It's a, and you see here the concentration of this material after releasing. Yeah, and doing some validations and everything. So the validations, we have done different compared the result, LES result of our experiment and everything. And the other case I would like to show is one project that we are working on and it's about simulating the flow field. I have 15 minutes so I will take your advantage of these 15 minutes. We are supposed to install hydrokinetic turbines in East River in Manhattan, New York to produce a great amount of energy for Manhattan. And what I'm going to show you is, it's a very large scale of course river. And so this is the East River. This is Rosewood Island, New York, Manhattan. And these 10 locations are locations that we are supposed to install this hydrokinetic turbines to produce energy. The river is 15 to 20 meters deep. This, the width of the channel is 150 meters. And the length of the region that we are supposed to install these structures, these hydrokinetic turbines is about two kilometers long. So first of all we need to do some simulations to figure out what is the flow field there. So there are some locations, measurements, local measurements and we have done some simulations. For example, in this video I'm showing you the flow field simulation using LES. Flow is coming from this way, going that way. These two are bridge piers. It's a very fine simulation using LES over 200 million grid nodes. Just because the project is so important to us that we need to do it in a very high resolution because these hydrokinetic turbines have blades that are like 20, 30 centimeters. So we have to be fine enough to capture everything. So this was at the free surface simulation and we have mid depths and also this shows you the near bed simulation for the flow field or the velocity magnitude. And then we are using this, we are able to extract the profile of velocity at those specific locations to figure out that how productive a hydrokinetic turbine can be if we place it at that location. Which video? Well, I'm gonna call it the south side of that pier. You mean this one? Yeah, does that mean there's a little channel connecting? That's why there's water there? Actually, these planes that I'm showing you are horizontal. Oh, I understand. Yeah, exactly. There is a hole below it, basically. So this is the characteristics of the VSL3D, which is a emu-spanitary. And once we installed the model, I wanna show you a couple of the slides that how it will look like. Because we have done a very fine simulations to, this is a hydrokinetic turbine. Flow comes from left to right. And you see this, the scale of this is like a large hydrokinetic turbine. And we simulate using LES. As you see, we are able to capture the vertical structure downstream of it. So that it's a fluid structure interaction as well. So we can calculate the amount of energy that a turbine can produce for a given flow field. And a lot of studies have been done. This shows you another. We basically scan the geometry of the whole turbine and we immerse it in our simulation. And then the flow when it hits, due to the interaction of flow field and turbine, the blades start to rotate and produce energy. And we can calculate the details of that. And this, for example, shows you that the torque that are produced, the blue one shows our simulation for the produced torque. And the red one shows you the measured value for the torque, which is basically averaged out. It's really great that we have 10 more minutes. I'm so excited to have 10 more than 10 minutes. So in these 10 minutes, I will try to show you a very quick thing. It is, I didn't have time to show you some of the morphodynamic results basically. But here in this video, in this slide, I will show you how this whole thing work, how you can use the VSL 3D. If it works, hopefully, yeah. So let's assume that this is a channel we are going to simulate, okay? So flow comes from here, goes here, and this is the channel, the indoor flume channel or experimental facility or whatever. So what we do first is that we use Gritian to mesh it like this, a structured mesh. Okay, the whole thing. And the resolution depends on how many computers we got, how much money we got to buy a good supercomputer. And then we immerse the sediment layer on the bottom. This is the sediment layer on the bottom. We mesh it, mesh for the sediment layer can be unstructured in the context of immerse boundary method. The immersed body has an unstructured grid so that it's more flexible. You can create more complex shapes with it. And then you solve for it so the bed evolves, like this, because you solve for flow field and then for that one. And also you can immerse whatever else you want to immerse it there, like a bridge pier. You can immerse the geometry of that in the middle of thing and simulate it. So I already showed you the bed morphodynamic, I'm going to skip. Here I'm going to show you how we do this. So let's say this small red triangles are where we solve for bed morphodynamics. And this black background grid is for the flow field. So what we do for this specific cell at the center of that, we radiate a vector upward to the flow field domain and then this shows you a red point and then we interpolate using a highly accurate interpolation method, get the velocity and bed shear stress from the flow field over the bed and then we solve for the bed. And here I'm going to show you a couple of more cases for validating just videos. Like this case is the same case that I showed you before, but this time I'm going to show you how morphodynamic calculation is validated. So this is a rockway, indoor flow flow is coming this way. We scan the geometry for the old, we have the geometry of the rocks with all the tape, we immerse it in the flow and then we simulate the flow field and bed morphodynamics. And this shows you a video of bed morphodynamic evolution downstream of the structure. You don't see the water body here, but just bed. Red shows you the deposition area that the sediments got scour, I mean eroded here and deposited there. And at different sections, if you show, if I want to show you the profile, bed profiles along A section, B and C sections, here I'm comparing them with the measurements. Circles are measurements. I've done both LES and U-Rans to calculate this. And as you see, calculations are quite good. Another case I'm going to show you is a J-hook and in the same flume and you see the evolution of bed. This is the simulated bed evolution and development of the scour hold downstream. Again, at different sections, if I want to compare the results, you see good results. Another case is this crossway. Flow comes from this way. You don't see the flow, but you can see the evolution of the scour hold downstream of it. The blue part shows that this is, flow is causing the bed to erode and the deposition part here. Different sections if you compare. Of course, this case is very complicated. So with the resolution that we used in this simulation, we couldn't, we were not able to get the same accuracy that we got for the previous cases, but still it shows a good agreement. And this shows the comparison between measurement. The top one shows the measurement and the LES and U-Rans. And as you see, U-Rans gives you better results because they can capture a lot of more details of the structures that are responsible for the scour. And I think you have already seen this video, but not the bottom one. Again, we have injected different, at the inlet of this, our experimental facility, we have injected some materials. Top one shows you salt material. The bottom one shows you nitrate material. And the one thing about nitrate is that there are some organism on the bed that would uptake the nitrate. So you see a reduction in the concentration of nitrate downstream. Okay, they're kind of on the two sides of the truth of what was true. They're kind of right? That's right. But one important thing is that the U-Rans is very, it's quite successful in capturing the secondary flows. Like we have a huge secondary flow downstream here that causes the transport of material over this lamp here. And if you compare these two lamps here, you have this one, and very similar to that, you have a lamp like that. But you can't see the same kind of thing here. That's why, I mean, the pattern, the overall pattern. And if you go, if I go back here, also you can see that LES kind of is more accurate in many other points. But the point is that with LES, you need to have a better resolution to capture. I mean, with U-Rans, at some point, your result is not sensitive to the grid size because it doesn't give you any better result even though you refine it even more. But LES is always capable of getting better results for you if you refine the grid. Right here? Well, that goes back to the, well, there are a lot of, it's a very complex thing to simulate, first of all. And one thing that was involved here was that, like you see there is a small gap here between these rocks right here. There is a gap here. And in our simulation, these gaps didn't create it there at the beginning, but after a while in the experiment, those gaps was kind of created because we used kind of glue to connect the rocks together. After a while, the glue was gone and there was a turbulent flow through the rocks that caused that one. But in our simulation, when we say, this is geometry of the rock, it's always like that, it's a numerical thing. That was part of the reason though. So I think I'm done. I'll be happy to take any questions if there are any questions. Yeah, the flow solver, LES, URANs will be available and then part of the fluid structure interaction as well. Yeah. But to get an exact date, you can email a photoist such as Paulus, my supervisor, he would give you a kind of exact date when it's going to be available by the end of this summer. Let me put up his email. So this is his email that you can email him and ask him exact date. Which part? Which part did I change? Yeah, yeah, that's right. Yeah, yeah. Yes, definitely. Yeah, yeah. When we are going to release this software and the open source thing by the end of this summer, we definitely would prepare a manual, but not a long manual that makes it confusing, but a short manual that what you need there and what you don't need there to change. Yeah, exactly. Like for different purposes, things that you might need to change is like, for instance, for sediment material is the D50 of material or discharge of flow field or to do all the things that you need to change. We will definitely have a manual for those. And also, yeah, it's going to be a very, it is a very user-friendly software. So for those flow fields that I showed you, what I do is to develop the fully turbulent boundary layer and for that, I use periodic boundary condition. I use a simple channel, two meter, one meter, very short. And then I feed the outflow from the inlet kind of a periodic boundary condition to develop the fully turbulent boundary layer. And then once it's at its equilibrium, which is determined by the turbulent kinetic energy status, should be at some, I monitored the TKE, when I'm running the periodic boundary condition, when it's at a steady state condition, then I stop it and save the flow field at the inlet section or outlet section. And then I feed that saved flow field inlet section or outlet section at the inlet of my channel. This capability is in there, so we use it. You could see some save in the control file that I showed. Those are for periodic boundary condition and feeding the fully developed flow field from the inside, yeah, from the inlet, yeah. It's very good scalable. Yes, actually, we have used a blue gene supercomputer to study the scalability of it. And we have used up to one billion grid nodes over about 6,000, 5,000 CPUs. It's still scalable. It's very good scalable, yeah. Thank you.