Hi. I presented this at ENGYF’21: Spent fuel criticality assessment comparison between Keno and OpenMC .
I don’t know if I can make the document public, but you can request it at researchgate.
2 Likes
Implementation and Validation of the Pulse-Height Tally in OpenMC
Note that corresponding code is available in a pull request:
openmc-dev:develop
← cfichtlscherer:pulse-height-tally
opened 08:18PM - 17 Sep 21 UTC
Hi everyone,
this is my first git pull request. Further, I am not really expe… rienced in C++. I have done my best, but if I have made mistakes, I apologize.
For simulating gamma spectroscopy applications, a so-called **pulse-height tally** is needed. Here I would like to present the implementation of the pulse-height tally for **photons** in OpenMC. This tally calculates how much energy is deposited in a cell by an entire particle history (means a particle and its progenies).
The basic idea is that the particle gets a new attribute pht_storage_ which is an array. In this array, the deposited energy of the particle for every cell is stored. After every Compton scattering, pair production, and photoelectric event, or the death of the particle since it falls under the cutoff energy, this array is updated. It also needs to take care to remove the energy of created secondary particles in these reactions (to prevent double counting). If the particle and all its progenies are dead, we take the value of the index of the analyzed cell for the pulse-height tally value.
There are currently several limitations. It only runs in a single thread mode, can not be combined with other tallies, and can only tally a single volume per simulation.
Details of an extensive validation and information on the tally can be found in the attached paper.
We validated the results with an analytical model in which only simplified versions of the reactions are modeled. For reproducing these results, I attach the two files (physics.cpp and run_shuttleworth.py - since GitHub does not allow uploading these file endings, I changed them to txt). The physics.cpp file contains the simplified reaction versions. To run this version, it needs to be swapped with the physics.cpp file in OpenMC and after compiling, the script run_shuttleworth.py will produce the analytical results.
Further, I attach a small example that can model the spectrum of a Cs-137 point source in a simple NaI scintilation detector. When you compare these simulation results with experimental data, you realize that the experimental data is broadened. I have an additional python script for doing this, but we could also discuss implementing it directly into the OpenMC code.
Looking forward to your feedback.
Best Christopher
[Implementation and Validation of the Pulse-Height Tally in OpenMC.pdf](https://github.com/openmc-dev/openmc/files/7188213/Implementation.and.Validation.of.the.Pulse-Height.Tally.in.OpenMC.pdf)
[example_cs137.txt](https://github.com/openmc-dev/openmc/files/7188216/example_cs137.txt)
[physics.txt](https://github.com/openmc-dev/openmc/files/7188217/physics.txt)
[run_shuttleworth.txt](https://github.com/openmc-dev/openmc/files/7188218/run_shuttleworth.txt)
Hello, my team is continuously using OpenMC for researches in nuclear reactor design, validation and multi-physics coupling. Here are some of our recent publications that we want to share with you:
multi-physics coupling for KRUSTY
HTR validation
2 Likes