Hello all,
@wahidluthfi thank you for your reply and interest in the problem.
I have continued working on this issue and it seems I have identified a bug or a unexpected behavior of OpenMC.
The baseline of my findings so far is that OpenMC fails to properly model supercritical systems for coupled neutron-photon simulations while it has no problem doing so with neutron-only simulations.
Here are some details on why I came to this conclusion.
I ran a fixed source simulation with a ball of plutonium-239 and looked at some tallies such as prompt fission neutrons, and currents of neutrons and photons just outside the ball. The source is a âdiracâ that only provides neutrons at time t=0. I also set a time cutoff at 1E-7 seconds and use a time filter for the tallies from 0 to 1E-7 seconds with steps of 1E-8 seconds. I also changed the source code so that the code would not run into secondary bank overflow for supercritical configurations (I changed line 116 in physics.cpp âif (p.secondary_bank().size() >= 10000)â where replace 10000 to 1000000). The input file is attached at the end of this post.
When I take the radius of the plutonium-239 ball to 4.5 cm (r_pu = 4.5), the configuration is subritical (a criticality search would yield keff ~ 0.9). The fixed-source simulation for this configuration yields results that are expected. The neutronâs production and the currents of neutrons and photons just outside the sphere drop pretty fast (1st figure). Note that I can also deactivate the photons (setting.photon_transport = False) and I will have the same results with, of course, photons current to zero as they are not produced anymore (2nd figure).
Now, problems arise if I use a supercritical configuration. Letâs take r = 7 cm which makes the ball supercritical with keff ~ 1.3. If I run the fixed-source simulation with deactivated photons, no problem, the tallies seem to behave as expected. The neutrons production and current grow exponentially (3rd figure). Now, if I activate photons (setting.photon_transport = True), the tallies do not make sense at all! Somehow, they stagnate and decrease just before the time cutoff (4th figure)
I have also tried running the same supercritical configuration with photon_transport = True but where I remove most photons (by setting an energy_cutoff for photons). The interesting thing is that there seems to be a gradual shift toward the correct behavior of the tallies when I remove more and more photons. See the last two figures.
The last point I want to raise is that even when the tallies seem to stagnate while they should grow exponentially, the code would run into secondary bank overflow if I had not changed line 116 as described above. This seems to mean that the code does produce a growing number of particles in coupled neutron-photon mode but that the tallies somehow show the wrong results.
I am curious to know if someone has an idea of what could explain this apparently inconsistent results.
Thanks a lot!
Julien
Input file:
run.py (4.0 KB)