Skip to content

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

Draft
wants to merge 4 commits into
base: develop
Choose a base branch
from

Conversation

realmisch
Copy link

@realmisch realmisch commented Jun 3, 2025

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 the openmc.Settings. Adjustments to openmc.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

  • I have performed a self-review of my own code
  • I have run clang-format (version 15) on any C++ source files (if applicable)
  • I have followed the style guidelines for Python source files (if applicable)
  • I have made corresponding changes to the documentation (if applicable)
  • I have added tests that prove my fix is effective or that my feature works (if applicable)

@realmisch realmisch closed this Jun 3, 2025
@realmisch realmisch reopened this Jun 3, 2025
@realmisch realmisch changed the title Multi-Precursor Group IFP Multi-group capability for kinetics parameter calculations with Iterated Fission Probability Jun 3, 2025
@realmisch realmisch marked this pull request as draft June 3, 2025 16:51
Copy link
Contributor

@paulromano paulromano left a 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.

Comment on lines 84 to 85
if self.settings._ifp_n_generation is not None:
self._init_ifp()
Copy link
Contributor

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.

Comment on lines 916 to 918
if (tally.delayedgroup_filter_ != C_NONE) {
filter_index = delayed_groups[0] - 1;
}
Copy link
Contributor

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
@realmisch
Copy link
Author

@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 Model class to be a separate method the user will need to call and specify the number of delayed groups.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants