Instabilities in DAGMC with hollows

Hi all,
I’m debugging a strange effect arising when a DAGMC-geometry has a hollow inside it. The geometry plotted by OpenMC is wrong sometimes, and when I (by means of gdb) step-trace a deterministic particle through the geometry somehow the understood surface is not what it ought to be.

I’ve created a couple of different very simple test-cases: 1 A 4xcm graphite cube with a cube (2cm) hollow inside, and a spherical shell r=5cm with a likewise spherical r=2.5 hollow inside.
I have the for both case created a surface triangulation and exported it to the DAGMC h5m format using both cubit+DAGMCplugin, as well gmsh+script akin to ( PyMOAB Script for compiling a non-overlapping set of STLs into a DAGMC model · GitHub ) and in the case of the cube I made an stl-representation by hand and exported using the aforementioned script.

Shining a monodirectional point-source of neutrons along the y-axis, I find that my mileage varies significantly but I have not yet been able to pinpoint the exact cause.
In particular when stepping through the code with gdb I find that the distance to the next surface gets a strange value after the particle has entered the void inside.
In addition the geometry plotted by OpenMC looks strange.

To summarize my findings so far:
Cube with hollow: The cubit.generated geometry fails: The plotted geometry is not right, and when tracking particles they encounter the first surface at y=-2 after which they are tracked to the voids exit surface at y=1cm.
Slices through the geometry generated by cubit:



Slices through the geometry generated by gmsh and or stl:

Sphere with hollow: The cubit generated geometry is again not working except if I cut the geometry in half. Then it works as expected, whereas the otherwise generated geometries do not work. The geometry is indeed plotted as expected but when tracing particles, spherical void is considered only as a thin shell (approx 0.07 cm thick) the rest is filled with graphite.
Interestingly enough, the same thing happened when I tried filling the void with helium.
Slices through the shell generated by cubit:



Slices through the shell generated by gmsh


cp
shell_cubit_split.h5 (945.9 KB)
shell_gmsh_0.2_2_20.h5 (84.1 KB)

First I should say - I am certainly not sure that the problem I encounter is indeed caused by OpenMC - it is entirely possible that it is caused by either of the lower lying libraries. It is consistent across using and not using double-down though.

I’ve attached a set of files that I hope can help to illustrate the problem. Has anybody seen similar things?
It is entirely likely that I am misunderstanding something simple and am simply going about this the wrong way. Pointers, suggestions, and ideas are most welcome.
Otherwise I shall continue to track particles through the geometry and see if I can find some irregularity.

cheers
Erik

geometry.xml (266 Bytes)
materials.xml (926 Bytes)
plots.xml (801 Bytes)
settings.xml (443 Bytes)
tallies.xml (682 Bytes)