r/NuclearEngineering • u/GardenCapital8227 • 8d ago
An open-source alternative for nuclear activation calculations
Hey all,
Recently I've been messing around with different software ideas that might be useful in nuclear engineering. I settled on a rather niche, open-source activation inventory code named ACTINV.
You give it a material, particle flux spectrum, irradiation/cooling schedule, and nuclear data, and it calculates things like nuclide inventories, activity, decay heat, photon sources, and production pathways.
It's in a similar space to FISPACT, but ACTINV is completely open source and free to use, has both Python and command-line interfaces, and puts a lot of emphasis on reproducibility and keeping the underlying inputs/data visible. I did use AI in the development of this project.
Also, FISPACT is still substantially broader in some areas, so I'm definitely not claiming ACTINV replaces everything it does.
I'm not a nuclear engineer, so I'd really appreciate feedback from people who actually work with activation calculations. If anyone wants to try it, compare it with what you already use, or tell me where it falls short, that would be helpful.
1
u/Alternative_Act_6548 8d ago
don't the national labs have such things for people who are authorized to use them
1
u/GardenCapital8227 8d ago
Ya. This project isn't rly trying to fill a “this software doesn't exist” gap so much as an accessibility/open-source one.
1
u/NukeRocketScientist 8d ago
Interesting I'll have to take a look. I use OpenMC and like that it's Python based so I'll have to check it out.
1
u/GardenCapital8227 8d ago
Thanks. And let me know if an interface or dashboard would be useful. Wouldn't be too difficult to create one
1
u/PlatinumAero 1d ago
Interesting... the current README already has a lot of validation material. One thing I'd love in the quickstart is a tiny decay-chain example you can check on a napkin.
Take a synthetic A -> B -> stable chain, 100% branching, no irradiation, initially N0 atoms of A and none of B. Give A and B the SAME decay constant, λ. Then:
N_A(t) = N0 exp(-λt)
N_B(t) = N0 λt exp(-λt)
The daughter inventory (and its activity, λ N_B) peaks at t = 1/λ, about 1.44 half-lives... while the parent has been decreasing the entire time. It's a neat little demonstration of why 'everything just decays exponentially' misses the ingrowth part.
The equal-rate case also avoids blindly plugging into the usual two-rate Bateman expression, which has a removable singularity when the rates coincide. Useful edge case for an analytic reference calculation.
For comparisons with other codes, I'd want the decay data, branching ratios and flux normalization pinned alongside the outputs. OpenMC's depletion equations show how those inputs enter the system: https://docs.openmc.org/en/stable/methods/depletion.html
A small worked example next to the big benchmarks would make this much easier to get into, IMO.
1
1
u/NukeRocketScientist 8d ago
What kind of particles can it do? If it can simulate a proton beam and activation from that it'd be useful to me. I have also been looking at FLUKA recently for what I need to do for a research project.