openmc
openmc copied to clipboard
Surface flux tallies
I can attack this tally. Is there any need date set that I should be aware of or can I attack at my leisure?
Nope, no need date! As you can see this issue has languished for over a year, so definitely attack at your leisure.
I spent some time yesterday thinking about how I was going to go about implementing this feature. The main difficulty would be how to calculate the surface area of the tally surface. If we limit OpenMC to just using meshes for the surfaces, then the area calculation is trivial. If we allow the CSG surfaces to be used then this becomes a much more involved calculation (it is my understanding that MCNP requires the user to input the area for CSG-type surface tallies).
So, my thought process moved on towards figuring out if CSG-type surfaces were even necessary or if mesh-based surface fluxes would suffice for real use-cases. I concluded that since the main applications of surface-flux tallies were either generating discontinuity factors or providing some form of boundary condition information (when angular information is provided as well), that mesh-based surface tallies would suffice.
I wanted to post this here before I start attacking the code so that anyone with a preference for CSG over mesh-based tallies can speak up.
One thing I could think of where CSG might be useful is tallying leakage. I guess that would really be surface current rather than surface flux, but the infrastructure would be the same. However, it might make more sense to have a special leakage score (see #178).
Yeah, I definitely agree with the need for a more specific leakage tally than the current one; but the leakage (and surface current) don't have a need for a surface area quantity, making their implementation much simpler than a CSG surface flux tally.
Perhaps then a better starting point would be to have a CSG surface current tally. At this point I can see immediate uses for such a tally, whereas I don't have any specific use cases in mind yet for the more complicated surface flux tally.
I could definitely use the mesh-based surface flux tallies when I am computing discontinuity factors for my baffle/reflector homogenization similar to the surface currents that are already implemented. Its fine if the flux is integrated over area, I can just divide it out on my own.
You know, I don't see the area thing as a huge issue actually. Right now volume-integrated tallies are not normalized by volume, so doing the same for surface flux shouldn't be a big deal.
You're right it probably isn't; especially if we willy have to rely on user supplied surface areas anyways, we might as well just be consistent for all types of surfaces.
I wonder what I should do to transfer the flux scores' units into the common units——neutrons per centimeter squared per second.
@ternence6 We recently added a section in the user's guide about normalizing units: https://docs.openmc.org/en/latest/usersguide/tallies.html#normalization-of-tally-results
@paulromano ty 👍
Is it correct that surface flux tallies remain unimplemented?
@gonuke Yes, it is possible to tally surface currents, but surface fluxes remain to be implemented.