We present a simple to use, yet powerful code package called NLSEmagic to numerically integrate the nonlinear Schrödinger equation in one, two, and three dimensions. NLSEmagic is a high-order finite-difference code package which utilizes graphic processing unit (GPU) parallel architectures. The codes running on the GPU are many times faster than their serial counterparts, and are much cheaper to run than on standard parallel clusters. The codes are developed with usability and portability in mind, and therefore are written to interface with MATLAB utilizing custom GPUenabled C codes with the MEX-compiler interface. The packages are freely distributed, including user manuals and set-up files. The integrators utilize a fully-explicit fourth-order Runge-Kutta scheme in time and both second-and fourthorder differencing in space. The integrators are written to run on NVIDIA GPUs and are interfaced with MATLAB including built-in visualization and analysis tools.
Restrictions:The main restriction for the GPU integrators is the amount of RAM on the GPU as the code is currently only designed for running on a single GPU.
Unusual features:Ability to visualize real-time simulations through the interaction of MATLAB and the compiled GPU integrators.
Additional comments:Program has a dedicated web site at www.nlsemagic.com.
Running time:A three-dimensional run with a grid dimension of 87x87x203 for 3360 time steps (100 non-dimensional time units) takes about one and a half minutes on a GeForce GTX 580 GPU card.