Photon flux discrepancies with EGSnrc, MCNP, and Serpent

Hello everyone,

We are comparing codes through calculating photon flux in NIST’s ordinary concrete and air. The model is quite simple, we have a 5 rectangular layers of concrete sandwiched between two air regions and we are assessing the volume averaged flux in the concrete layers as well as in the air layer right behind the concrete (from the direction of the source). The source generates photons in an rectangular area, shot directly towards the concrete layers.

The source photon energies are 0.6616 MeV, 1.1732 MeV, 1.3325 MeV with relative intensities of 0.8605, 0.0697, 0.0698.

We are seeing extremely good agreement between EGSnrc and MCNP (both code also simulate electrons, which are not counted in the flux) and good agreement between EGSnrc, MCNP and Serpent, but generally worse agreement between OpenMC and the other codes. OpenMC seems to underestimate flux for lower energies and overestimate the flux for higher energies. I have added a plot of the results for the most center layer of the concrete. Y-axis has volume average flux and X-axis particle energy in MeV.

Is this level of disagreement in the flux to be expected or does it indicate that something is off? The relative error for all codes are in the order of 0.0001 to 0.001.

My Python code can be found here: OpenMC_photon_flux_comparison -

Also a picture of the geometry using EGSnrc for easier visualization (couldn’t add it to the original post due to attachment limit). Gray is air, blue is concrete and yellow lines are photon tracks.


can you compare with PHITS?

In some past benchmarking, I have noticed discrepancies between MCNP, OpenMC and PHITS.
With the last two better agreeing with each other than with MCNP.

My benchmark is photons generated as secondaries from neutron capture.


Thank you yrrpy for your insight!

Sadly we do not have access to PHITS, but we could run the same model in SCALE (Monaco, MAVRIC). SCALE results seem to agree quite well with MCNP and the other codes.

Image with the added Monaco and MAVRIC results.

If we compare the total flux over all energies, the results seem to match up much better. Whether this simply indicates the difference in models at different energies is still uncertain though.

Hi Hando,

Could you provide your MCNP inputs?
I have MCNP and PHITS; I can very easily convert a MCNP input to PHITS (they share CSG geometry engines).


I’ll second @yrrepy’s request — if you can share the MCNP model, that would allow one of us to try to reproduce these results (and dig further into why there is a difference).

Thank you for the replies!

I will try to get the MCNP code from my colleague, who was responsible for the MCNP simulations, so it would be possible to reproduce these results.


Eager and curious to get these inputs and investigate.
I have some bandwidth for this, this week.


Sorry for the delay, I got the MCNP code from my colleague.
I added the inputs to this pastebin: MCNP inputs -

Looking forward to seeing the PHITS results!

Hi Hando,

there are too many differences between the OpenMC input and MCNP input to be able to compare them.

The concrete material description substantially differs between the two.
OpenMC: 52.9% Oxygen, Silicon 33.7%, Iron 1.4%
MCNP : 57.5% Oxygen, Silicon 30.5%, Iron 0.6%

In MCNP, there are air gaps between the concrete slabs.
In OpenMC there are not.


Hi Perry,

Thank you for your time! I will let my colleague know about the air gaps in the geometry, but in regards to the material composition, it is my error! It seems that the concrete composition labeled as NIST concrete in MCNP, EGS etc. is not quite the same as the concrete described in the NIST’s ESTAR database itself. I corrected the chemical composition for OpenMC and now we have very good agreement between OpenMC and the other codes.

Again, thank you for your time and insight!

All the best,