svalinn/DAGMC

Improvement on Overlap Check Tool

pshriwise opened this issue · 0 comments

The overlap check tool currently uses a number of points along triangle edges to detect if a piece of the edge exists in more than one DAGMC volume (IC excluded). The number of points along an edge can be changed as an argument to the program, but there will always be gaps and the number of rays fired by the program increases with the number of points requested.

A more robust way to approach this would be to fire rays along the triangle edge to detect intersections with any volumes that are not the parent volumes of the current surface(s) the edge belongs to. This will check for overlaps along the entire edge and the number of rays fired by the program will now be fixed based on the number of triangle edges. To make sure an intersection isn't ignored due to triangle normals we'll either have to fire two rays (one traveling in each direction of the edge) or specify the orientation of desired intersections to the ray tracing kernel -- hopefully the latter to save time.

Note: checking that the triangle vertices are not in another volume via the point containment check is still important to detect fully embedded volumes.