Flus tally in a point.

Hello, I have an octagon shape reactor building with angular cylindrical beam ports in 45, 135,… degrees to the x-axis. So, the beam ports exit in the plane surfaces of the octagon. I want to measure the total flux in a point in the beam ports which has a certain distance from the origin or from the exit. What are the ways to tally the flux in this case? attached is an image that shows the point, in one of the beam ports. any example tally code is really helpful. Thanks.

Sharif Abu Darda.


How about making a small cube, say 1*1*1 cm3 or even smaller and tally flux there?

Yes, this is a possibility. The only potential issue with that is that you may need to run many particles to get a contribution over that volume. OpenMC currently does not have a point detector capability that would allow flux estimation at a single point (contributions welcome!).


Implementing point detector in openmc sounds like an interesting project.
Can you help us to get started?
How do you think will be the best way to implement this detector?
Is there a function that already computes the distance from a particle coordinets to a given tally point?
Best regards,

Hi @openMC_guy,

Thanks for expressing interest in taking on this project! I think this will be fairly involved. A good approach would be to create a copy of the original particle and trace the particle to the location of the point detector, determining the number of mean free paths along the way and tallying any other information needed. It would be important to avoid calling any tally routines during this process, which some of the high-level methods of the Particle class do (event_advance and event_cross_surface for example). The geometry operations like distance_to_boundary and neighbor_list_find_cell don’t call any tally routines however and could be used to trace the particle to the detector location. Thankfully the event_calculate_xs routine doesn’t call any tallies, so that could still be used to determine the MFPs and tally information manually.

I could see this all happening as part of a PointFilter class that would perform the tracing operation for any particles within a specified range of the point.

Hopefully that paints a decent picture of what this capability would take. Please let me know if you have any other questions!