Abstract
Opticks is an open source project that accelerates optical photon simulation by integrating GPU ray tracing, accessed via the NVIDIA OptiX 7+ API, with Geant4 based simulations. A single NVIDIA Turing GPU from the first RTX generation has been measured to provide optical photon simulation speedup factors exceeding 1500 times single threaded Geant4 with a full JUNO analytic GPU geometry automatically translated from the Geant4 geometry. Optical physics processes of scattering, absorption, scintillator reemission and boundary processes are implemented in CUDA programs based on Geant4. Wavelength-dependent material and surface properties as well as inverse cumulative distribution functions for reemission are interleaved into GPU textures providing fast interpolated property lookup or wavelength generation.
In this work we describe the near complete re-implementation required to adopt the entirely new NVIDIA OptiX 7+ API, with the implementation now directly CUDA based with OptiX usage restricted to providing intersects. The re-implementation features a modular many small header design that enables fine grained testing both on GPU and CPU together with large code reductions from CPU/GPU sharing. Enhanced modularity has enabled CSG tree generalization to support "list-nodes", similar to G4MultiUnion, that improve performance for complex CSG solids. In addition support for interference effects on boundaries with multiple thin layers, such as anti-reflection coatings and photocathodes, using CUDA compatible transfer matrix method (TMM) calculations of reflectance, transmittance and absorptance are reported.