 Okay, I think almost everybody's back Thanks for being willing to take the break early. Hopefully everybody was okay with that And everybody online we're gonna go ahead and get started again here in just a second. So Just to recap where we left off last time we had a Flux spectrum that we plotted but as noted very aptly noted by somebody to ask a question saying What are the units of this flux because looking at this right? We expect the flux to be much much higher, of course in a true reactor so one One piece of this is that is the flux units themselves and again I'll just go back to the scores section of specifying tallies and open emcee so that we can look and see that flux flux flux That the units of flux are in particle centimeter per source particle per source particle so for every source particle Producing a certain track length essentially a certain distance traveled through our pencil in English version of what that means What those units mean how to get from a flux we're trying to get to Units that are physical. So this is going to be particle per centimeter squared So to do this we need to compute two factors as part of our Monte Carlo model The first one is going to be the volume second one is going to be A power normalization or a neutron source, right? particles That assemble as well Source particles per second. So if we look at all these units together Starting with our unnormalized flux Particle force particle Thank you. Thank you. Hopefully this is a little bit better Sorry about that. So a quick recap the units the unnormalized flux that comes out of our Monte Carlo code Is in units of particle centimeter per source particle And we need to compute a normalization to get us to the physical units of particle per centimeter squared per second So we're just going to go through that as an exercise together The two components of this that we need is one the volume in cubic centimeters And then second the source in source particles per second So this is our neutron source rate as a result of the fission system that we're working in So first We're going to divide by the volume So this is going to be one over Centimeter to the third and then we're going to multiply by our source rate Okay, so when we look go through this our units are going to kind of cancel here This will become centimeters squared our source particle term will cancel and that's going to result in The units that we want which is particle particle Percentimeter squared per second Okay, so we'll do this in two steps the first one that we'll do is going to be the volume And this one's relatively straightforward for the model that we're working in if you're trying to determine The flux in say a specific material or a specific region of the model We do have the ability to do volume calculations in open mc So if you have a really unique Or complicated shape you can tell open mc like hey, I want you to run a simulation And tell me at the end of that simulation. What's the volume of that cell so that this becomes a lot easier Now but for us because of the way that we specified our pin cell We know that the volume here is just going to be Based on the pitch The pin cell pitch now we're working with a 2d model So all of the units we do have to do a little bit of mental gymnastics because all of the units that we're looking at Are going to be Per unit length into the page. So this is a 2d model. So really our volume here is going to be an area But it's going to be an area Per unit centimeter if that makes sense or you can think of this Or you could think of this whole model as just being one centimeter deep into the board That might be an easy way to think about a couple of different ways to go So We'll go ahead and compute the volume For our model that's relatively easy Which is going to be the pitch Multiply it by the pitch Now one thing I will say and we can just go and look at what that is The k effective value. That's a good point. Um, I was going to kind of skip over that part But yeah, we can go ahead and account for that. So We'll get into that more when we talk about the source term though. Okay, but I'll make sure to include that Yeah, we'll just do the volume for now. We'll get to that in the source term So for the with regards to the volume I just want to mention a couple other pieces of the property of the model object that we're working with So when we look at the geometry, we can do things like automatically compute the ask it to compute the bounding box of our geometry And so if we do this it's going to go through and look at all the surfaces The relationship between these surfaces according to the csg specification and then try to determine a bounding box Now we know this is a 2d model and we see that reflected in this bounding box because we have an infinite value in the z z dimension For the min and max of this bounding box But here we see that we are in fact, you know, half the pitch in each direction And we could have used this to compute the volume as well Okay, now so for the remaining piece to get the neutron source is slightly More tricky the neutron source is we're going to need a couple of things one We're going to need that kappa value that we had before Which is going to come to us an ev per source particle All right, and then we're also going to need a power for our model, which is just going to be Plots or joules per second All right, and equivalently we'll be able to write this in Um, so what we're going to do here to compute our neutron source is Start with our 1 over the kappa value That's going to give us source particle per ev And then we are going to take Our power and simply multiply By our power converted to ev per second That's going to give us units of source particle per second Now there's a really good point made here because for systems that are far from critical or far from a k effective value of 1 Our source term is actually changing From generation to generation if we were to physically model this the number of neutrons in our system is increasing And so there's a couple of different ways to handle this For systems far from critical the most common one is probably to divide by the the k effective value here So we can adjust and just say we're using the source term from the previous generation of neutrons Okay, but there's a lot of different ways to handle this you could take the average of You know the k effective value in 1 or something like that as well But it is important to account for especially in systems that are far from critical We're resulting neutron source but If we recall last time we kind of well, we already have this information actually so we don't need to produce another tally Right so What we'll go ahead and do is determine a pin cell power This is something that the Monte Carlo code is not going to provide to us This is something we need to know a priori as an input to the simulation Because with the Monte Carlo code is really providing to us is a shape of our flux of our power distribution And it's all unnormalized. It's all in a reactor situation. It's all normalized to the power but that shape that flux shape and distribution is Not the power does not determine that right like it's not either shape of the flux does not tell you what power the reactor at Is at the neutron population and fission rate tells you what the power is at And so, you know, that's just a parameter that's separate from the Monte Carlo simulation So for our case here, we're going to compute the power using kind of something that that is approximate to be clear That g1 and i put together So in this Model of cefr the total power So originally this would be in megawatts Is 65 megawatts. Well, I guess it's in watts. Sorry. So it's 65 megawatts We have 79 assemblies So we're going to divide that total power by 79 because we're looking at a pin cell from one assembly And then we're also going to divide by the number of pins in a single assembly and in cefr. There are 61 pins in a in a single assembly And then the final adjustment that we have to make is that our power is per centimeter So if we were to just use this value here, that would represent the total power For the entire length of the core, but we're doing a 2d calculation in all of our parameters are per centimeter So we're going to be dividing by I think 200 is a little high. Honestly, isn't it like 40 centimeters high this this just this section of the 80 centimeters. Okay, so 80 centimeters. So we'll adjust that value And the end result here is that we have watts per centimeter and we should have you previously game of art With me v provision right just capo So we have me v provision above. I'm just going to compute it in ev provision Remember for the same system. We already computed this value That's just going to be capo vision vision divided by the vision rate So now we need to take our power. So we'll say this is the pin cell power And we're going to convert that Ev so we get equivalent units here So that just means that we need to multiply by I'm swaps Power divided by our constant One e to the minus 19 ev per joule So then our neutron source rate is going to be equal to the power. So the pin cell power In ev we're going to divide by the ev per vision and then we'll also divide by our k effective Which we can get from this state point file pretty easily, but since it's up here in the output We'll just grab it like that one point four eight one point four seven One point four seven eight four three one minus that must be what happened there Okay, so for a single pin cell Per centimeter right this is going to be our neutron source rate now We have that we're going to kind of borrow some of this code above for our For a plot that we did of the flux spectrum put it here And really the only change that we're going to need to make is We're going to take our flux spectrum. So we'll call this the normalized It's going to be the flux spectrum from before We're going to divide by our volume So each value in that flux spectrum will be divided by the volume. Whoops Didn't mean to execute that quite yet And we'll go ahead and flatten this also So we'll divide by the volume And then beforehand here, we will multiply by the neutron source term And then we need to make sure that when we plot we're passing it the new array Are normalized There we go So that's kind of the process generally for how you Will adjust and I should update the label here because we are now working with particle per centimeter Squared any questions any thoughts there? The next thing we're going to do is are there any questions online? Are we doing okay? All right, cool. Sorry. I just want to check real quick So the next thing we're going to do is look at tallying different reaction types by material and an open c open mc problem This one should be relatively brief this exercise. So just for a reminder Of what's in our model. We're just going to take a look at the materials again They have fuel steel So fuel steel Helium So now we're going to do and there was a question about this earlier So hopefully this is helpful to that person, but we're going to create what's called a material filter this material Filter and what this is going to take in is just a set of Open mc materials and we can just pass these materials on from our model Straight in if I didn't make a syntax error. I don't need this extra closing bracket. So it can just be model dot materials I'm sorry. I must be getting tired We can take a look at that material filter So here the material filter is just telling us it has a filter id of four It's another one of these objects in open mc that automatically gets assigned ids as you create them and we've created some filters already Uh the bins of this filter are the ids of the different materials We can see that here. So the sodium is 12 helium has an id of 11 Fuel has an id of 13 fuel has an id of 9 We see those appear here Uh, we are going to use this in a tally. So we'll call this a A reaction tally because we're going to be tallying some different reaction rates in these different materials We're just going to say let's create this tally and then set the scores So the score is old tally old tally fission old tally absorption and scattering And then for the tally we're going to add this filter. So the tally filters It's going to be a list of Different filters and the only one that we really want to look at in this case Is just going to be our material filter and we can print that tally just to see Uh Oh I set it on our old tally object instead of the reaction tally So I need to correct that real quick. This is why we check things I suppose and print them out So now if we print that out, uh, we can see that I have in fact applied our scores and filters that we originally intended Let's see and now Just like we did before when we were switching out tallies We can do that pretty easily in the model just by supplying a new tally's collection object And we pass to that collection a list of tallies. So in this case, just the reaction tally And then we can rerun our problem getting the new state point file and off we go I spell something wrong here Scatter maybe instead of scattering Scatter we'll go ahead and recreate that tally correct the score Run open mc. All right. That looks like it finished up just fine Yeah, sure Sorry, that was kind of scattered because I made so many errors typos in there Apologies else that Was there an issue? Did everybody catch up Anna? Okay, cool. No rush. I just wanted to I just wanted to check in before I go on Uh, so our simulation executed and now we're going to use these commands with open mc state point state point file as sp We'll get that tally out of it. So we'll what we call this uh all this reaction tally out And we'll say get our tally And that id should have a react should have a tally that matches reaction id Okay, and just real quick We'll print that tally Double i in there. So I'm just going to correct that real quick. We'll see that it has our material filter And our three scores that we want to see So this is going to be kind of an exercise in looking at why we do things in python Or one of the pieces of our philosophy on why we do things in python And it's because we can leverage these really useful Useful tools useful packages that are developed by a really a much broader community than just our neutronics community And we can really benefit from that So one thing we can do is to produce what's called pandas data frames And so i'm not sure if people are necessarily familiar with this But there are a really nice way to be able to manipulate and Visualize tables of data. So in a situation like this where we have like categorical data for different materials and different Reaction types in those materials. It's a really useful way to look at these things So for the reaction tally out we can just tell that tally to produce us a pandas data frame And then when we just execute a cell with that pandas data frame in it or I think even if we print it I would hope. Oh, it's less. It's actually less pretty when you print it, which is interesting, but still nicely organized So if you just execute a cell it will give you this kind of nicely Formatted and printed information about the different materials. We're looking at the different nuclides Which we're tallying for all nuclides in this case and the different scores along with their mean and standard deviation So a really easy thing to parse like with very little effort essentially And then we can even leverage that data frame to do some pretty convenient plotting We can add information to it as well. So we can do things like tell me the data frame We're going to do an add a normalized mean to this we're going to tell it That the category for normalized mean for each of these scores is going to be equal to the values of the data frame for the mean So it's going to extract everything in this table here That's under the mean column and then multiply that by our neutron source That will have added a category for the normalized mean. So this is a total reaction rate So the total number of reactions in our unit cell per second. Let's see. What else? What other fun stuff can we do with this? We can extract specific reaction types really easily. So if we want to look at Only information in a data frame Uh Where the score is equal to fission or let's see, uh, it's actually going to be Or that'll kind of Filter down. Whoops So this is going to give us the set of locations in the column Where the score is equal to uh fission and then if we kind of filter out those entries by selecting them in the data frame That will give us a fission data frame where we're really only looking at the uh the fission score For each of the different materials that we have So it's like a really good way of just extracting those and also just doing kind of a sanity check here that yeah We're not really producing fission in anything but our fuel material in this case And finally you can produce plots, uh, really really easily with this kind of, um Object in python and so we'll go ahead and tell the fission data frame Generate a plot on the x-axis. We're going to be using The material out let's add the material names to this because it's just kind of messy to look at Entry to this where do we add the material? Well, let's see what let's do without it. Sorry an interest of time We'll just move on but I think in the solution notebook Uh, it adds the material names in here to give us a slightly prettier plot than the one that i'm going to be producing So we'll say The x-axis label is going to be the material and then we're going to have in the y-axis the normalized mean The type of plot is going to be a bar plot and we can provide a label pretty easily. I think So label So here we go This might be a little more interesting if we did something like scattering I think so we can do that real quick I'll just copy this fission data frame down And instead of generating a data frame Based on the fission reaction We'll do scatter instead And we can similarly produce a plot pretty easily or just instead of using the fission data frame We use the scattering data frame and so here we see we get A lot of scattering in the fuel I believe this is going to be the stainless steel cladding here So we just get a little bit relative to other materials partially due to the volume partially due to the cross sections And then finally we get a lot of scattering in our cooling in the sodium partially again Due to the size of the sodium relative to other materials in the cross sections. Okay, so Are there any questions on that I'll leave it up here so we can there's one simple question Can you plot both scatter and fission on the same graph? Yes, I believe you can I am not savvy enough to do it with python data frames or with pandas data frames So I won't probably won't attempt it here, but maybe I'll like show it After the next break or something like that. I wish I've had a chance to play around with it But yeah, it is possible. I guess that's helpful Okay, uh, if there are no additional questions, we're going to move on to kind of the next Concept in geometry We're going to dive deeper into using universes to replicate geometry and open mc and start building ourselves toward modeling the full assembly of the CEFR model so we mentioned a We mentioned these before that universes are really just a way to collect a bunch of cells and then use them as the whole geometry Or reuse them inside of other cells in the geometry So first before we kind of dive into that We're going to re-approach making our CEFR pin cell a little bit and use some additional Convenience functions to create this collection of cells. We're going to insert into a universe Um, so what we're going to do is we're going to make well first We're going to make a toy a toy pin cell I'm getting a little bit ahead of myself here Yeah, we're going to make a toy pin cell just so we can get build sort of an intuition for what universes mean and also work With a little bit with rotating and translating use universes inside of a cell So to do this we'll create a relatively simple model. We just need a outer surface a o a z cylinder not just a cylinder And then we'll make that a radius of one We'll say the inside inside of the cylinder It's going to be inside of the outer surface, which I just realized Uh, and then we'll go ahead and make a pin cell So just a pin cell The region being the inside of that cylinder And we'll fill it with our fuel sure we're going to take that Let's see and then we're going to also do the I'm going to make a cell for the outside of the cell Now pin cell That's just going to be the outside for our outer surface or our surface really And we'll go ahead and fill that with our sodium So a very simplified Pin cell model here So then we'll go ahead and create a temporary universe And we will add ourselves to that universe And those cells are going to be our pin cell and then the outside of that pin cell Now we can plot this thing In this case, I think we do want to provide it with a little bit of info on the width Right, okay. Yeah Okay, so here we have it plotted. I'll make this a little bit wider So we get a better sense of where we're at here. All right, so we have a three by three Uh, three centimeter by three centimeter image Here and here's we here we have our pin cell And this one does go all the way out to negative one to one So I got to dig into that a little bit. I'll report back tomorrow um Now what we can do with this is we can take this geometry We essentially have a one cylinder with fuel in it and it's surrounded by sodium and this goes on forever So I can kind of just bear that out by saying You know, if I made this 100 by 100 or maybe not quite that large But like 50 centimeters by 50 centimeters and we rerun this we see that the sodium outside of here Just goes and goes and goes goes on forever Let's say that we want to build a geometry that's contained and we want to use these two cells Our finite pin cell and the infinite sodium region to fill another cell. We're going to go ahead and do that Let's make a we'll start with the surface. We'll make a big cylinder So we're going to create a big cylinder and then we're going to create a big cell So I'm going to take a shortcut here and say that the region of this cell is just going to be The inside of the big cylinder I'll put a space here just to make that really clear And now the part we're going to start really leveraging these universes is we're going to create a big cell Or so we're going to fill this big cell with instead of a material We're going to fill it with the universe we created before So now we've created a larger cell We have our smaller one inside of it And it's going to be or the way we have the universe that's filling that larger region So we can get a look at what that is going to look like here in a second So now we can define a universe And we're going to add a single cell to it This is different than our previous calls where we're using add cells. We're going to use add cell and now We can go ahead and plot this universe. And so instead of now having a unbounded sodium region We've taken that infinite sodium region inserted into a larger cell and now we have a finite model that we're looking at All right, so here's oh, yeah, yeah This plot with regions It's borders What is this? What do you mean, uh, Vladimir? Sorry If you could you say add cells, stamp, you plot them For this one Because you need to provide it a width Yeah, do you want sketch? Yeah, only with only like a sinker Okay So now we can do some more fun things with this now that we've filled the cell with a universe We can modify that original surface And then see what happens in terms of how it then is represented inside of the larger cell So that's what we're going to do. We are going to say Surface that we created If I hit period and then look at the uh and tab complete it's got a bunch of different information on it In particular what we're going to look at here is these x zero and y zero values So if I look at x zero it's zero And y zero is also zero. So we're just going to change those a little bit. We're going to say x zero is going to now be equal to 1.0 and y zero Is going to be equal to let's say 0.5 and now all of that and this is something I think really demonstrates the power of This object-based approach in the python api is we've modified these values on a surface that we've already added to a cell That's already been added to a universe and and these changes that we just made here We're just going to show how they propagate all the way up through the geometry so that you can modify things on the fly There's no need to rebuild or re-execute any of the previous work. Um, it will just update on its own So when we look at big universe Plot that we see that now our cell is off-center All right, it's been adjusted according to this and we can take that to a little bit of an extreme Let's say this is 2.5 Do it again. So we're getting into a little bit more interactive capability here for adjusting our Our geometry now similarly we can also do something uh to our cell To adjust the contents within a cell. So there are sometimes where When we modify this outer surface if we were to use this In our universe in multiple different places in the geometry And we modified that outer surface. It's modified everywhere but if we only wanted to Translate this universe inside of one cell we can do that by setting the big cell translation property And so we can do something like let's say let's just undo this translation And we can see if we can make this pencil go back to the center of our larger cell so sure enough If we were to do this translation or apply this translation, this is exactly what how it would be represented in transport It's going to move the center uh pencil. It's going to move this pencil back to the center of the larger cell We can take that further. So if we wanted to you know, just do this 3.5 It's going to move it a little bit further over to the left and similar with a rotation if we then wanted to take this and Rotate it We can do that as well. Okay, so the rotation. I'm trying to remember I think it's just going to be around the Axe that it's in degrees around the axis. I hope it's not radians, but we'll find out that rotate around fun Right, right, right. Uh, let's get rid of the that our translation Turn our rotation. Okay, so that was a little funky because the translation That we applied as well as the surface updates. We're kind of like competing with each other We've just done a translation. So if I reset this rotation to zero We're just looking at the translation or sorry the the surface coefficient changes that we made above So it's moved over in x 2.5 and a little bit up in y But then if we rotate this around the z-axis by 90 degrees We see we can translate the geometry inside of the cell. Okay. Any questions on that? Yeah, it's it really comes down to bookkeeping To be honest. Yeah, yeah, it yeah When it comes to the translations and rotations, like that's why we kind of provide these visualization tools It's like you can just check it like right away It's a that's a good segue though into looking at open mc.dev The plotter utility that we do have so this is like a nice GUI for exploring open mc models in an interactive fashion Where you can move around it really easily You can explore things you can do some basic tally visualization in these two after running a simulation But this is like this is the real ultimate way to explore an open mc model interactively once you've generated it because Yeah, you can just move through it so much more effectively than going back and typing and typing so Okay Any questions online? All right, so now we're going to move on to lattices. So this is a construct in Monte Carlo Neutronics that will allow us to leverage the universes to really replicate our geometry now So they're a really convenient way to repeat these universes and automatically translate them I think I mentioned the pitch before It'll automatically handle situations like that for us So we don't have to explicitly define all these different pin cells in an assembly and then a full core Uh, so real one quick segue is we're just going to start defining some Colors for our materials. So we'll call this matte colors So that when we're doing our plots of these lattices, we're it's really clear what we're looking at. So just a little bit of a Side journey here. I don't know what to call it. So we're going to do uo2 And that's going to be Make that red our steel be gray the helium Be a darker gray looks like Let's have it be now. That's fine Where's that? Oh, that's closer to white. Isn't it my bad? So it's just it's an off white And then what am I missing? Is that all four of our materials? One two sodium sodium is good And one of the sodium be light blue and all of our subsequent plots here We didn't call it helium. We called it h e So I made a mistake with this uh This key so note that when we define these colors We're really just passing in the material objects setting a color on them All right. So now I think I mentioned before we're going to take an alternative approach to building our pin cell and building a universe as well as a result So we are going to uh use some convenience functions for building pin cells We walked through it manually earlier today because it's valuable to understand How these different regions are constructed and how you build them and interpret them But there are a lot of really convenient functions for very quickly building pin cells up into lattices assemblies and cores and open mc So we're just going to explore an alternative method to Creating one of those. So the first thing we're going to do is set the different radii for the pins Or for the within the pin and Going to Go up to the top Just copy this down So that I don't have to go back and forth. I should have put these into the notebook So our pin radii the first one's going to be 0.08020 centimeters The next one is 0.25565 one two three zero 499 okay, so we're going to set it up so that we know all of the different surfaces that we need Then we're going to create surfaces for this. We're going to do this in a Fancy python way. So we're going to call this the pin surfaces They do this I'm going to create a z-cylinder well, yeah z-cylinder and That's going to be equal to the radius for each radius In my pin radii So we're going to go ahead and execute that. So this is a fancy thing in python This is purely a python thing. We can't claim it as open mc But it's a really fancy way to create a list of objects So it's just saying if I were to kind of follow through the the way that python interprets and executes This it's going to say for each radius and the pin radii. So this is like our loop variable that we've seen before We're going to create a z-cylinder where the r parameter is set to that radius And sure enough if I look at that You see our pin surfaces Uh have all been created for us There's no number at the end Okay, so we have our Pin surfaces Now we're going to start using some of those convenience functions to build up our model The other thing that we need to define ahead of time for this is just our pin materials And we're going to do this in a specific order. So in the interior, we have helium We have our fuel material Our uo2 is called sorry The uo2 We have our gap and then the steel cladding And then sodium good All right now we're going to use a convenience function in open mc To create a pen cell universe Need to be careful with my naming pin universe So we're going to be using this pin function That's part of the open mc model module And so if we look at this it's going to take in a set of surfaces which we've already created We have our list of cylinder surfaces It's going to take all the items that to go between these in our case We use the word items to be generic because we could be filling with a universe or something crazy like that In this case, we're just filling each section with the material And we can also provide additional info on how to subdivide this if we wanted to do radial subdivision or axial subdivision of the pin cell So this convenient method convenience method is going to allow us to create a pin universe with one call By passing in the surfaces and then we can plot this and we'll give it a width that's Two by two centimeters So there's our pen and I hopefully nobody's too angry at me for how much time we spent on that this morning But um, it can be that simple really with a lot of these convenient functions that we have available So that gives us a pin universe to work with And now based on that we can start working with Our um lattices to build this up into a lattice One thing we're going to do real quick and this is just kind of bookkeeping for later So that we don't have to come back and do it is to grab the fuel cell Out of this pen universe that we just created So we can do that pretty easily just by saying give me us the new fuel cell that we just made It's going to come from the pin universe and this these universes have really the pen universe cell For the values Of the universe cells, we're going to get the first cell So these were created in order from the inside to the out by this convenience function First there was the whole the fuel region the gap the cladding and then the outside just like we did manually Um, so rather than get the very first cell that was created, which is the hole I want to get the fuel cell. So this is going to be the not the zero with Item it's going to be the first item and then we'll print that out To make sure that we got the one we were hoping for Values, what did I do here? I messed up something. Oh, yeah, right right right I need to make this a list first so that I can index it. So we're going to wrap that in a call to make it a list We'll pause for a second. Um, so that we can make sure that everybody Uh, we can address any questions and for those of you still coding along that you can kind of execute this because it's not Super straightforward. Sorry about that. It's probably something we could improve in our api to make that easier. So Um, are there any questions? Do you want? Yeah, so the yeah, so let's take a look at what we whoops What this produces so let's say this is our cell list Uh, not universes just universe And let's print that out to screen print So in this, uh material description This is going to be the very first cell it's going to be filled with material 11 which is our helium Um, and so that's why we want to skip that first entry Yeah, no problem Good question. Yeah So that's a really good question. Uh, the question was Regarding burn up is open mc capable of modeling burn up in a molten salt reactor. The short answer is Not yet. Uh, there's actually a pull request open. I believe adding the ability to Do frisian product removal online as part of the burn up module so that like it's in like literally in progress Somebody's working on it right now Um, and then also in regards to msr modeling, we're working on representing properly representing Uh delayed neutron precursor drift based on a velocity field coming from like a cfd code or something like that So for like a steady state velocity field, we can make sure that the Delayed neutrons are appearing where they should in the model those. Yeah, but those couple of things like are are really limiting factors For doing that sort of modeling, but it's it's coming. It's uh, it's sort of eminent. Okay, uh, we're gonna kind of do our Final push here in modeling this assembly. So this is tackling the lattices and open mc So we're gonna define kind of a toy universe that's gonna help us Visualize these and what they're doing. So the first thing we're gonna do is define a universe that's entirely water So we're gonna make a water cell Fucking light water reactor world. I guess uh, we'll go to We'll make this a helium cell So we're not going to specify a region and this is something I probably should have touched on earlier But if you don't supply a bounded region to a cell, it's going to just by default be an infinite cell There's no surfaces for particles to hit. So the cell will go on forever So we're going to create that cell and then we're going to create an infinite helium Universe we're going to pass in the cells that should be in that universe and really in this case It's just the infinite helium cell, right? So the first thing we're going to talk about because they're a little bit more Intuitive to handle. Oh, and I should yeah, okay, we can replot those things later. Sorry They're a little bit more intuitive to handle is rectangular lattices. Oh, it's just rect lattice. Sorry So there's a few pieces of information that we need to represent these lattices Uh, so one is the pitch. We talked about that quite a bit before uh, Vladimir Caught this earlier, but we were using a pitch that specified for hexagonal geometry Uh, so we're going to use a slightly larger pitch in order to find our lattice here for the rectangular geometry and then uh, we need to supply the lattice with the lower left corner of where it's going to start in space And it's going to build that lattice up from that from that corner. So for us, that's just going to be the origin And then the lattice pitch itself Is just these two pitch values. So we're specifying the pitch in both the x and y directions We can do this in the z direction as well If we wanted to have a totally different pitch for the x y and z directions we could Um, and it would build a 3d lattice for us in that way Now the last thing that we need to specify is what universes go where inside of this lattice We're going to do this by providing a nested list That list is going to contain just the set of universes that will go into our lattice in a particular order So the way that it works is kind of outside in so we're going to provide each row of the lattice in order first with our pin universe And then next to it So we're going to kind of aim to do something like like a two by two lattice Inside of this We're going to have a pin inside of this is going to be just So the way that we do this is we kind of build inside out So we start by defining what it's going to go here in a list And then in the next list We're going to do the inverse Infinite helium is going to come first And then those two those two lists are going to go into a list The idea is like we're going to define these two things in its own row in a list Those are going to go into a larger A larger list to represent all the universes that go into this All right, so now we're going to just make a quick universe that's uh, let's see. Let's see. Let's see We're going to make a quick example universe And we're just going to fill that with I'll break this out a little bit So we're going to fill we're going to create an example cell and fill it with that lattice Then we're going to create a universe That just has that cell in it. Now we're going to do some plotting. I'm going to pull in some code Um, just for the sake of time So for this example universe, we're going to plot Three times the pitch in x and y We're going to set the origin to the pitch so that we've kind of we're kind of sintering because if we set our origin to 00 we're going to get kind of a view that goes off the side of this lattice So we're going to move our origin up And then we're going to color by material we've been coloring by cell so far So we're going to color by material instead And then we're going to use this kind of notation to pass all these plot arguments to This we want to use matte colors Well, this is kind of our replicated geometry of taking our new pencil universe And now I've used it in two different places Universes and the locations we were hoping for And then just one thing to quickly touch on Is the meaning of outer for a lattice This is true for both rectangular and hexagonal lattices When you get to the outside of it, you can see here that nothing is defined outside of this lattice But you can provide a universe to define any of the space outside of the lattice for you So if particles do reach that region for whatever reason You have something there and so we can just make this maybe yeah, we'll make that our infinite helium or Now if we do that plot again It's a little subtle But maybe yeah, it's kind of washed out on the projector. Let's do this Change our helium cell to sodium Okay, and there we go. So now we see that instead of having Nothing out there. We have something and I think that'll allow us to move on to hexagonal lattices I'm going to keep chugging forward here so that we can get to the exercise description But I'll hang around of course to answer any questions that we need so We took a look at rectangular lattices because They're hopefully a little bit more intuitive the indexing is pretty indexing structure. So two-dimensional will be zero zero one zero Hexagonal lattices are a little bit trickier But we have some convenience capabilities inside of open mc to hopefully make that a little more tractable So first thing we'll do is create a hex lattice And similar to The rectangular lattices we're going to need to set a center So rather than an origin We're setting a center here and we do differentiate that because the way these are built is slightly different And then we'll need to specify a pitch The question that probably comes to mind is why are we only specifying a single pitch as opposed to two? So for hexagonal lattices, I really wish I was more of an artist right now, but I'm not So for hexagonal lattices as opposed to rectangular lattices The way that the indexing is going to work is we have It goes by rings. So if we were to have a hex lattice with only one Pin cell it's going to be in the center and then we're going to start Somewhere in the in the rotation around the ring and this is going to be our pitch And then similarly as we go around the ring, then we're going to have a pitch here The next entry Yeah in a pitch there here and so on Now it's a hex. How about that? Um, so Well what that means is to define a 2d structure as we continue to go out in rings We really only need one pitch value as opposed to the rectangular lattice where it's required to have two And here we'll also set our Yes, because even in a hex lattice we're doing 2d models right now, but even in a hex lattice We could have a pitch for the axial dimension for the for the hex We're just doing 2d today Let's see for the outer we're going to define an infinite Let's do this infinite sodium infinite sodium cell and then infinite sodium universe So again filling a cell with sodium, but no region. So it just goes on forever We'll specify universe where the only cell infinite sodium cell and then we'll apply that as our outer okay So one thing that's kind of nice is we can take this hex lattice And we can say show me the indices for Print probably print Show me the indices for a certain number of rings And it's going to tell us what the index is. So We actually start from the outside I think it's more intuitive to start from the inside, but this is how it's quoted up So, um, we start from the outside and we start going around the rings in a counter or clockwise fashion And then we get to the next ring and it starts with one and then it goes to 1 1 1 2 1 3 and then we get to the middle And it's 2 0 This is really useful in visualizing like where is each universe going As I build them up. Oh just a little bit. Oh this. Yeah. Yeah. Okay. Sorry. I'll keep that. I'll keep them Yeah, yeah the outer outer universe for a hex lattice is going to be sodium Um, so this also describes The order of these rings or the order of these indices also describes how we're going to supply universes to the hex lattice So the first list that we're going to supply is going to represent all the universes In the outermost ring and then the innermost ring and then finally Uh, sorry the middle ring and then finally the inner ring Well, we're going to have more than that in our actual assembly model But thanks to doing this in python, it's not going to be as painful as it might seem to define this So kind of the goal here for what we're trying to get Goal for what we're trying to get to Looks something like this So for us, it's pretty straight forward in a way because all of our Hexagonal cells are filled with the same pin cell and then we're going to have a couple cells to tack on to the outside In order to define Uh, let's see in order to define these uh, these universes we can Say we want to make a list of lattice universes And then based on the number of rings in our image Or our specification, how many rings are there if you want, do you know offhand? So there's five rings Uh, so this list is going to contain At each entry the set of universes for a given ring starting from the outside and going in So four Ring in Five this is just all range is doing here is supplying a set of values Zero to four for us to generate these rings I want to make that clear. We are going to End to the lat lattice universes a new list And then we're going to say For any ring that's greater than the first ring. It's really equal to this ring value Okay, so the number of universes in any ring other than the first one is equal to the to the To the number of the ring times six just by nature of being a hexagonal geometry and so we're going to say Provide us a number of universes Um, that's six by the ring unless for the first one that would give us zero and in that case It's just going to be one. So that's kind of what this little function is doing here. That's a built-in python function. Nothing Nothing that I did by any means And then we're just going to uh Expand a list of universes So we see here we get this nice long list of lattice universes It's nested and if we look at the first Yeah, the first entry Then we're going to see it just has one universe and if we look at the last entry It's got a whole bunch of universes. Okay, so that's our outermost ring specification Now the way that we based on the indexing that we see above we need the outer ring to come first And so we can actually reverse this when we set it on the On the hex lattice the lattice universes And there's a nice fancy way to just reverse a list by doing this and it's just saying go from the this is saying go from the beginning to the end But do it backwards is the negative one at the end throwing some random kind of fancy python stuff here and at the end Okay, now we need a cell To contain all this in so we're going to say See we need a cell. We also need a surface And we'll say that's going to be Yeah, four centimeters, it's fine. We'll make it a vacuum boundary And then we are going to create a cell where the region is the inside of that outer surface The fill is our hex lattice now. We're going to create a root universe And now that we've done that we can go ahead and plot it. So we'll say The width on this is going to be two times the outer radius of that cell. We just made So we'll call that eight by eight Let's color it by material and make sure that we apply our mat material colors Oh, yeah And one other thing that I haven't been doing but it's pretty nifty Is if you are providing material colors to open mc, it'll also create a legend for you alongside Let's make this a little bit larger. So I'm just going to up the pixels pixels Equals make it 600 by 600. Okay, so we're getting close So we're getting really close. So now we've built this whole This whole assembly that's representing this fuel assembly of the cefr Now what can what do we notice about this image versus this one here? What's different maybe right so the the flat edge or the rotation of this lattice is a little bit different than the one we see In our image So rotating this lattice is relatively easy. There's two orientations that we use for hex lattices By default the orientation for the hex lattice is y meaning that the flat edge to me This is how I remember it anyways the flat edge Of the hex lattice is going in the y direction Now if we just change this to x We can go ahead and replot this root universe And it's going to rotate the whole lattice. So the orientation is now where we want it to be Okay, we're Almost there looking pretty good So the next thing we need to do if we notice in this image We see that there are some regions on the outside The steel So open mc does have a plane that's arbitrarily that where you can Provide arbitrary coordinates for the normal vector of the plane. However To do that for these off angle surfaces would be a pain So we tried to make it easier and we have a method that is the hexagonal prism And so that allows us to just create a hex prism with a specified edge length along each edge of the prism And we can use that to more easily create The outer edges to create the ductwork and then the exterior sodium for the to represent the space between our assemblies We can say the inner section of the duct is going to be a hexagonal prism Looking at what we need to provide one is going to be an edge length The edge length for us here is going to be specified in the tcs doc as Um the orientation Want to make x And then by default that's going to have a transmission boundary type So we don't need to supply that info the outer section of the duct is going to be a little bit larger And then finally we're going to have the outer assembly boundary as well So same orientation as the other two But this time this is going to be the outermost surface of our assembly So we need to make sure that we specify a boundary type which is going to be a reflective boundary condition We can go ahead and execute that cell Okay, so now we can create a cell that contains Our duct So we can call that So everything that can everything that's in the lattice can be our cell or the region Is everything that's inside of our inner duct universe and we're going to fill that with our hex lattice Oh, right so the what's returned from The hexagonal prism is actually a a region in and of itself So as opposed to it being a surface that's a hexagonal prism like a Yeah, like a composite surface or something like that This is actually the the half space or the space representing the inside of that prism So I don't need to provide a minus sign here when I'm creating this cell All right next up We're going to go ahead and create our assembly universe And we'll add this lattice cell and I'm going to go back up and steal some of the plotting Limiters that we had here Drop them in but we don't want to be plotting the old universe. We want the new one Cool. So now when we plot this we see here Looks like my uh, how do I do one two? There's six rings One two three four That looks like five to me So what's my I must have messed up my edge length That looks right. Well, maybe it is too large. All right, let's make sure that's right zero point Uh, I guess I can just change it. Hang on. That does look pretty far apart, doesn't it? There we go. Well, that's the root plot but it looks closer together All modeling steps Okay, thanks. Do you want so I had the pitch a little bit too high if you were following along with me I think I set the pitch variable But it should be 0.695 and you can correct it just with this set of code. You can do that anywhere. It's actually kind of an interesting thing That it corrected it both in this universe that we put inside of the cylindrical cell but also Down in this cell or replaced it So we're almost there. We just need to provide now a cell for the duct. So we'll call this the duct cell And this is going to be a region that is We're going to use a new geometry operator This is called the complement This tilde here. And so this says no matter what your region is Give me everything that's the opposite of that. It's like a negative space in art We're going to combine that with everything that's inside of the outer duct surface This one, we're just going to fill with fill with a Material one nice thing that we can do is just dynamically build this model up adding this cell And then if we the same object the same assembly universe after adding that cell We can replot and here we see we have our duct added So a nice way to dynamically build these models This is this whole process is very similar to how somebody would do it for the benchmark problem I would imagine g1 would know better than I because she actually did it Um, and then finally we need a little bit of space on the outside of the assembly. So Let's take a look at that We're going to do the outer cell That is going to be a region where similarly we're using something That's the complement or the negative of the outer duct region And everything that's inside of the what should I name that? The assembly boundary then we'll add that to our assembly universe as well So add that cell The outer cell Then I didn't replot that Hmm, I don't actually see it Out of duct Oh, I didn't fill it with anything that would be good So I'll go ahead and fill that with sodium I have two outer cells don't I Well now I've done it So just to explain what's going on here. I managed to add a cell twice to my universe So what I think I'm gonna do here is just kind of reset it I'm gonna say Our assembly universe So just to clarify these two cells are duplicated one of them is filled with sodium And the other one is filled with vacuum essentially And they're on top of each other now in my geometry. So to kind of recover here. I'm just gonna more Clearly specify what cells I want in here. So I had the lattice cell Do you want me to do that instead? Either way, uh, so alternative path I guess would be to remove it Remove a certain entry from this list and it's going to be Number 25 cell number 25 So if I remove that now and I look at my assembly Cells that one's been removed And now hopefully when I plot this again There we go, we'll see some sodium around the outside of the duct There's a short short question Um, what is the precision we have to specify in input of geometry? The precision the precision necessary Uh, it's kind of up to how accurately you'd like to model the geometry you're looking at really So it's kind of kind of arbitrary Like if you if your model is really sensitive to geometric changes You want to be really precise for the benchmark model for example I think we had extremely accurate measurements of these different parameters Uh, then there's also something to consider is like if you have expansion Like these are probably calculated as a result of expansion in the core also Which is why we have so many decimal places on our geometric values. So Um, okay Last Yeah, yeah sounds good. So last of the last we're just going to add We're just going to turn this into a 3d model by adding bounding planes on the top and the bottom So just small axial change, but then we'll have a 3d model at the end of this So now we're going to say We'll say the upper plane Not a z-cylinder. It's going to be a z plane It's going to be z zero. Uh, it's going to be at Our upper We're going to set that to 20 centimeters And the boundary type is going to be vacuum We'll set a lower plane At z zero of negative 20 centimeters so 40 centimeters in height total Again with the vacuum boundary condition, we're going to create a root cell that is going to be equal to Just want to make sure I get this part right, sorry Uh, the it's going to be a cell Whose region is going to be Above the lower plane It's going to be also so and below the upper plane And it's going to be the inside of the assembly boundary Now finally finally finally we're going to make a root universe Cells are the root cell What did I mess up here? universe or Extra r on the end and now we can uh finally finally create a geometry so we can say geometry our model geometry is equal to an open mc geometry where the root Of that geometry or the root universe is the root universe. We've created above now if all went well You can go and execute and run this geometry Hopefully not Oh, what did I mess up? Oh, yeah, what happened with the fission? Fixed, but I can't remember what it was That should be fine though All right, well, let's do this g1. Do you want to continue? I'll figure out what's going on and then I'll correct Okay, okay, I think it's now like we already know this is great a little bit longer Now I see follow when you type It's the world is never the same though I understand Other questions you want we'll go So now let let you learn everything about them all as the details of the cfr reactor now we can See the real example from How it was calculated and it took not one day. It took much longer And we will do it in one day Do you see this screen clearly? It's fine. Okay. Uh, yeah, let me start. I'm g1 from kerry, south korea and Here you learned many things about the open mc how to model the pin cell and lattices and Yeah, so, uh this is the Activity the activity materials for modeling the pure subassembly of the cfr So, um Here is the table of contents this is This material include what we have to consider to model the benchmark problem Based on the measurement data and rear the core and An appendix for refer the refer to modeling model the cfr core Let me explain. Okay. Yes So this is the project what you will do in these activities Here is the list to do during the girl activity to you will model the a single fuel subassembly of cfr and And the cfr the scratching profile the open mc scratching profile will be Provided and you can find it in the jupyter notebook and Cfr tutorials directory and there is an input file with some blanks So you will fill the data and simulate the open mc using this that scratch input file So first of all, uh, you will process the data from the 20 20 Celsius degree to 250 Celsius degree based on the measured informations and The first of all our calculation atomic density for fuels and structural material the two different stainless steel and sodium coolant And then you will expand the calculate The dimension the geometry dimension, but you will consider the only fuel region. I mean that there is a fuel subassembly consist of the Role reflectors and spring regions and fuels and the upper Reflected region and others, but you will consider the only fuel regions like fissile fuel and blanky fuels. Okay Then filling in open mc input scratch file Define the surfaces that make up fuel subassembly Especially the fuel regions and define pins and lattices in 2d for fuel region and stacking Universities universities in 3d and set the setting the calculation options like such as basic options plotting and tallies and then uh, you will do pros to post process the visualized the data and The mission is you need to get the all the same k effective result from the four groups and Um, and then visualize the pin power distributions and flux distributions But the pin power distributions the the input for Plotting pin power distribution is already in it. So you will not need to revise that Part because it's a little bit complicated. So you can use that directly But for the plotting the flux spectrum, you have to make your own input script Okay, so what which data do we need for the modeling the cfr? um It's easy. We discussed about in the morning and the whole day We will consider about materials material in these activities. So Yeah, so list of materials comprising the core like fuel, blanky regions and coolant and control and structural materials and We need the material properties such as masses Density and linear expansion coefficients and their isotopic compositions Because we need the the material information in the number density. So we have we need those kind of data And in terms of geometry, uh, we need the we have to expand extra and readily So we also need the the dimension information and linear expansion coefficient for the expanding the geometry So, uh, the cfr the startup test has been carried out the in with zero power and cold state But the temperature is 250 Celsius degree. So we called it. This is a cold state because it's not the half full power and uh, we consider that the core is Uh core is um, no, no, no, sorry We consider that the core the temperature is um the Fixed as 250 Celsius degree in all the regions Like there's no difference between the region by region top or top and bottom So and then consider that expanded in i uh, the all the material is isosomalic uh Increased so, uh, please consider only the temperature is fixed at the 250 Celsius degree and Yeah, this is the basic information and Let's collect and process the material data so, uh in the fuel cell assembly it consists of Of six different materials One is illichid, uh, uranium fuel Uranium oxide and depleted uranium oxide for blanket regions And the stainless steel the 1550 titanium for cladding and spacer wire spacer wires and the other stainless steel for Of uh 316 titanium for uh structures Except cladding and space spacer wires And the gap is filled with helium gas and the coolant is sodium, but we uh Assume that the in the coolant we consider that the coolant is made up with the Pure sodium there will be another the isotopes But the fraction is really negligible to Benchmark modeling the neutronics benchmark. So we will consider only the sodium 100 percent Okay Yeah, so here is the data for the linear expansion coefficient uh for those materials And the right the most right hand Uh Align shows the name used for the open mc input. So So in order to perform the calculations We have to get the number density information from all the data. So let's consider the fuel materials first So this all the specification is given at the Temperature of 20 Celsius degree. So we have to Match to match the operating temperature over to 50 Celsius degree the material densities should be adjusted using corresponding linear expansion coefficient And uh using the following following these equations so, uh This uh epsilon Epsilon uh the constants can be uh calculated by uh linear expansion Coefficient and delta temperature. So it should it will be our 230 Celsius degrees and um This information is and then decreasing the Density according to the thermal expansion then the The density at 250 Celsius degree can be uh Calculated by the density at the Celsius uh the 20 Celsius degree and divided by the epsilon and cubic centimeter. I know the By the um Epsilon because this is the 3d model. So we have to divide it by um epsilon Uh Power to three. Yeah, thank you and here um In the cfr benchmark, uh, they provide the measurement data of the message of uranium oxide and uranium u235 Like the atomic ratio should be matched with the u2 uranium oxide and uranium and u235 But sometimes the the measured data is a little bit different like If they provide the u235 mass But if we uh calculated reversely then the ratio between the uranium and u235 are a little bit different When we recalculate get the mass of u238. So In the table 10, uh, they provide the The uranium informations like this it is in the appendix um Yeah, here it is So you will uh use the average value of this, uh u235 mass and then you will get the reverse calculation to get the uranium 238 and oxide Okay, so This uh average value is uh like measured with the Around Yeah 89 sub-assemblies and then they are divided like they get measured all the uranium mass of 89 fuel sub-assemblies and then get the this average data. So, uh, please use this Data for uh get the uranium the number density informations And here is the How we get the uranium the atomic density of for the fuels so first of all, uh, we so we know the mass of uranium 235 for one fuel sub-assembly then we have to Get the volume of the fuel in the one fuel sub-assemblies then The total volume for fuel region can be Calculated by equation five and then uh to uh in order and then put uh this data into uh the equation six then you can get the mass data of the Oh ground density over u30 u235 and then uh You can get the The other isotopes uh mass data So And then you will know how to uh invert from ground density to number density So, please get this data and then uh fill this table And this number density will be used in the open and simple for the structural material, uh They provide the total mass of uh stainless steel and the fraction of the isotopes like Ion or nickel and titanium other earth so Here is the The procedure how to you get the number density of for the structural material So first of all, uh obtain the atomic mass and natural abundance of all specific isotopes and In the jupiter notebook, we provide This information in as a text file so you can refer the that Informations and then calculate the atomic mass of element from Uh isotopic atomic masses and their natural abundance Then third calculate the mass density of elements from the total stainless steel mass density and provided relative mass And then calculate the number density of uh element using the element are Atomic mass and elemental density then uh Calculate the number density of specific nucleide from the elemental Number density and natural abundance and other just the number density to match the operating temperature of 50 Celsius degrees so in this uh Procedure then you can get the all the number density information for the stainless steels And then this information also will be used in the open and simple so if the in this material the colored in in blue then please uh Read carefully and then you I'll fill this data in the open and simple too. Okay And for the sodium colons, this is uh liquid metal. So they provide the uh density of liquid sodium equations As below so just insert the specific Temperature and then get you'll get the ground density of sodium then convert into the atomic density and fill This uh sodium material in the open and simple file So those are how we get the uh The material information and then we have to consider about the geometry for modeling So the cfr core Model is used the used in training courses based on the hierarchical approach which tries to follow the natural core geometry levels so The model is comprised is uh in four hierarchical levels It's shown in figure like 3d rector core and 3d fuel sub 3d sub assemblies and 2d lattices and 2d pin cells So we can decompose in these four levels and We will design from the 2d pin cell and then sticking in 2d pins and lattices and 3d sub assemblies so For the geometry in first of all, you can categorize this the the fuel fuel sub assemblies in um 11 lattices It is composed of a lower connector and bottom and end of end plug and gas planum and blank fuel Fuel region and upper blank if your region spring and top end plug upper connector and upper shield and head um So this data is given by um the From it is extract extracted from the benchmark problem and then uh Right the right side of data is uh, we pre-calculated uh to reach to get the Expansion to get at the uh 250 Celsius degrees so um Based on the linear expansion coefficient, please Calculate the height of the blanket and fuel regions and use this data into the open mc input In the Neutronics benchmark, we don't need to model everything in details. So like in the fuel region, we have to model as detailed as as we can as possible as we can but Like outside of the fuel region some region we can uh simplify it Because it is not affected in the Neutronics impact. So In this case for the space wire Like in the first reactor, we don't use the spacer grid usually so fuel cladding are Assembled with a spacer wire between cladding and cladding So this is very thin wire will be mixed with the cladding So when you calculate the thickness of cladding then you need to consider the volume of this spacer wire and then um increase the cladding thickness a little bit, okay But there are several ways to consider a spacer wire The first thing is the mixed with the cladding and the other one is mixed with the coolant region But in the first reactor the impact is not that big difference and cladding Like mixed into the cladding is much simple and easier way. So, uh, we recommend to use this method this way and For the spring region it is uh homogenized With the steel and helium gas with the volume fraction But we are pre calculated this region. So you you don't need to consider about this Uh value, okay, and then the supporting plug in fuel rod is not modeled and rounded corners in fuel pellet also not modeled and handling head in fuel subassembly it is um Modeled as hexagonal wrappers of different thicknesses And the nodule sectors, um the under At the bottom is not modeled and the open amps input Input fire Here is the naming convention used in the open amps input So to improve readability we uh The discursive names were used when possible and the object names were made from the compound keyword using uh underscore and character as a separator So, uh, the surface surface names start with the short keyword pointing the surface type And the cell names start with the c on the bar will c stand for cell So if you model the cell region then it starts with c on the bar like fuel region and Fission fissile fuel region start with zero and one two three four and pin names start with p on the bar Where p stands for pin and the lattices names start with l on the bar where l l stands for lattice And the universes start universe names start with u on the bar where u stands for universe Subassembly names start with a we are a stand for assemblies In the uh technical course series there are more around 11 and 12 different subassembly types So this labeling is very important because it's easy to Make an input script and recognize that but in this, uh workshop We are modeling only the fuel regions. So maybe you will, uh, just, uh, Concentrated on the last Names because it is different in every lattices is used. Okay Yeah, here the how to build the fuel subassembly geometry in the open mc So first of all Defined the material and surfaces uh used for constructed fuel pins and subassemblies And then define the 2d pins Uh for the upper blanket fuel and lower blanket regions then, uh Define the 2d lattices and 3d fuel subassemblies So I already visualized in the document, but, um You will design only these three regions for blanket and fuel regions And for the stacking the 3d, um You will not need to revise for that region because Uh, it is already defined in the input file. So if you, uh, succeed to fill these those data then the 3d The cfr fuel subassembly will run Well without any errors. Okay So the activities for, um This workshop and This is the appendix you can refer the data. Um I provide the dimension for the fuel rod and this The draw for the fuel subassemblies you will get the dimension from these, uh pages And the fuel and absorbers material information is are here and Also stainless steel So here is the jupyter notebook and you can find the cfr on the batutorial notebook file and there is, um, I will give um The same permission every uh blocks like starting with define The defined the materials. So here feel atomic number density data for the fuel and blanket and stainless steel then Just fill the number in here and after that They define the surfaces for pin and wrapper and extra surfaces and hex cores so find the The pin Dimensions and then give the numbers in here Then define pins. Yes, please define the pins Sorry Yeah, the data is missing. So the participants should Here, uh, yeah this region you need to increase the height of your regions. Yeah, please fill the data and then The define define the pin for the upper blanket and fish The fewer and lower blanket regions here Also define the lattices for fewer regions only Here the other regions is already defined and you will consider for these three regions and then uh below is nothing to do because it is it is already defined and At the end the open mc will be run automatically with those figures if you rerun then You cannot see this information because some data is missed in this input file But this will be the hint for your activity in here for input for tallies and there is The visualization input option for the pin power distributions So, um below this input, uh, please add the input script for the Visualized the neutron flux spectrum for the fewer regions. Okay. That's all for your activity and Good luck relatively easy with help of this document So you can complete it like tomorrow and then you will give the task for modification of this To compare between groups. I just had one more thing to share. Sorry. We didn't get that last model Piece to run Yeah, so, uh, I made a mistake and in the root cell here We didn't fill it with anything. So we were getting this error that said there were no fission sites because There was nothing in the geometry. Oh, sorry. Can you hear okay? So sorry, uh, I created this cell but we didn't fill it with anything and so when we went to run the simulation it was saying no fission sites because Well, there was nothing in the model at all So, uh, so if you want to try to run this, um, to correct that make sure that you fill the root cell with the uh, with the assembly universe and then you should have a successful Open MC run So just wanted to note that before we end of the day and on a successful simulation So it's in chat already and completed. Okay. So now we are running off time. I think that's Uh It was very intensive a lot of information You will have a chance also to talk both to to Patrick and Jovon if you have any questions Please start this group exercise once you complete this I mean, this is cfr model and run it successfully because it's you know, more or less the results Then we they will give you some modifications Different probably for different groups. I don't know exactly but maybe the same for the same group Which you should do like individually. I mean in groups, but without no in blind without knowing the result and then on friday One of you will present this result and more or less. How did you do briefly in presentation? Just on for all between us all other groups. So now I suggest we move to Without delay we because we delay it already a lot. We move to Also I think all Lectures here will be go to the one to three sessions. You have three minutes to talk, please Of time And just I want to say the result of this we will select two or maybe three best posters Who will be awarded also some money from ictp? I am not sure how much not big not big but Essential amount of money which helps you to enjoy three s demo for the virtual For the well for the virtual part. We don't have poster session Unfortunately, but we also I invite you to repeat this this exercises In the virtual part and you can if you have any questions, please use chat And tomorrow in this case and submit your questions to Joan and to And just so this discussion on group activities that we will have on Wednesday and thursday will Include for both for open forum and open mc. So there will be the opportunity to discuss more and ask more questions as well Thank you our virtual audience and we will see you tomorrow