Uh oh!
There was an error while loading. Please reload this page.
Add chain parameter to Material.get_activity for half-life data - #3957
Conversation
When a depletion chain is provided, half-life values from the chain are preferred over the default ENDF/B-VIII.0 values. This allows users to compute activity using chain-specific nuclear data. For nuclides not found in the chain, the default values are used as a fallback. The same parameter is also added to Results.get_activity. Closesopenmc-dev#3529
paulromano
left a comment
There was a problem hiding this comment.
Thanks for the PR @EdenRochmanSharabi! I ended up doing a bit of refactoring here, namely extending half_life and decay_constant to take the chain_file arguments to make things more explicitly. I've also introduced the following convention:
chain_file=Falsemeans "use ENDF data"chain_file=Nonemeans "use the default inopenmc.config['chain_file']chain_file=xmeans use the chain from path or Chain objectx
For half_life and decay_constant, the default is chain_file=False to preserve the existing behavior. For Material and Results, the get_activity methods default to chain_file=None to use whatever chain file is configured.
@shimwell I'd appreciate a second opinion on my design here. Does it seem reasonable to you?
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
shimwell
commented
Jul 10, 2026
this looks fine to me, optionally we could add some type hints |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
…mc-dev#3957) Co-authored-by: Paul Romano <paul.k.romano@gmail.com>
Summary
chainparameter toMaterial.get_activity()andResults.get_activity()that accepts a depletion chain (object or path to XML)openmc.data.decay_constant()Test plan
get_activity()withoutchainparameter produces identical results to current behaviorget_activity(chain=chain)uses chain half-life valuesResults.get_activity(chain=...)passes the parameter through correctlyCloses#3529