Robust Geometric Computations for Neutron Tracking

GRAND Seminar Thursday, Oct 19, 11am, Room 4201

Jack Snoeyink
Department of Computer Science
UNC Chapel Hill
(on leave at the National Science Foundation, CISE CCF Algorithmic Foundations)


As computer scientists, it is important for us to recognize when our favorite abstractions break and to consider alternatives. In this talk we will look at a particular geometric example exposing that computers actually don't do real number arithmetic, but typically do use fast IEEE 754 floating-point hardware to do arithmetic. The problem is suggested by David Greisheimer of Bettis labs: track neutrons in a CAD model of a nuclear reactor. As I'll describe, his reactor is defined by a hierarchical Constructive Solid Geometry representation, which forms unions and intersections of geometric primitives bounded by quadratic surfaces. A neutron is a point, so the task is to follow a point as it crosses each surface in order. This is easier said than done; analysis of the degrees of the geometric operations used reveals why. A point representing a neutron can actually get stuck in a reactor -- something that makes a nuclear physicist very nervous, since it breaks basic physical laws of conservation. Degree-driven analysis suggests changing the problem to tracking line segments where we apply geometric rounding to the segment endpoints. By doing so, we can continue to use fast floating-point, but can give guarantees on both geometric and topological properties (e.g., every neutron going into a bounded region must come out). This is work with David Millman and Michael Deakin.