Ray Tracing Module
The ray tracing module traces rays through the finite element mesh. Notable features include:
- Supports tracing in meshes with planar sides (2D and 3D) 
- Supports mesh adaptivity 
- Supports contribution to residuals and Jacobians (with full coupling support) along ray segments 
- Supports ray interaction with internal and external boundaries 
- Supports storage and manipulation of data unique to each ray 
- Supports ray interaction with field variables 
- Highly parallelizable: tested to 20k MPI ranks 

Figure 1: Example of Flashlight Point Sources within a diffusion-reaction problem.

Figure 2: Overlay of the rays that were traced for the problem in Figure 1.
Examples
- Computing Line Integrals - Integration of a field along a line 
- Using Line Sources - Body force term along a line 
- Flashlight Point Sources - Anisotropic point sources that emit in a cone of directions 
Object Overview
- Ray - Basic data structure that represents a single ray that traverses the mesh 
- RayTracingStudy - UserObject that generates and executes the Rays 
- RayBCs - Manipulates Rays on boundaries, both internal and external 
- RayKernels - Manipulates Rays on segments within an element along a Ray trajectory