# Depletion changing eigenvalue

**URL:** <https://openmc.discourse.group/t/depletion-changing-eigenvalue/5300>\
**Category:** User Support\
**Created:** [March 6, 2025, 10:23pm UTC](https://openmc.discourse.group/t/depletion-changing-eigenvalue/5300 "2025-03-06T22:23:16Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![mbresnahan7](https://avatars.discourse-cdn.com/v4/letter/m/8baadc/32.png) [@mbresnahan7](https://openmc.discourse.group/u/mbresnahan7)\
**Post date:** [March 6, 2025, 10:23pm UTC](https://openmc.discourse.group/t/depletion-changing-eigenvalue/5300/1 "2025-03-06T22:23:16Z")

</div>

Hey all,  
I have built a simple molten salt model and I am trying to begin modeling depletion. When I run a k-code problem I get the eigenvalue of 1.059, which agrees with my previous MCNP model. When I add the CECM depletion operator I get an eigenvalue of around 0.87. I also notice that when I change the number of cores that I use, the eigenvalue will switch between the subcritical value and the correct value. For example if I switch from 12 to 14 cores the eigenvalue will be correct, but if I repeat the run it will go back to 0.87 until I change the number of cores.

When I comment out the depletion portion of my input the model runs as expected. My input is shown below. I think it way be a geometry problem where openmc isn’t depleting the correct regions.

`import openmc  
import openmc.deplete  
import numpy as np  
openmc.config[“cross\_sections”] = ‘/home/vlujan3/Library/endfb-vii.1-hdf5/cross\_sections.xml’  
chain = ‘/home/vlujan3/Library/chain\_endfb71\_fast.xml’

fuelSalt = openmc.Material()  
fuelSalt.add\_nuclide(‘U235’, 0.3195, ‘ao’)  
fuelSalt.add\_nuclide(‘U238’, 44.6805, ‘ao’)  
fuelSalt.add\_nuclide(‘Pu238’, 0.233925, ‘ao’)  
fuelSalt.add\_nuclide(‘Pu239’, 3.94485, ‘ao’)  
fuelSalt.add\_nuclide(‘Pu240’, 1.840725, ‘ao’)  
fuelSalt.add\_nuclide(‘Pu241’, 0.909075, ‘ao’)  
fuelSalt.add\_nuclide(‘Pu242’, 0.57135, ‘ao’)  
fuelSalt.add\_nuclide(‘Na23’, 47.5, ‘ao’)  
fuelSalt.add\_nuclide(‘Cl37’, 202.83315, ‘ao’)  
fuelSalt.add\_nuclide(‘Cl35’, 2.165825, ‘ao’)  
fuelSalt.set\_density(‘g/cm3’, 3.57083)  
fuelSalt.temperature =1200  
fuelSalt.volume = 1.2e7  
fuelSalt.depletable = True

HastelloyN = openmc.Material()  
HastelloyN.add\_nuclide(‘Ni58’, 71, ‘wo’)  
HastelloyN.add\_nuclide(‘Mo98’, 16, ‘wo’)  
HastelloyN.add\_nuclide(‘Cr52’, 7, ‘wo’)  
HastelloyN.add\_nuclide(‘Fe56’, 4.4, ‘wo’)  
HastelloyN.add\_nuclide(‘Si28’, 0.57, ‘wo’)  
HastelloyN.add\_nuclide(‘Mn55’, 0.2, ‘wo’)  
HastelloyN.add\_nuclide(‘W184’, 0.48, ‘wo’)  
HastelloyN.add\_nuclide(‘Al27’, 0.1, ‘wo’)  
HastelloyN.add\_nuclide(‘Ti48’, 0.1, ‘wo’)  
HastelloyN.add\_nuclide(‘Cu63’, 0.1, ‘wo’)  
HastelloyN.add\_element(‘C’, 0.05, ‘wo’)  
HastelloyN.set\_density(‘g/cm3’, 8.86)  
HastelloyN.temperature =1200  
HastelloyN.volume = 0.570955e6  
HastelloyN.depletable= False

Reflector = openmc.Material()  
Reflector.add\_nuclide(‘Zr90’, 123.48, ‘ao’)  
Reflector.add\_nuclide(‘Zr91’, 26.928, ‘ao’)  
Reflector.add\_nuclide(‘Zr92’, 41.16, ‘ao’)  
Reflector.add\_nuclide(‘Zr94’, 41.712, ‘ao’)  
Reflector.add\_nuclide(‘Si28’, 147.60, ‘ao’)  
Reflector.add\_nuclide(‘Si29’, 7.4753, ‘ao’)  
Reflector.add\_nuclide(‘Si30’, 4.9176, ‘ao’)  
Reflector.add\_nuclide(‘Pb206’, 4.82, ‘ao’)  
Reflector.add\_nuclide(‘Pb207’, 4.42, ‘ao’)  
Reflector.add\_nuclide(‘Pb208’, 10.48, ‘ao’)  
Reflector.add\_nuclide(‘O16’, 20, ‘ao’)  
Reflector.set\_density(‘g/cm3’, 5.81)  
Reflector.temperature =900  
Reflector.volume = 8.88256e6  
Reflector.depletable = False

ss316 = openmc.Material()  
ss316.add\_nuclide(‘Fe56’, 68.5, ‘wo’)  
ss316.add\_nuclide(‘Cr54’, 16.25, ‘wo’)  
ss316.add\_nuclide(‘Si28’, 11.5, ‘wo’)  
ss316.add\_nuclide(‘Mo98’, 2.5, ‘wo’)  
ss316.add\_nuclide(‘Mn55’, 1, ‘wo’)  
ss316.add\_nuclide(‘Si28’, 0.5, ‘wo’)  
ss316.add\_nuclide(‘N14’, 0.05, ‘wo’)  
ss316.add\_element(‘C’, 0.04, ‘wo’)  
ss316.add\_nuclide(‘P31’, 0.023, ‘wo’)  
ss316.add\_nuclide(‘S32’, 0.015, ‘wo’)  
ss316.set\_density(‘g/cm3’, 8.03)  
ss316.temperature =900  
ss316.volume = 0.76143e6  
ss316.depletable = False

innerCoreBoundary = openmc.ZCylinder(r=127.394)  
upperPlate = openmc.ZPlane(235.359)  
lowerPlate = openmc.ZPlane(0.0)  
activeCore = -upperPlate & +lowerPlate & -innerCoreBoundary

upperNplate = openmc.ZPlane(238.359)  
lowerNplate = openmc.ZPlane(-3)  
axialNBoundary =openmc.ZCylinder(r=130.394)  
NRegion = -upperNplate & +lowerNplate & -axialNBoundary & ~activeCore

upperReflector = openmc.ZPlane(278.359)  
lowerReflector = openmc.ZPlane(-43)  
axialReflectorBoundary = openmc.ZCylinder(r=170.394)  
ReflectingRegion = -upperReflector & +lowerReflector & -axialReflectorBoundary & ~NRegion

upperSSplate = openmc.ZPlane(281.359)  
upperSSplate.boundary\_type = ‘vacuum’  
lowerSSplate = openmc.ZPlane(-46)  
lowerSSplate.boundary\_type = ‘vacuum’  
axialSSBoundary = openmc.ZCylinder(r=173.394)  
axialSSBoundary.boundary\_type = ‘vacuum’  
SSRegion = -upperSSplate & +lowerSSplate & -axialSSBoundary & ~ReflectingRegion

fuel = openmc.Cell(fill=fuelSalt, region=activeCore)  
fuel.volume = 1.2e7  
casing = openmc.Cell(fill=HastelloyN, region = NRegion)  
reflector = openmc.Cell(fill=Reflector, region = ReflectingRegion)  
stainlessSteel = openmc.Cell(fill=ss316, region = SSRegion)  
U = openmc.Universe(cells =[fuel, casing, reflector, stainlessSteel])

materials = openmc.Materials([fuelSalt, HastelloyN, Reflector, ss316])  
model = openmc.model.Model()  
model.material = materials  
model.geometry = openmc.Geometry(U)  
model.settings.batches = 450  
model.settings.inactive = 50  
model.settings.particles =10000  
r = 127.394  
h = 235.359

SourceR = openmc.stats.Uniform(0,r)  
SourcePhi = openmc.stats.Uniform(0,2\*np.pi)  
SourceH = openmc.stats.Uniform(0,h)  
source = openmc.IndependentSource(  
space=openmc.stats.CylindricalIndependent(SourceR, SourcePhi, SourceH)  
)

model.settings.source = source  
model.settings.ptables=True

opp = openmc.deplete.CoupledOperator(model, chain)  
time = [0.0417, 1, 5, 10, 21, 35]  
power = 4200e6  
cecm = openmc.deplete.PredictorIntegrator(opp, time, power)  
cecm.integrate()

model.export\_to\_xml()  
model.run(threads=16)`

If any of you have any suggestions it would be much appreciated, thanks.

- Mickey

---

<div class="post-metadata">

**Author:** ![wahidluthfi](https://yyz2.discourse-cdn.com/free1/user_avatar/openmc.discourse.group/wahidluthfi/32/3375_2.png) [@wahidluthfi](https://openmc.discourse.group/u/wahidluthfi)\
**Post date:** [March 7, 2025, 9:10am UTC](https://openmc.discourse.group/t/depletion-changing-eigenvalue/5300/2 "2025-03-07T09:10:15Z")

</div>

Hi Mickey, welcome to the openmc forum  
I am checking your model; some cell overlaps were detected when checking the geometry. even my openmc itself can be started.

 ![image](https://global.discourse-cdn.com/free1/uploads/openmc/original/2X/0/050a37808ce1f5e779dda0f6dd5500a3c4f9d318.png)

after doing some corrections with the regions, the calculated keff is 1.05916, and the BOC keff reported from the depletion calculation was 1.05824 which I think is close enough.

here is the notebook being used for your case, I am lowering the number of particles being used and only using 1 burnup step since I only want to make sure that the model can be used.  
[depletion\_changing\_eigenvalue.ipynb](https://openmc.discourse.group/uploads/short-url/jrGyUqPEkxomu0L3Lzx4DcNZMIt.ipynb) (162.5 KB)

---

<div class="post-metadata">

**Author:** ![mbresnahan7](https://avatars.discourse-cdn.com/v4/letter/m/8baadc/32.png) [@mbresnahan7](https://openmc.discourse.group/u/mbresnahan7)\
**Post date:** [March 7, 2025, 7:46pm UTC](https://openmc.discourse.group/t/depletion-changing-eigenvalue/5300/3 "2025-03-07T19:46:55Z")

</div>

Thanks Wahid, it now functions as it should. Would you have any idea as to why the eigenvalue would change with the number of threads?

---

<div class="post-metadata">

**Author:** ![wahidluthfi](https://yyz2.discourse-cdn.com/free1/user_avatar/openmc.discourse.group/wahidluthfi/32/3375_2.png) [@wahidluthfi](https://openmc.discourse.group/u/wahidluthfi)\
**Post date:** [March 7, 2025, 9:36pm UTC](https://openmc.discourse.group/t/depletion-changing-eigenvalue/5300/4 "2025-03-07T21:36:09Z")

</div>

I think the problem is in the geometry itself. Even if you are using the same amount of core, if you change the number of particles, the keff will also change a lot. That’s why we always do the geometry check/debug just to make sure that our model is right.
