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] aeta_v1_0.tar.gz(45762 Kbytes)
Manuscript Title: Sailfish: a flexible multi-GPU implementation of the lattice Boltzmann method
Authors: M. Januszewski, M. Kostur
Program title: Sailfish
Catalogue identifier: AETA_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 185(2014)2350
Programming language: Python, CUDA C, OpenCL.
Computer: Any with an OpenCL or CUDA-compliant GPU.
Operating system: No limits (tested on Linux and Mac OS X).
RAM: Hundreds of megabytes to tens of gigabytes for typical cases.
Keywords: Lattice Boltzmann, LBM, CUDA, OpenCL, GPU, Computational fluid dynamics, Python.
PACS: 47.11.-j, 47.11.Qr.
Classification: 12, 6.5.

External routines: PyCUDA/PyOpenCL, Numpy, Mako, ZeroMQ (for multi-GPU simulations), scipy, sympy

Nature of problem:
GPU-accelerated simulation of single- and multi-component fluid flows.

Solution method:
A wide range of relaxation models (LBGK, MRT, regularized LB, ELBM, ShanChen, free energy, free surface) and boundary conditions within the lattice Boltzmann method framework. Simulations can be run in single or double precision using one or more GPUs.

The lattice Boltzmann method works for low Mach number flows only.

Unusual features:
The actual numerical calculations run exclusively on GPUs. The numerical code is built dynamically at run-time in CUDA C or OpenCL, using templates and symbolic formulas. The high-level control of the simulation is maintained by a Python process.

Running time:
Problem-dependent, typically minutes (for small cases or short simulations) to hours (large cases or long simulations)