Difference between OpenMC and Serpent keff results

Hello,
My thesis supervisor and I were trying to compare results between OpenMC and Serpent. I created LFR core model using OpenMC and he created the same core in Serpent (based on this document: https://art.inl.gov/ART%20Document%20Library/Advanced%20Demonstration%20and%20Test%20Reactor%20Options%20Study/Attachment_4_Westinghouse_LFR_DR.pdf), however there is a mismatch between keff results:
OpenMC → keff = 1.11666 +/- 0.00009
Serpent → keff = 1.14695 +/- 0.00015

I checked both geometries and materials used several times and everything between these two models seems the same. For both simulations we used the same settings (particles/active/inactive - 75000/1000/100) and the same nuclear data library (ENDF/B-VIII.0).

Is such a big difference between OpenMC and Serpent simulation possible (assuming that the models are identical) or there is just some kind of mistake that I can’t find? I’m still relatively new to OpenMC (and overall to monte carlo codes) so there is a possibility that something in my model could be wrong. Below I attach files for both OpenMC and Serpent models (with .py file extension because of .inp being an unauthorized one).

I’d be grateful if somebody could point me in the right direction.

Thanks,
Rafal

DLFR_Serpent.py (15.2 KB)
DLFR_OpenMC.ipynb (419.2 KB)
geometry.xml (20.2 KB)
materials.xml (4.8 KB)
settings.xml (326 Bytes)

The short answer (to the first question) is no, if you are using the same options, the codes should return answers very close to one another. You can take a look at this paper where we compared OpenMC and Serpent on PWR and SFR problems and the agreement was within 10s of pcm. The most likely explanation is that your models are not consistent with one another.

Hi Rafal.

You should first check that you get the same result for the cell calculations, before moving on to a full reactor model.

In particular: are you sure you are using the same temperatures in both simulations? I assume for the extension that you are using 900K for the fuel in Serpent (.09c), and 1200 K in OpenMC. Why?

Hello,
I would recommend visualizing tracks with maybe a couple thousand particles and iteratively changing the densities (in an extreme fashion) on certain materials to check behavior is as expected.

openmc.run(tracks=True)
tracks = openmc.Tracks(‘tracks.h5’)
tracks.write_to_vtk(‘tracks.h5’)

You should then be able to open a tracks file and voxel plot in Paraview or similar. this was how I discovered a doubly defined region in OpenMC and was able to get agreement within 10s of pcm with my SCALE model.