Hi there,
I needed to compare my reactor’s neutron spectrum with a conventional pwr pincell so I used the pincell program in examples present as the legacy codes when installing openmc. I required values for the scoping analysis and the neutron ratios in thermal, epithermal and fast regimes showed me a fast spectrum. Is it that I am having a bug or am I making any mistakes in doing so.
Following is the code
Material specifications:
(I haven’t added any boron reactivity, since I need the comparison without it, and the material specs are the same as I need for my case)
fuel = openmc.Material(name='Fuel')
fuel.add_elements_from_formula('UO2',enrichment=5,percent_type='wo')
fuel.set_density('g/cm3',10.257)
fuel.temperature=600
helium = openmc.Material(name='Helium for gap')
helium.set_density('g/cm3', 0.001598)
helium.add_element('He', 2.4044e-4)
helium.temperature=600
clad = openmc.Material(name='Clad')
clad.set_density('sum')
clad.add_nuclide('Cr50', 3.30121e-6)
clad.add_nuclide('Cr52', 6.36606e-5)
clad.add_nuclide('Cr53', 7.2186e-6)
clad.add_nuclide('Cr54', 1.79686e-6)
clad.add_nuclide('Fe54', 8.68307e-6)
clad.add_nuclide('Fe56', 1.36306e-4)
clad.add_nuclide('Fe57', 3.14789e-6)
clad.add_nuclide('Fe58', 4.18926e-7)
clad.add_nuclide('Zr90', 2.18865e-2)
clad.add_nuclide('Zr91', 4.77292e-3)
clad.add_nuclide('Zr92', 7.29551e-3)
clad.add_nuclide('Zr94', 7.39335e-3)
clad.add_nuclide('Zr96', 1.1911e-3)
clad.add_nuclide('Sn112', 4.68066e-6)
clad.add_nuclide('Sn114', 3.18478e-6)
clad.add_nuclide('Sn115', 1.64064e-6)
clad.add_nuclide('Sn116', 7.01616e-5)
clad.add_nuclide('Sn117', 3.70592e-5)
clad.add_nuclide('Sn118', 1.16872e-4)
clad.add_nuclide('Sn119', 4.14504e-5)
clad.add_nuclide('Sn120', 1.57212e-4)
clad.add_nuclide('Sn122', 2.23417e-5)
clad.add_nuclide('Sn124', 2.79392e-5)
clad.add_nuclide('Hf174', 3.54138e-9)
clad.add_nuclide('Hf176', 1.16423e-7)
clad.add_nuclide('Hf177', 4.11686e-7)
clad.add_nuclide('Hf178', 6.03806e-7)
clad.add_nuclide('Hf179', 3.0146e-7)
clad.add_nuclide('Hf180', 7.76449e-7)
clad.temperature = 600
coolant = openmc.Material(name='Coolant')
coolant.set_density('g/cm3', openmc.data.water_density(temperature=600, pressure=15.5132))
coolant.add_element('H', 2.0)
coolant.add_element('O', 1.0)
coolant.temperature = 600
coolant.add_s_alpha_beta('c_H_in_H2O')
# Collect the materials together and export to XML
materials = openmc.Materials([fuel, helium, clad, coolant])
materials.export_to_xml()
Geometry specifications:
# Create cylindrical surfaces
fuel_or = openmc.ZCylinder(r=0.39218, name='Fuel OR')
clad_ir = openmc.ZCylinder(r=0.40005, name='Clad IR')
clad_or = openmc.ZCylinder(r=0.45720, name='Clad OR')
# Create a region represented as the inside of a rectangular prism
pitch = 1.25984
box = openmc.rectangular_prism(pitch, pitch, boundary_type='reflective')
# Create cells, mapping materials to regions
fuel = openmc.Cell(fill=fuel, region=-fuel_or)
gap = openmc.Cell(fill=helium, region=+fuel_or & -clad_ir)
clad = openmc.Cell(fill=clad, region=+clad_ir & -clad_or)
water = openmc.Cell(fill=coolant, region=+clad_or & box)
# Create a geometry and export to XML
geometry = openmc.Geometry([fuel, gap, clad, water])
geometry.export_to_xml()
Settings:
settings = openmc.Settings()
settings.run_mode= "eigenvalue"
settings.batches = 120
settings.inactive = 10
settings.particles = 5000
settings.export_to_xml()
And the tallies to get the flux values:
energies = [0.0, 0.625, 5.531e3, 20e6]
energy_filter = openmc.EnergyFilter(energies)
spectrum_tally = openmc.Tally(name="Flux spectrum")
spectrum_tally.filters = [energy_filter]
spectrum_tally.scores = ['flux']
mesh = openmc.RegularMesh()
mesh.dimension = (1, 1)
mesh.lower_left = (-pitch/2.0, -pitch/2.0)
mesh.upper_right = (pitch/2.0, pitch/2.0)
# Create a mesh filter that can be used in a tally
mesh_filter = openmc.MeshFilter(mesh)
mesh_tally = openmc.Tally(name="Mesh tally")
mesh_tally.filters = [mesh_filter]
mesh_tally.scores = ['flux', 'fission', 'nu-fission']
tallies = openmc.Tallies([spectrum_tally, mesh_tally])
tallies.export_to_xml()
And this is what it plots:
And these are the respective results I am getting (to normalize the flux I have used the power specifications from beavrs for a 3411MWth reactor):
I would really appreciate if someone might point out where I am doing what wrong, because this gives me a hard spectrum for a pwr pincell and the fractions are also not satisfactory.
Regards.