call RayTrace (integer, intent (in) :: blockCount, integer, intent (in) :: blockList (:), real, intent (in) :: timeStep, real, intent (in) :: timeSimulation, integer, intent (in), optional :: passSplitDriver)
Compute the energy deposited due to irradiation by a laser. This is the driver routine for computing the energy deposition during one timestep. It is assumed that the domain is of dimensions no larger than it takes for light to travel during this timestep. Hence we follow all rays through the complete domain during the timestep. The code operates in a loop where a local routine computes the energy deposition and traverses the rays through individual blocks. 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 current implementation assumes presence of one or more laser beams and their path is computed using the geometric optics assumptions.