Depletion module of openmc

What is the difference between the built-in depletion module of openmc and general programs such as origen and fispact?

For me one benefit of openmc depletion is that it is readily available.

Here is a post that mentions some openmc and fispact differences.

1 Like

Fundamentally, they both solve the Bateman equations for predicting a future material composition given an initial composition and a flux/irradiation schedule. There are some differences with respect to how the flux / cross sections are generated and used (openmc.deplete is integrated with OpenMC’s transport solver, so the data flow is automated). There are also likely many features in ORIGEN and/or FISPACT that are not present in the depletion module of OpenMC yet. Let us know if there is a particular feature in one of these other codes that you’d really like to see in OpenMC!

1 Like

Hi,I would like to konw whether OpenMC can do the deplete cauclation like continuous refueling and removal?

This sounds like the recent TransferRates capability

Here are some links to the relevant docs

https://docs.openmc.org/en/latest/methods/depletion.html?highlight=transfer#transfer-rates

https://docs.openmc.org/en/latest/pythonapi/generated/openmc.deplete.transfer_rates.TransferRates.html#openmc.deplete.transfer_rates.TransferRates

1 Like

Thank you for tell me this!

But this is new in 0.13.4,I’m still using 0.13.3,and 0.13.4 also not in conda-forge channel.

What should I do to get the new vision?Install OpenMC from source?

To install the latest development version you can take a look at this section of the install guide

https://docs.openmc.org/en/stable/quickinstall.html#installing-from-source-on-ubuntu

The only change needed would be adding a checkout line part of the way through like this

git clone --recurse-submodules https://github.com/openmc-dev/openmc.git
cd openmc
git checkout develop
mkdir build && cd build
cmake ..
make
sudo make install
1 Like

Thank you for your guide,I have successfully installed the new version.
And I have some questions about this.My purpose is remove FP and add fed fuel in different rate,so i make two materials:

fuel = openmc.Material(name='fuel')
fuel.temperature = 900

fuel.set_density('g/cm3',2.712206)
fuel.add_nuclide('Li7',69.9965,'ao')
fuel.add_nuclide('Li6',0.0035,'ao')
fuel.add_nuclide('Be9',18,'ao')
fuel.add_nuclide('U238',7.68e-01,'ao')
fuel.add_nuclide('U235',1.92e-01,'ao')
fuel.add_nuclide('Th232',5.1193e+00,'ao')
fuel.add_nuclide('F19',1.3000e+02,'ao')

fed_fuel = openmc.Material(name='fed_fuel')
fed_fuel.set_density('g/cm3',2)
fuel.add_nuclide('U235',20,'ao')
fuel.add_nuclide('U238',80,'ao')
fuel.add_nuclide('F19',400,'ao')

carbon = openmc.Material(name='carbon')
carbon.temperature = 900
carbon.set_density('g/cm3',1.84)
carbon.add_element('C',1.0,'ao')

the fuel is inital fuel,and fed_fuel is what I want to add into fuel .
After I instantiate TransferRates class,I should use set_transfer_rate method to specify parameter.I think for my situation,the parameter material should be fuel,and parameter destination_material I think shoud be fed_fule .Am I understanding this correctly?
I’m not sure about the mean of parameter components,may be it is element that I want to remove?
It would be great to have an example.
Thank you for your reply!

sorry I’ve not yet had a go with the transfer_rate method, I am sure others on the forum have, is it worth starting a new thread

Alright,Thank you! :grinning:

Hi @jsy
Always good to check the docs, but if I understand correctly what you’re trying to do, after you’ve set up your depletion simulation, you would want to add to the integrator instance something like this:

nuclides_to_transfer = ['U235','U238','F19'] #or whatever you want to transfer
feed_rate = 0.1 #just as an example
integrator.add_transfer_rate('fed_fuel', nuclides_to_trasnfer, feed_rate, destination_material='fuel')
integrator.integrate()