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
numpy—Numerical python (fast manipulation of multi-dimensional arrays)scipy—Numerical algorithms (often ports of legacy FORTRAN libraries)matplotlib—Plotting package, used in the SeaRay plottermayavi—An optional package for advanced 3D plottingpyopencl—Hardware acceleration for Python