Hi, I’m looking for a way to find the neutron flux at a point or at a surface.
In essence I have a point source surrounded by air and I’d like to know the neutron flux at a certain distance away from the source. I’m aware there’s issues with openmc not allowing surface flux readings and I’m wondering if there’s any work arounds.
so far I’ve coded a a point source surrounded by a sphere r = 500, filled with air and am trying to find the flux at the edge of the sphere but it’s throwing up errors. I’m new to openmc so apologies if this seems trivial.
For context: the ultimate aim of this is to be able to surround the source with different types cladding and ensure the flux outside is at safe levels, but for the time being my supervisor just wants me to be able to get readings of how many neutrons make it through 5m of air.
Hello,
If you need an indicator of “how many times a neutron crosses a surface”, I think that the most simple way to obtain it is to adopt a SurfaceFilter
, looking for the current
score.
Assuming that your sphere has been defined as
MySphereSurf = openmc.Sphere(...)
you can define a filter as
filter = openmc.SurfaceFilter(bins = MySphereSurf)
and define a tally as
CurrentTally = openmc.Tally(name = "Current at Boundary")
CurrentTally.filters = filter
CurrentTally.scores = ['current']
Finally, you add the CurrentTally tally to the exportable variable
tallies = openmc.Tallies()
tallies.append(CurrentTally)
tallies.export_to_xml()
This method will give you an integral value at the boundary. Of course, if you need the flux distribution inside your sphere, consider to instatiate a spherical mesh scoring directly the flux
.
Gotcha, this helps, thanks
Ok so I got a reading of 0.9948 for current at the edge of the sphere (r=500cm, fill = air).
Just to clarify my understanding of the current - does this mean that 99.48% of the neutrons make it through the sphere?
If you are running a fixed source calculation, it should be correct (since the default normalization is set as 1 particle as source strength).