The mesh tally outputs are broken by the ''reflective" boundary type planes

Hi guys,
I encountered a problem when I tried building a two-rings hexagonal assembly model. The model’s outer planes are defined as “reflective” boundary conditions. The model’s outer planes are defined as “reflective” boundary conditions. The geometry plot looks all right and will be given here
2ring-hex-geometry
The calculation can process well, but the results of the mesh tally have some problems after visual processing. A few boundaries cross the model geometry, reflect all the particles and do not sample for all the geometry. The fission rate tally results will be given here as well.
2ring-hex-meshplot

I found other OpenMC users have met similar problems: Reflective Boundary Hexagonal Multigroup problem - User Support - OpenMC. Could anybody share the solution or any possibility to fix this issue?

Here are the modelling files. Please contact me if you have any clue.
c5g7_9_Mat.h5 (66.4 KB)
geometry.xml (4.7 KB)
materials.xml (1.2 KB)
settings.xml (338 Bytes)
tallies.xml (369 Bytes)

Best wishes,
Yiming

You may use Mcnp instead.
I think mcnp can deal with this hexagonal reflective b.c.

Hi @YimingZ,

A very interesting problem! It took a bit for me to sort out what is going on here.

I pulled your model (thanks for providing it!) and pulled it up in the plotter. This allowed me to look at the containing cell definition more clearly. It looked correct to me.

But of course when I ran the problem I saw the same issue as you:

So I stared at it for a bit and then broke the cell region definition up into 4 cells (one for each quadrant):

This helped me see that what’s likely going on is that particles are hitting the surfaces moving through this concave region. This is fine when the boundary condition for those surfaces is transmissive, but when it’s vacuum or reflecting, it’s going to cause strange behavior.

So what I’d recommend doing is separating the quadrants into six, 60-degree convex regions. This will allow you to set the boundary condition on the outer surfaces and avoid this “ghost surface” issue you’re facing with the concave regions when the model is broken into quadrants.

I tried this out for a couple of sections to make sure it would work.

Model viewed by material:

Containing cells at the highest level:

Results:

If you decide to do this, one thing that might be helpful to you is the openmc.model.CylinderSector in the Python API that will allow you to define these sections pretty easily. It helped me out when I realized that the necessary planes weren’t already present.

Interesting problem! Thanks for bringing it up!

-Patrick