Ordering of materials in materials.xml file impacts calculated keff

Hi all,

I’ve recently completed a dive into comparing two similar simulations of one pincell configuration, I was going through the two simulations with noting all details which would cause a change in k_eff whether expected or not. The final detail that surprised me is that the ordering of materials within the material.xml file has an impact on the resultant k_eff value and I cant seem to understand why this is. Apologies in advance if I miss introducing any acronyms in the body of the text, I’ve included a short list of them all at the end of the post.

It’s a very simple simulation so I was able to run every configuration with very few neutron histories (20 k), and I found that for simulations with 4 materials, I got 24 (4!) unique k-eff values , and for the two simulations with 5 materials I got 120 (5!) unique k-eff values. Now when I run 20 million neutron histories, this variation does get lessened, and a few cases converge, but I’m still wondering what the source of this variation is. I will do my best to explain what I’m working with. I was able to do this by using the papermill package to run the same notebook with one input parameter being filename which was used to get the material ids.

Simulation configurations: Fuel rod, surrounded by Helium ring, surrounded by Zirconium (Alloy) cladding ring, and moderator square box, as in Figure 1 below. Everything is centred on the origin.


The boundary conditions are reflective along the x-, y-, and z-directions. The source is defined as a point source at the origin, at the centre of the fuel rod material. Of course I’m happy to provide any details that I’ve left out when requested.

Now my understanding is that neutrons get emitted from the source, and their interactions get calculated along with the movement of the particle, and the generated random numbers get used by the particle going through various calculations on each particles side of things, so I’m not sure what this variation could be caused by. I had two colleagues independently suggest that the material_id dependence is caused by sets of random numbers being assigned to various materials, so when the particle interacts with those particles, then it takes from the set of those random numbers associated with that material. I’m pretty sure that’s not the case, because from what I’ve seen, the random numbers get input to the “particle’s side” of the interactions for lack of a better phrase.

I’ve included a few figures at the end of this post that shows for 6 different simulations the variation in k_eff results with a small 20k neutron histories, (the purpose of the low neutron histories was to be able to highlight the variations caused by these differences, I understand that these are not quality simulations to take meaningful results from).

I appreciate all inputs and possible suggestions on where I might find an answer, thank you. Additionally, if anyone would like to try to recreate my results I would be more than happy to send a brief report on what steps I took to run all these simulations.

Figure 2
The above figure shows the range in Relative Standard Deviation (RSD) values, (relative to an average value of all calculated k_eff values per run, i.e. average of all PB2 HZP, TMI HFP, etc) presented by just changing the order of material_ids for the simulations, no other changes at all were made. The PB2 and TMI simulations had only 24 different runs due to only having 4 materials for the simulation, and the VVER simulations had 120 as there were 5 materials that needed to be specified.

The grid above shows a more quantitative look at the spread in keff values calculated with unfortunately only 2 or 3 (VVER HFP, TMI HZP, PB2 HZP) showing an roughly normal distribution for the RSD values per configuration.

Acronyms
PB-2: Peach Bottom-2
TMI: Three Mile Island[-1]
VVER: Water-Water Energetic Reactor [1000] (WWER)
HFP: Hot Full Power
HZP: Hot Zero Power

Hi!
How have you defined the Random Standard Deviation [%]?
Did you use the same random seed for all calculations?
I’d say that what you are experiencing is exactly what you’d expect to see from a Monte Carlo simulation. The k_eff and the standard deviation are random variables themselves.
Also you describe the simulation of a pin cell with reflective boundary conditions but then you have labelled each case as different reactors. Not that the geometry matters but what exactly are you simulating here?
J

Changing the order of materials in the XML file changes the order in which nuclides get loaded. When sampling unresolved resonance probability tables, there is a step where the random number drawn depends on the nuclide index:

Hence, a different ordering of nuclides will result in a different stream of random numbers. However, all of the results should be statistically indistinguishable so the effect is really not something you need to be concerned about.

Ah I see, this is pretty cool, thank you! I had assumed it wasn’t a significant detail, I had run longer simulations and the results did end up being pretty similar so I assumed it was some initial result that didn’t have much of a bearing on the final result, but I was still curious what was happening there. Much appreciated again!