SeaRay Description

SeaRay is a beam propagation code written in Python. A SeaRay simulation is a set of physical regions with a propagation structure, i.e., a propagation equation which holds in that region. The glue that connects these regions is ray tracing. The propagation law that holds in a region is not fundamentally limited by the code structure, e.g., it can be paraxial, eikonal, full Maxwell, etc.. SeaRay uses PyOpenCL to take advantage of parallel hardware such as multi-core, many-core, and GPU devices. You do not need to compile SeaRay, but there are a number of Python packages that have to be installed. The top level packages are

  1. numpy—Numerical python (fast manipulation of multi-dimensional arrays)

  2. scipy—Numerical algorithms (often ports of legacy FORTRAN libraries)

  3. matplotlib—Plotting package, used in the SeaRay plotter

  4. mayavi—An optional package for advanced 3D plotting

  5. pyopencl—Hardware acceleration for Python