call RayTrace (integer(in) :: blockCount, integer(in),dimension(1:blockCount) :: blockList (:), real(in) :: timeStep, real(in) :: timeSimulation, integer(in), optional :: passSplitDriver)
Trace rays though blocks. This is an interface for driving ray tracing. during one timestep. An implementation may follow all rays through the complete domain during the timestep, or perhaps not. An implementation will probably operate using a loop where auxiliary routines traverse the rays through individual blocks and compute interactions with grid solution variables (like energy deposition) etc. The loop terminates when all the rays have been processed.
blockCount : Number of blocks on current processor blockList : All block ID numbers timeStep : current timestep value timeSimulation : current simulation time passSplitDriver : indicates first/second half of time step for split driver
The RayTrace unit may be used in the future to provide methods for ray tracing for use by other units, in particular physics and diagnostics units. Currently only a stub implementation exists. The interface will likely change once a real implementation is written.
EnergyDeposition ProtonImaging ProtonEmission ThomsonScattering XrayImaging