Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aeoj_v1_0.tar.gz(4617 Kbytes)
Manuscript Title: NLSEmagic: Nonlinear Schrödinger Equation Multidimensional Matlab-based GPU-accelerated Integrators using Compact High-order Schemes
Authors: R.M. Caplan
Program title: NLSEmagic
Catalogue identifier: AEOJ_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 184(2013)1250
Programming language: C, CUDA, MATLAB.
Computer: PC, MAC.
Operating system: Windows, MacOS, Linux.
Has the code been vectorised or parallelized?: Yes. Single CPU, number of GPU processors dependent on chosen GPU card (max is currently 3072 cores on GeForce GTX 690).
RAM: Highly dependent on dimensionality and grid size. For typical medium-large problem size in three dimensions, 4GB is sufficient.
Keywords: Nonlinear Schrödinger equation, Bose-Einstein condensates, GPU, high-order finite difference.
Classification: 4.3, 7.7.

Nature of problem:
Integrate solutions of the time-dependent one-, two-, and three-dimensional cubic nonlinear Schrödinger equation.

Solution method:
The integrators utilize a fully-explicit fourth-order Runge-Kutta scheme in time and both second- and fourth-order 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:
Setup guide and Installation guide provided. 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.