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

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