Description
In doing some testing for the upcoming cell-under-voxel update, I noticed that there were two issues in the recent void estimator PR #3299. The issues result in errors for void regions with external sources within them. The errors show up for flux tallies in these regions -- any tallies in other sorts of regions (void without external source, or regular solid regions) are not affected.
The issues basically result in the external source component being (nearly) zero'd out for these regions when computing the flux tally.
This snuck through my testing as the error decays as the mesh resolution gets finer.
As an example, if we have a void source region that is 10x10x10 cm, and we overlay a mesh with source regions cells of size 1 cm^3, then the loss of the source term in a given cell is not going to cause that much error in its flux estimate, given that the sources from the other 999 cells are still being transported and making flux contributions to that cell. However, for a 5x5x5 cm source region mesh, there are only 8 total cells in the void external source, so we are now understating the flux by at least 1/8th. This explains why I was seeing such large error levels at 5 cm^3 meshes whereas errors looked pretty good at 1 cm^3.
The fix is thankfully very easy. We just need to:
- Remove the unneeded normalization step when doing the sum(ℓ^2) / sum(ℓ) computation.
- Ensure the sum(ℓ^2) is being accumulated correctly in the linear source flux attenuation function
I'm planning to put in a PR to fix this soon.