LimB: A 2D nonequilibrium entropy limiter lattice Boltzmann code

Current version: 1.06 (June 2009)

Author: Robert Brownlee


Nonequilibrium entropy limiters for lattice Boltzmann methods (LBMs) are a novel technique for the stabilisation of LBMs. This innovation was pioneered and championed by R. A. Brownlee, A. N. Gorban and J. Levesley in the series of papers:

  1. Nonequilibrium entropy limiters in lattice Boltzmann methods. Physica A, 387(2–3):385–406, 2008 (arXiv:0704.0043);
  2. Stable simulation of fluid flows with high-Reynolds number using Ehrenfests' steps. Numer. Algorithms, 45(1–4):389–408, 2007 (arXiv:0705.4371);
  3. Stability and stabilisation of the lattice Boltzmann method. Phys. Rev. E, 75(3):036711, 2007 (arXiv:cond-mat/0611444);
  4. The Ehrenfests' coarse-graining as a paradigm for stabilising the lattice Boltzmann method. In Proc. Russian National Seminar "Modeling of Nonequilibrium Systems", Krasnoyarsk, October 13-15 2006, pages 3-13, Krasnoyarsk State Technical University Press, 2006;
  5. Stabilisation of the lattice Boltzmann method using the Ehrenfests' coarse-graining idea. Phys. Rev. E, 74(3):037703, 2006 (arXiv:cond-mat/0605359).

The code used to test the concept of nonequilibrium entropy limiters in the above papers is available for download: LimB.zip

During the first 6 months of 2009, the code was extensively revisited, overhauled and improved by the code's author (R. A. Brownlee) and subsequently given the code name LimB. Perhaps considered a naive implementation by some, LimB will be of interest to those concerned with the development of nonequilibrium entropy limiters for LBMs as well as to newcomers who are developing their first LBM code. LimB is free software, but only made available under the proviso that appropriate acknowledgement is provided. Limited discretionary support is available by contacting the author. Freely distributable movies and figures produced using LimB are also available (see below).

LimB is written in Fortran 90 and its features are summarised in the following list:

The code has the following modular structure:

The main loop is contained within the file LimB.f90 and the code is executed by submitting a parameter file LimBprob.par with the following structure:

Examples

Flow around a square cylinder

Unless otherwise stated, the following applies to all of the 2d square cylinder simulations below:

Square cylinder simulations:

Lid-driven cavity flow

The following applies to all of the lid-driven cavity simulations below:

Lid-driven cavity simulations:


Valid XHTML 1.1