The Binary Spatial Partitioning Algorithm for Efficient Tracing of Rays in the Monte Carlo Method for Surface-to-Surface Radiation Transport
The Binary Spatial Partitioning (BSP) algorithm has found prolific usage within the computer graphics community for efficient tracing of rays. In this paper, the BSP algorithm is described and demonstrated in the context of the Monte Carlo method for surface-to-surface radiation transport. In the BSP algorithm the computational domain is recursively bisected into a set of hierarchically linked boxes that are then made use of to narrow down the number of ray-surface intersection calculations. The geometric information pertaining to these hierarchically linked boxes is stored in the form of a binary tree or table. The algorithm is tested for two classical problems, namely an open box, and a box in a box, in both two-dimensional (2D) and three-dimensional (3D) geometries with various mesh sizes, and is found to result in orders of magnitude gains in computational efficiency over direct calculations that do not employ any acceleration strategy. In theory, the BSP algorithm is expected to scale logarithmically, i.e., the CPU time is expected to increase logarithmically with increase in the number of discrete surface elements (or faces) that the boundaries of the computational domain are broken into. In practice, however, it was found that balancing of the binary tree is critical for logarithmic scaling of the algorithm. Without balancing of the binary tree, only super-linear scaling can be attained.