Delayed neutron fraction by isotope with IFP method
Description
This modification allows the Iterated Fission Probability (IFP) method implemented by @JoffreyDorville to break down the effective delayed neutron fraction $\beta_{eff}$ tally by isotope. This extension of the IFP method enables deeper analyses in reactor physics.
In practice, the IFP tally stores certain ancestor information to compute adjoint-weighted tallies. This adaptation follows the same principle but also records the isotope that generated each delayed neutron. It slightly increases both memory use and computation time.
To use it, you simply need to define a list of nuclides in $\texttt{beta-num-tally.nuclides = [...]}$.
Fixes #3605
Checklist
- [x] I have performed a self-review of my own code
- [x] I have run clang-format (version 15) on any C++ source files (if applicable)
- [x] I have followed the style guidelines for Python source files (if applicable)
- [x] I have made corresponding changes to the documentation (if applicable)
- [x] I have added tests that prove my fix is effective or that my feature works (if applicable)
You should run clang format (version 15) on cpp source files for CI to successfully run.
You should run clang format (version 15) on cpp source files for CI to successfully run.
Thanks @GuySten for your help
I think you accidentally removed src/output.cpp and its header. You should watch closely the "files changed" tab of this PR. A change in 47 files seems too much for a feature of this scope.
I think you accidentally removed src/output.cpp and its header. You should watch closely the "files changed" tab of this PR. A change in 47 files seems too much for a feature of this scope.
You're right. I already restored the output.* files. From the 47 changes, more than 27 are related to tests modifications because we added a new variable to the Particle object. The current version passes all tests in local.
But you also added new files (I think by mistake). Edit: You can find them by the green plus in the files tab of this PR.
Thanks again, @GuySten, for your corrections and comments. This is my first PR to incorporate changes into OpenMC, so I apologize for any errors in my first version.
@paulromano, I am tagging you because you asked to be tagged in PRs that affect performance. I think this PR will affect performance in some way because we increase the size of the SourceSite structure.
I've added python api to improve the accessibility of this feature.
While trying to fix the current failing tests, I found a bug. I will update this PR after #3676 is merged.
Thanks @OlivaresDarian and @GuySten for this new feature! I would also like to take a look at it before we merge.
I think a nice follow up feature will be to sample more frequently delayed neutrons with lower weight. This should help the convergence of the kinetic parameters.
@JoffreyDorville, @OlivaresDarian, what do you think?
My bad, I thought that was a typo. I fixed it in the last commit.