-
Notifications
You must be signed in to change notification settings - Fork 548
Multi-group capability for kinetics parameter calculations with Iterated Fission Probability #3425
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@realmisch Thanks a lot for this PR. I like the idea of extending the IFP tallies to be able to break things down by delayed group but I think the implementation still needs some work (see comments below). It might be easier if we break this PR into two pieces: one that adds support for using DelayedGroupFilter and another that adds automation in the Model class.
openmc/model/model.py
Outdated
if self.settings._ifp_n_generation is not None: | ||
self._init_ifp() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not really a fan of this approach. To have tallies automatically created based on a setting seems a little too "behind the scenes" for me. If there is some automation around this, I would prefer that it be explicit, perhaps an add_kinetics_parameter_tallies
method or something like that.
src/tallies/tally_scoring.cpp
Outdated
if (tally.delayedgroup_filter_ != C_NONE) { | ||
filter_index = delayed_groups[0] - 1; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This violates the way that OpenMC's filter system works in general. Filter objects should be responsible for assigning their indices. By overriding the value of filter_index
here, it means that this score will not work with any other filters.
commit 07785d3 Merge: 2f6e15e 23eab2c Author: Alex Nellis <[email protected]> Date: Sat Jun 14 15:10:33 2025 -0400 Merge branch 'openmc-dev:develop' into develop commit 2f6e15e Author: realmisch <[email protected]> Date: Sat Jun 14 15:07:16 2025 -0400 Restructuring and Tally Fixes Moved initialization of IFP tallies to the add_ifp_kinetics_tallies method in the Model class Fixed multi-precursor tallying of beta_numerator to work with the delayed group tallying system. commit 0ebed1d Merge: 78d7a60 b11eb02 Author: Alex Nellis <[email protected]> Date: Fri Jun 13 17:41:23 2025 -0400 Merge branch 'openmc-dev:develop' into develop
@paulromano thank you for reviewing the PR. I've made adjustments to how the multi-precursor tallying works and it should be more inline with delayed group tallying in OpenMC. I've also moved the IFP tally creation in the |
Description
Adaptation of existing kinetics parameter calculations using Iterated Fission Probability (IFP) to provide multi-group effective delayed neutron fractions. This adaptation of the current IFP implementation added in 47ca291 will allow OpenMC to generate all parameters necessary for full 6-group point kinetics modelling.
Additional convenience functions will be added to build on top of #3133 to streamline enabling full kinetics parameter calculations and provision. Ideally, the
openmc.model.Model
class will be modified to automatically initialize all the necessary tallies when the appropriate IFP settings are created in theopenmc.Settings
. Adjustments toopenmc.Statepoint
will handle the calculation of the parameters from the existing tallies and provide the parameters.Development is being done with support from @sallustius and @JoffreyDorville.
Checklist