I am performing a full core depletion simulation on a sodium-cooled fast reactor. I have built the model and only need to separate assemblies and subdivide the fuel pins on different axial levels so multiple materials are depleted. There are 79 assemblies and I should subdivide them into approximately 10 axial regions, which means 790 materials should be made.
Before I implement this by hand, I wanted to ask if there is a better method. Can I use a function that subdivides these regions into different materials?
There is the build_cells method from the openmc.RegularMesh class which i found very useful for axially subdividing fuel assemblies. But i am not sure if this is what you are looking for.
I think you will like the diff_burnable_mats argument on the model.deplete.CoupledOperator method. It allows you to have a single material for the fuel cells on the user script and it makes lots of new materials behind the scenes.
For segmenting the geometry it sounds like a for loop with subdive could do it. I hear there is also an excellent package (openmc_cell_segmenter) for segmenting cells but is probably unnecessary in your case.