Depletion problem with multiplying media in external sources

Hi All

I’ve been experimenting with the depletion module and doing some benchmarking against FISPACT. I’ve been running into large discrepancies when doing activation calculations of multiplying media in external sources. The example I’ll use for this post is activating a cylindrical fuel pellet in a thermal neutron beam line experiment. I’ve exaggerated the parameters in the attached sample code to make the results more obvious.

When I run this scenario in FISPACT with a U235 concentration of 3.05869e+23 atoms I am left with 1.68570e+23 atoms after 100days (which agrees with my hand calcs). Using OpenMC values generated by the get_microxs_and_flux function, activation barely occurs with a concentration of 3.02213e+23 atoms after 100days. If I replace the micro_xs values with the values in the FISPACT collapse file, I get the exact same answer as the original FISAPCT simulation.

It appears that in openmc the production of fission neutrons reduces the micro_xs by a factor of ~50 for fission, but does not correspondingly increase the flux value. Fission neutrons seem to almost be treated as a redistribution of neutron energy, instead of additional neutrons creating additional reactions on top of the fixed source. I am very unsure how I would include a correction factor for this – any help would be appreciated.

Kind regards,
Matt

P.S.
As an aside, the documentation is not very clear that the source_rate needs to be entered as n/s and not n/cm2s – I had to do a deep dive to figure it out (and am still not 100% sure I have the conversion correct)

U235_Beamline_activation.py (3.3 KB)

@nuclearbae and myself have a slightly different approach using MicroXS.from_multigroup_flux and also get different results to FISPACT. I think @nuclearbae also did a similar collapse replacement to help narrow down the difference.

Sorry I’ve not got a solution for you but confirm similar differences with FISPACT results

Link to issue
Link to openmc_activator package

Hi @Shimwell

Thanks for your response.

I had a look at @nuclearbae’s issue and it’s quite different to what I am suggesting. The root of my problem I think is akin to the difference between scattering and nu-scattering in the MGXS module.

Let’s take a scenario even simpler than fuel on a beamline, and probably much more relevant for the OpenMC community – the (n,2n) reaction in W182 due to a fixed fusion neutron source.

Exposed to a 14.1MeV source, almost all the activation is going to occur from the (n,2n) reaction which has an xsec of ~2.13b. This removes a W182 atom and produces two lower energy neutrons which have significantly lower (n,2n) cross sections, but can still go on to activate additional atoms. OpenMC tracks these daughter neutrons, treating the difference in energy and hence reaction rate as transport self-shielding. It does not consider that these neutrons and reaction rates are additional reactions on top of the initial activation of an atom.

You can see this in OpenMC by changing the size of the irradiated sample (see attached code). For a tiny sample, (much smaller than the mean free path) only reactions from the initial 14.1MeV neutron’s are recorded, and results match with FISPACT. However, if you then increase the size of the box, the daughter neutrons from the (n,2n) reaction are recorded, reducing the xsec, and decreasing the reaction rate. As a result, proportionally less activation occurs in the larger box, even though more activation should occur due to the presence of the additional daughter neutrons interacting with the material.

When normalising the source rate in a fixed source simulation to what the real flux is, you normalise the source, not the number of neutrons in the material. Furthermore, correcting the number of neutrons in the material won’t solve the problem as the reaction rate is nonlinear with neutron density.

I think a correction needs to be applied to the xsecs, namely that in the get_microxs_and_flux function, reactions from daughter neutrons need to be added to reactions from source neutrons, not averaged – similar to the making the nu parameter true in the MGXS class .

I personally think this is a pretty important correction that needs implementing (although I have no idea how you’d go about doing it), otherwise all activation calculations in a fixed source fusion reactor are going to be largely wrong.

Let me know your thoughts

Matt

W182.py (3.2 KB)

@MIB101 are you comparing the thin and thick target activation done with OpenMC to the same FISPACT calculation? If so, you should tally the volume averaged neutron flux spectrum in both targets and use those spectra for two independent FISPACT calculations.

Hi @eepeterson

When I do the volume averaged spectrum in FISPACT I get the same cross sections in the collapse file resulting in agreement between OpenMC and FISPACT. Can confirm cross section averaging is working correctly.

However what I’m really trying to get at here, is that I think this averaging process employed by both codes might produce a physically incorrect result due to a more fundamental issue in the physics/maths. In order for the lower energy neutrons to be created by the (n,2n) reaction (or similarly higher energy neutrons from a fission reaction), an atom must first have been transmutated, depleting it from the system. I cannot see the loss of this atom captured in either of the codes.

Please see the attached pdf for my more in-depth description of what I think is going on.

Depletion_Discussion.pdf (132.5 KB)

Let me know what you think and if I’ve stumbled onto something, or if I have fundamentally misunderstanding somewhere.

Happy to have a more in-depth chat.

Kind regards
Matt

the openmc model uses a monodirectional beam, how is that in fispact?
Without specific knowledge I would guess fispact presumes isotropic like Scale Origin etc