Would like some help understanding the volume term in the flux normalization equation

EDIT: We’ve since figured out what the problem was with our normalization. We hadn’t properly accounted for the power change that would be caused by the change in the volume of our system.

Excuse the wordiness ahead of time, I’m just trying out layout all of my thoughts to make it clear where perhaps someone would be able to indicate the gap in my understanding.

Some colleagues and myself have been learning OpenMC and our latest difficulty seems to be related to understanding what volume, V, to use in the calculation for flux normalization outlined in \sect 8.3 of the User’s Guide, “Normalization of Tally Results”.

This is the expanded normalization equation \phi' = \frac{P}{1.602\cdot 10^{19}H\cdot V} \cdot \phi. Here we have P as reactor power, H as the ‘heating-local’ tally and V which we had initially assumed to be the volume of a mesh cell.

For a system that is a 3x3x3 cm cube, then with a (100,100) x-y mesh we assumed the volume would be (3/100)*(3/100)*(3), which is also supported by this forum post from 2016, Volume calculation and flux tally units.
Here Paul Romano say in response to a given example using a 5x5x5 cube with a similar (100,100) x-y mesh:

But this doesn’t quite hold, at least in the case I’ll outline below, so I come here seeking clarification on what the volume term should be, or where my understanding seems to be lacking.

My colleague and I are running the same k-eigenvalue calculation of a pincell. It has reflective boundary conditions along the x-y boundaries, and since this exercise is designed as a 2-d system, there is no specification on z height, so we just use reflective boundary conditions and an arbitrary z height. From what I understood, this should have little to no impact as the pincell runs the whole way up the Universe.

Now when we compare our raw flux tally values, flux in units of [particle-cm/source], we get similar values, which I thought should make sense since it’s given per source particle. Same with the ‘heating-local’ tally, its’ given as [eV/source]. But if we’re supposed to be using mesh cell volume, as outlined in the quote above, then something should be changing as our volume changes, so the normalization process ends up outputting the same value.

Looking back at the equation above for calculating \phi', of all the variables that my colleague and I need (P, H, and \phi) are all the same, and we get the same flux tally values, but then the issue arises in our V term. The volume of one mesh cell for me is twice one of his mesh cell volume, so our normalized absolute fluxes, ends up differing by a factor of 2.

Without considering the flux units, I think it would be reasonable to expect that the raw flux tally would be more than my colleagues due to my mesh cell volume being doubled. But since its given per source particle, it doesn’t make sense that it would be volume dependent.

We later were told that the volume that we should be using is actually the mesh cell area. Take the cross section of our pincell, and divide it by the number of mesh cells. Going back to my previous 5x5x5 cube with a (100,100) mesh in the xy, (and 1 cell in z), this would then just be calculating V as (5/100)*(5/100).

This solves things from the math point of view, now both of our volumes are the same, but this left me with two further questions.

  1. This volume term would then have to be “mesh cell area per unit length in z”, otherwise this isn’t physically consistent. I think it makes sense since our system is independent of z.

  2. Then I struggle to justify why we can’t/shouldn’t use the pincell volume. I assume with a configuration that is z dependent, somehow the pincell volume would become important again, but I am just having difficulty understanding why or how this is works out.

Ultimately I’m just trying to understand the nature of this V term, as it seems a bit more complicated than I had initially thought. Any pointers to where to look, or explanations are much appreciated, thank you.

Hi Doriangaboo, welcome to the openmc forum.

I just want to comment out to this statement of yours that said,

But if we’re supposed to be using mesh cell volume, as outlined in the quote above, then something should be changing as our volume changes, so the normalization process ends up outputting the same value.

I think by using different mesh size that has different volume, the average neutron flux could be different since the volume averaged flux was spesific to the selected mesh being averaged.

If you are using 3×3×1 xyz mesh compared to single mesh 1×1×1 covering the same region, then we could said that the total flux, #-cm/souce, will be the same but the average neutron flux on the mesh #/cm2-sec (#/cm2-souce) could be different.

As an example to this case, the 3×3×1 xyz mesh could report something like this
0.002 | 0.003 | 0.001
0.008 | 0.011 | 0.002
0.007 | 0.010 | 0.002
But the 1×1×1 mesh just report a single value of 0.046 #-cm/source, which is equal to the sum of each 3×3×1 mesh tally result.

By considering the size of this region being covered by the mesh tally, lets say the region being covered is 6×6×6 cm, then the 1×1×1 mesh tally will has 216 cc volume, making the average flux on this 1×1×1 mesh will be, 0.046#-cm/source/216cc=0.000213 #/cm2-souce.

While each 3×3×1mesh will has an average value based on each small volume of 2×2×6=24cc, making the average flux distribution will be
0.000083 | 0.000125 | 0.000042
0.000333 | 0.000458 | 0.000083
0.000292 | 0.000416 | 0.000083
In this case, the sum of average flux from this meshtally, 0.001917 #/cm2-source, will be different to the average flux when only use 1×1×1 mesh tally, since this 0.001917 has different physical meaning to the average flux, it is just a sum of an average value. If you want the average flux over the region covered by that 3×3×1 mesh tally, then this 0.001917 will have to be averaged over the mesh size, which has 3×3×1= 9 mesh, so the average value will be 0.001917/9= 0.000213 #/cm2-souce, which now similar to the average flux over the same whole region covered by the 3×3×1 and 1×1×1 meshtally.

Then, the benefit of using 3×3×1 mesh tally is, you are getting the average flux distribution on your region, which as you can see, the center mesh region of the above example has a high average neutron flux, 0.000458 #/cm2-source, which almost double to the average neutron flux from the whole region being covered by the mesh tally, which is 0.000213 #/cm2-source.

Most of the time, I am using the 3D volume being considered during defining mesh tally, so I am not into your definition of volume = 2D area for flux normalization.