Basic Lattice-Boltzmann (LB) MATLAB Code
Simple, yet simplistic, Lattice Boltzmann (LB) MATLAB implementation. D2H9, BGK, omega = 1, laminar flow in a 2D channel used as benchmark. Requires Image Processing Toolbox.
The code is not optimized for memory nor for speed, i.e. not efficient at all. However, it is better than almost nothing (i.e. the present MATLAB situation at Feb 2005 ? as far as I know)
Optimization for memory should consider only dry locations.
Other free LB (FORTRAN, C, and Cpp) codes are available:
See the anb.f code at http://www.ccrl-nece.de/lba/ or the S.Succi code available from www.physics.buffalo.edu/phy516/Files/Topic6/lbe.f
See also D2Q9poi.f from Dieter Wolf-Gladrow and
http://www.lstm.uni-erlangen.de/lbm2001/download/ written by Kraft and Schultz t tu.muenchen.de
See also the translation into C of the original Succi FORTAN code
www.physics.buffalo.edu/phy516/Files/Topic6/lbe.c
See also lb2d.m (by Youngseuk Keehm) at
http://srb.stanford.edu/GP200/PDFs/Hw02_solution.pdf
For LB benchmarking see:
http://staff.science.uva.nl/~sloot/CSS/BGK_handin.PDF
and page 190-192 in: Lattice-gas cellular automata and lattice Boltzmann models: an introduction / Dieter A. Wolf-Gladrow. -. ISBN: 3540669736.
This code is written to be readable by the most, optimisation makes it less readable. It is mean to be of some help to students tackling LB for the first time. As usual no guarantee of bug free or proper functioning. in the hope that some of the many LB developers will make soon something better available to the MATLAB community? possibly 3D, possibly multi-phase / multi-component.
Suggestions: Rather than rating, please- makes available a better code than this, it is an easier task. The user should not be surprise by encountering instability by changing the parameters without a precise rational. I suggest reading the references that benchmark the LB BKG and follow the given examples in order to get a feeling of the sensitivity of the code to the different variables.