Cross section of control rod bigger than 10

I’m new in OpenMC. I would like to calculate the cross section of control rod cell in aqueous homogeneous reactor, so I created a simplified model as follow: liquid fuel envelops a quarter of the control rod cylinder. But I don’t know why the results of control rod cell’s total cross section and absorption cross section in group 2 are bigger than 10. Generally, they should be on the order of 0.1 to 1, isn’t it? I don’t know what is the problem exactly. If anybody could help? Many thanks for your help in advance.

Here is my code:

import numpy as np
import openmc
import openmc.mgxs as mgxs
import openmc.data

# create a model object to tie together geometry, materials, settings, and tallies
model = openmc.Model()

# Liquid fuel
fuel = openmc.Material(name='Fuel')
fuel.set_density('g/cm3', 1.0719)
fuel.add_nuclide('U235', 0.04013)
fuel.add_nuclide('U238', 0.00446)
fuel.add_nuclide('N14', 0.10173)
fuel.add_nuclide('O16', 0.84571)
fuel.add_nuclide('H1', 0.10173)

# Control rod
cr = openmc.Material(name='Control rod')
cr.set_density('g/cm3', 1.85)
cr.add_nuclide('B10', 0.1582)
cr.add_nuclide('B11', 0.6291)
cr.add_element('C', 0.2052)
cr.add_nuclide('Fe56', 0.0073)
cr.add_nuclide('Ca40', 0.0002)

# Instantiate a Materials collection
model.materials = openmc.Materials([fuel, cr])
model.materials.export_to_xml()

# Instantiate boundary Planes
max_x = openmc.XPlane(boundary_type='reflective', x0=0.0)
min_y = openmc.YPlane(boundary_type='reflective', y0=0.0)

# Create cylinders for the fuel and clad
cr_outer_radius = openmc.ZCylinder(x0=0.0, y0=0.0, r=4.76)

# Create box to surround the geometry
box = openmc.model.rectangular_prism(10, 10, boundary_type='reflective')

# Create a Universe to encapsulate a fuel pin
pin_cell_universe = openmc.Universe(name='Fuel Pin')

# Create a fuel Cell
fuel_cell = openmc.Cell(name='Fuel')
fuel_cell.fill = fuel
fuel_cell.region = box & -max_x & +min_y & +cr_outer_radius
pin_cell_universe.add_cell(fuel_cell)

# Create a Control rod Cell
cr_cell = openmc.Cell(name='Control rod')
cr_cell.fill = cr
cr_cell.region = -cr_outer_radius & -max_x & +min_y
pin_cell_universe.add_cell(cr_cell)

# Create Geometry and set root Universe
model.geometry = openmc.Geometry(pin_cell_universe)

# OpenMC simulation parameters
batches = 50
inactive = 10
particles = 10000

# Instantiate a Settings object
settings = openmc.Settings()
settings.batches = batches
settings.inactive = inactive
settings.particles = particles
settings.output = {'tallies': True}

# Create an initial uniform spatial source distribution over fissionable zones
bounds = [-5, -5, -5, 5, 5, 5]
uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)
settings.source = openmc.Source(space=uniform_dist)

# Activate tally precision triggers
settings.trigger_active = True
settings.trigger_max_batches = settings.batches * 4

model.settings = settings


# Instantiate a 2-group EnergyGroups object
groups = mgxs.EnergyGroups()
groups.group_edges = np.array([0., 0.625, 20.0e6])
               
# Instantiate a few different sections of cr cell
total_crcell = mgxs.TotalXS(domain=cr_cell, groups=groups)
absorption_crcell = mgxs.AbsorptionXS(domain=cr_cell, groups=groups)
scattering_crcell = mgxs.ScatterXS(domain=cr_cell, groups=groups)

tallies_file = openmc.Tallies()

total_crcell.tallies
absorption_crcell.tallies
scattering_crcell.tallies

tallies_file += total_crcell.tallies.values()
tallies_file += absorption_crcell.tallies.values()
tallies_file += scattering_crcell.tallies.values()

model.tallies = tallies_file

# Run OpenMC
statepoint_filename = model.run()

# Load the last statepoint file
sp = openmc.StatePoint(statepoint_filename)

# Load the tallies from the statepoint into each MGXS object
total_crcell.load_from_statepoint(sp)
absorption_crcell.load_from_statepoint(sp)
scattering_crcell.load_from_statepoint(sp)

# Close the statepoint file now that we're done getting info
sp.close()


# For check
total_crcell.print_xs()
absorption_crcell.print_xs()
scattering_crcell.print_xs()