Addition of a collision tracking feature#3417
Addition of a collision tracking feature#3417paulromano merged 78 commits intoopenmc-dev:developfrom
Conversation
…entation might need a last iteration
…entation might need a last iteration 2
|
Is this related to this paper:
|
|
@MicahGale - yes, this is the feature from that paper. |
|
Thanks for submitting this @saliba170499! Generally the PR is looking good -- code looking clean and should make for a useful feature!! A few high level topics before I go through and make finer-grained comments:
Not a big deal, but for future PRs, it is preferable to restrict auto formatter changes to only lines of code that you worked on. C++ files are usually safe to do globally as the Anyway, thanks again for putting this in! I'll make a finer-grained pass once the tests are passing. |
|
Thank you very much for your review, @jtramm. This all makes sense. I will address your points and provide a short outline of what the tests are probing for. |
… into collision_track
… into collision_track
|
@jtramm ,I've been thinking about the testing strategy, and I agree the current structure could be clearer. I'm thinking of re-designing the tests like this: Tests directly tied to user input parameters:
I agree that just looking at k-eff mean and standard deviation in results_true.dat doesn't strongly validate this particular feature. However, the main correctness check will always be comparing generated collision-track HDF5 files (collision_track.h5) against reference outputs (collision_track_true.h5). Those comparisons would be hopefully enough to catch any bugs introduced later. Additional tests (already included in the current PR):
Let me know if this makes sense or if you have any other suggestions! Upon your confirmation on the regression test strategy, I will make the changes and add them to this PR asap. |
… into collision_track
…nmc_retina into collision_track
paulromano
left a comment
There was a problem hiding this comment.
@saliba170499 Thanks a lot for this PR! It's already in pretty good shape so I don't see any major blockers to getting it merged. I do have some comments below on the design that I would like to see incorporated:
paulromano
left a comment
There was a problem hiding this comment.
@saliba170499 I've gone through this PR and did a lot of refactoring, fixed a few bugs, and added some missing documentation. Can you take a look at it and let me know if my changes look good to you? Hopefully I didn't mess anything up 😄
|
@paulromano , thanks for the updates! I reviewed the changes and everything looks good on my side. 👍 |
paulromano
left a comment
There was a problem hiding this comment.
Good to go. Thanks for all your work on this @saliba170499!
|
Very cool PR! I'm a bit out of the loop, what kinds of applications would this collision tracking data be used for? |
Thanks! it is utilized mainly for detector response and neutron noise simulation. check out these recent conference publication we wrote on the applications on this feature: https://doi.org/10.1051/epjconf/202533804001 and https://doi.org/10.13182/xyz-47184 |
Greetings,
I added a collision tracking feature. the user can select parameters to select/filter for specific collision types. The information is saved in a collision_track.h5 (or .mcpl) file. The data can then be extracted via the python api.
The formatting of the C++ code was done using clang-format15. Python follows the PEP8 format. Documentation has been added. Unit and regression tests were added.
Looking forward to an eventual merging in the dev branch!
Thank you very much for your time for reviewing and your support,
Kind regards,
Michel Saliba
PhD at LRS - EPFL