Reaction Rate Discrepancy with Serpent

Dear community,

I am trying to normalize my reaction and absorption rates to 367MW, as described in the user guide and Jupyter notebook. I have done this processing in serpent using “set power”, but having followed the guidelines for OpenMC my thermal reaction rates are an order of magnitude larger than expected. The output is a heating rate of ~1.26e-11J/source, achieving a source rate of 2.906e+19.

Below is a snippet of my OpenMC code:

source = openmc.IndependentSource()

source.space = openmc.stats.Box(

\[-RH_pressureVesselRadius, -RH_pressureVesselRadius, RH_pressureVesselBottomBoundary\],

\[ RH_pressureVesselRadius,  RH_pressureVesselRadius, 0.0\]

)

# Correct way to restrict to fissionable sites

source.constraints = {

“fissionable”: True

}

settings.source = source

settings.particles = 100000

settings.generations_per_batch = 5

settings.batches = 100

settings.inactive = 20

settings.export_to_xml(“/rds/general/user/jm2022/home/OpenMC_Files/xml_files/”)

tallies = openmc.Tallies()

FE_fuelThermalTallyi = []

FE_fuelFastTallyi = []

for i in range(0, 60):

FE_fuelThermalTallyi.append(openmc.Tally(tally_id=(2*i)+1))

FE_fuelThermalTallyi[i].filters = [openmc.EnergyFilter([0,0.625]), openmc.UniverseFilter(301+i)]

FE_fuelThermalTallyi[i].scores = [‘absorption’, ‘fission’]

tallies.append(FE_fuelThermalTallyi[i])

FE_fuelFastTallyi.append(openmc.Tally(tally_id=(2*i)+2))

FE_fuelFastTallyi[i].filters = [openmc.EnergyFilter([0.625,19.6403e6]), openmc.UniverseFilter(301+i)]

FE_fuelFastTallyi[i].scores = [‘absorption’, ‘fission’]

tallies.append(FE_fuelFastTallyi[i])

heatingTally = openmc.Tally(tally_id=999)

heatingTally.scores = [‘heating’]

tallies.append(heatingTally)

as well as the post processing:

file_name = ‘statepoint.100.h5’

sp = openmc.StatePoint(file_name)

thermal_abs = []

for i in range(120):

tally = sp.get_tally(id=i+1)

if (i + 1) % 2 == 0:

    fast_abs.append(tally.mean.ravel()\[0\])

    fast_fiss.append(tally.mean.ravel()\[1\])

else:

thermal_abs.append(tally.mean.ravel()[0])

    thermal_fiss.append(tally.mean.ravel()\[1\])

thermal_absorption_avg = [sum(thermal_abs[i*6:(i+1)*6])/6 for i in range(10)]

print(“Thermal absorption average:”, str(thermal_absorption_avg))

reactor_power = 367.0e6

j_per_eV = 1.60218e-19

heating_tally = sp.get_tally(id=999)

print(“Heating tally mean [eV/particle]:”, str(heating_tally.mean.ravel()[0]))

heating_rate = heating_tally.mean.ravel()[0] * j_per_eV

source_rate = reactor_power / heating_rate

print(“Source rate [particles/s]:” + str(source_rate))

print(“Heating rate [J/particle]:” + str(heating_rate))

thermal_absorption_norm = [value * source_rate for value in thermal_absorption_avg]

Any advice/guidance on the topic would be greatly appreciated, as I have been struggling for a while.

Best regards,

Joe