-
Notifications
You must be signed in to change notification settings - Fork 13
Add neutron validation runs #599
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: main
Are you sure you want to change the base?
Conversation
|
Is the surface containment test still flaky? And is it expected that it fails for both versions simultaneously? |
yes, and yes... (today is your lucky day) |
Since #532 we have now a dedicated 32-core runner that we will use to run the (more CPU intensive) validation suite. So we can do more than what we could realistically do just with the CI (still, we should really try to limit the computing time of each test to the minimum). |
|
I like these plots. I think we should make a list of the key materials and neutron energy of interest for us and generate these plots for all of them. @MoritzNeuberger @EricMEsch
Yeah it would be nice to have but it would be also quite some work. Though if there are plots of the expected/theoretical distributions it could in principle be rather simple to digitize them and plot them? But I agree that the plots you made are already quite useful to spot differences between G4 versions. |
So i made the geometry with that in mind. But it does not match exactly. Right now it is lacking Germanium and the steel is a little bit different from our legend steel (here i just use I added gadolinium, although it is not part of our design anymore because the gamma line intensities can be compared with a nice publication of peter grabmayr.
For the gadolinium i also have the data from peter grabmayr. So it should be easy to add, but then again that would just add a bloating file to remage containing that data. And it can always simply be added by a follow-up PR, so i would leave it out for now. |
|
I agree with Eric that plots like the ones above are useful to see the differences between versions and as sanity checks. I would suggest the individual components of interest should be tested in different setups to avoid complexity. Here are some thoughts. Neutron physics:
Muon physics:
|
|
While i agree with you Moritz, i think the tests you have in mind might be computationally way more expensive. Although i am not sure, it might be that if you just isolate the respective process you are looking at it might also be way quicker. To me what i implemented seemed like a nice all-in-one validation that exactly tests the neutrons in an environment as close to ours as possible. (and more or less reproduces our observables) While of course it would be nice to isolate each part and have a validation for each singular part, i think it is still important to also have the validation for the "combined simulation". For example the G4NDL cross sections could still be fine, but somehow there is a bug making the captures not occur on a certain isotope anymore. (something similar happened to the water gamma line intensity that you can see in the plot above is completely wrong) |
|
Testing the individual points of interest separately gives us a lot more control since we precisely know what we expect. Having a simulation with several different components makes testing the individual processes difficult since you add a lot of correlations. I don't want to say that we should not have them, as I agree that testing these correlations is of interest (as I also mentioned above). I just think we can more easily spot issues when the processes are investigated individually rather than in a combined simulation. Except for the muon simulations, I do not think the simulations are particularly expensive since the energies are usually <5MeV, meaning most hadronic physics can be ignored, and we can also kill all secundaries we are not interested in. True, the muon simulations are more expensive, but especially the neutron yield is of high interest for us, and it should be covered by the tests to see changes in the physics list and version. One would have to test how much statistics one can get away with. |
|
Ahh, killing the secondaries afterwards is a good point to also speed up what i added here! |

I still need to write the actual validation page.
But this would produce plots like this for a bunch of isotopes in a setup containing liquid argon inside a steel cylinder inside a watertank. There is also a moderator with Gadolinium inside of the Argon.

The simulation should have a dual purpose:
Both simulations use the same seed. But due to the different process the random engine gets out of sync almost immediately.
Are there any comments or proposals of what i might change?
Some of the isotopes will have a very low statistic. But there is not really more feasible in the CI. Their plots will still be generated, as the total Q-value is still meaningful. Theoretically i could also simulate each capture individually in a world only made of the volume, but i think overall that takes more time for less information.