Opticks : GPU Accelerated Optical Photon Simulation using NVIDIA OptiX¶
Version: | 0.0.1 |
---|---|
Date: | Feb 01, 2024 |
The Opticks repository http://bitbucket.org/simoncblyth/opticks contains the sources together with scripts for getting and building externals and Opticks itself. Instructions for using these scripts can be found below. This documentation can be built locally or viewed from https://simoncblyth.bitbucket.io/opticks/
Contents:
- Opticks Documentation
- Opticks Install Instructions
- Overview of Opticks installation steps
- Platform Support
- Get Opticks
- Update an existing clone
- Bash Shell Setup with .opticks_config
- Bash environment setup, checking bash environment
- Opticks Installation Build Tools
- Version Requirements
- Building Opticks with opticks-full
- opticks-setup.sh : Environment setup for building and using Opticks
- Moving Externals
- Opticks Testing, Geocache Creation, Python setup
- Opticks Externals
- Three type of externals : system, foreign and automated
- Brief description of foreign and automated externals
- Separate installation of externals : useful for debugging the build
- Foreign Externals
- Automated Externals
- Base externals
- Visualization externals
- Boost C++ Libraries
- Opticks Pre-requisites : NVIDIA OptiX and NVIDIA CUDA
- Building Opticks against “foreign” externals such as Geant4, Boost
- Testing CUDA and OptiX Installs and nvcc toolchain
- Testing Thrust
- Geant4
- Visualization of Geometry and Event data
- Launching Visualization
- Controlling the initial viewpoint
- Configuring the default target volume
- Essential keys to make geometry visible
- Further Visualization Interaction Tips using “InteractorKeys”
- GUI control
- Navigating in a Geometry
- Bookmarks and Making Interpolated View Animation
- Controlling Animations and Photon Presentation
- Quickstart Examples showing how to integrate Opticks acceleration with your simulation
- orientation : Opticks Codebase Orientation for Developers
- Opticks Objectives
- Geant4-Opticks-NVIDIA_OptiX workflow
- Physics Background
- Geometry translation : Geant4->Opticks(GGeo)->OptiX (green arrows)
- Opticks Usage of NVIDIA OptiX
- Familiarity with Geant4
- Gensteps (blue arrows) and hits (red arrows)
- Geant4 classes which are partially ported to CUDA/OptiX
- Primary Opticks Packages relevant to geometry
- Highlighted Geometry classes from Geant4 and Opticks
- Material and Surface property classes
- Geometrical shape classes
- Volume Structure classes in Geant4 and Opticks/GGeo
- OptiX raygen function for simulation
- OptiX closest hit functions
- OptiX ray-geometry intersect and bounds functions
- Examples Directly Using NVIDIA OptiX
- CMake Structure
- Bash Functions
- Debug
- Debugging optical photon propagation using NumPy + ipython
- What OPICKS_EVENT_MODE does
- Possible arrays saved by sysrap/SEvt
- SEventConfigTest
- Saving Photon Propagations into NumPy arrays
- Debugging Lack of Hits
- Checking photon propagation histories
- ~/opticks/ana/tests/check.sh : setup environment for NumPy debug
- ~/opticks/ana/tests/check.py : python basic example
- Debugging Geometry
- Updating this documentation
- Opticks Event Data
- Generation and propagation
- Opticks Packages Overview
- How opticks-full works
- Structure of Opticks Build
- opticks-full bash function
- Installation Basics, bash reminder
- Troubleshooting installation of externals
- checking externals or Opticks subprojects
- One example : examples/UseOpticksGLFW
- Pattern of the go.sh scripts
- om-install : configures, builds and installs
- OKConf subproject
- Material and Surface Properties
- Geometry Translation
- running_with_more_photons
- New Opticks : How to Increase the max number of photons/gensteps ?
- New Opticks : Background on QCurandState files
- Old Opticks
- When using embedded Opticks withing G4Opticks
- What is the maximum number of photons that can be handled at once ?
- oxrap/ORng : populates rng_states in the OptiX GPU context
- oxrap/OPropagator : instanciates ORng
- Opticks Integration with Geant4 Simulation
- Tools : bash, python, numpy, ipython, matplotlib
- Opticks Launch Scripts
- ana : Opticks Analysis Scripts
- Issue : analysis machinery expects a geocache
- FUNCTION ana-t
- PMT Tests
- BoxInBox tests
- Rainbow Tests
- Scatter Tests
- Source Tests
- Full Geometry Tests
- Analytic/NCSG Geometry tests
- Concentric Tests : idealised spherical DYB AD
- Lens/Prism Tests
- Reflection Tests
- G4Gun Tests
- Geometry Infrastructure
- Event Comparison Infrastructure
- Event Infrastructure
- Plotting Infrastructure
- Metadata Infrastructure
- Color Infrastructure
- OXRAP : OptiXRap : OptiX basis classes
- OKGEO : Opticks middle management
- OKCORE
- OKOP : Opticks Operations (pure compute, no viz)
- THRAP : ThrustRap :
- G4OK : Interface between Geant4 and embedded Opticks
- GGEO
- CFG4