Hello All,
For the life of me I can’t find what the units are for the various tallies. I am trying to compute one group cross sections and the results aren’t making a lot of sense. I have attached my tallies.xml and tallies.out file for reference.
These seem to be rates according to the documentation, but what are they relative to? Sorry I am being a little dense here. Other than the units, I have noticed a couple of things that have also confounded me.
Notably if a nuclide isn’t present via a zero mass fraction, then its corresponding tally is zero. This makes sense if a tally is an aggregation of the interactions that occurred during simulation. It would be more helpful (to me) if the tallies actually computed the group constants from the ACE data and the flux.
Furthermore, the data between the statepoint and the tallies.out file don’t seem to agree. The values in the statepoint seem to be an even 100x larger than tallies.out, while the errors reported in the statepoint seem to be unrelated completely as far as some of my simple tests go.
I guess this kind of morphed into a “how do I generate one- and multi-group cross sections with OpenMC?” thread. Thanks!
Be Well
Anthony
statepoint.130.binary (46.7 KB)
tallies.out (53.8 KB)
tallies.xml (1.95 KB)
Hey Anthony,
The tally responses are integrated over volume, and so are [# cm^3].
I believe you also have to divide the nuclidic numbers by their number densities to get a microscopic reaction rate of that's what you want.
I agree it would be useful in some cases to just spit out multi-group xs. At the same time, doing so either adds a lot of complexity to OpenMC (in terms of code and user interaction) or forces it to make assumptions about what the user wants.
Finally, why are tallies.out and the statepoint file different? I haven't done nuclidic x/s in a while but I don't remember ever seeing that.
So I just looked at statepoint.py; it doesn't look like nuclide tally bins are processed correctly. Can anyone else chime in with a second opinion on that? I suppose my earlier calculations we're immune since I had one nuclide per tally (i was doing only two nuclides anyways).
Just a quick point of differentiation that is likely not obvious – the statepoint file stores the sum and the sum-of-squares rather than the mean/variance directly. So if you want to get the mean and variance, you need to use the standard statistical formulas:
http://mit-crpg.github.io/openmc/methods/tallies.html#estimating-statistics-of-a-random-variable
Adam- can you elaborate on “doesn’t look like nuclide tally bins are processed correctly”? I took a quick look right now and don’t see anything glaringly wrong… but I wouldn’t rule it out.
Sure, in read_results (line 341) we should be looping over nuclide bins outside of the filter and score loops, right? We read in the number of nuclide bins but don't do anything with it as far as I can tell.
Well, nuclide “bins” are really wrapped up into score bins. The statepoint file more or less mirrors how the data is laid out in OpenMC, where you’ll notice that the results array is only two dimensional – the first is all filters flattened into a single dimension, and the second is nuclide/score combinations flattened into one dimension.
Hi Adam, Paul,
Thanks for helping me through this! I’d really appreciate more comprehensive documentation on this stuff. Preferably in Chapter 3 or 4 of the user’s guide.