Changelog of Version 0.7, Release 0

Download this release: tgz zip

Version 0.7 extends Palabos in many important ways.

Python interface

Palabos can now been scripted through a Python interface. This offers the same performance, and parallel scalability, as the C++ interface, but it is much simpler to use for end-user applications.

Grid refinement

Finally: grid refinement is implemented in Palabos. It works with existing physical models (data processors and dynamics classes) without the need for modifying them. And it is parallelized.

For now, the 2D interface only is part of the release, and the 3D interface follows in a subsequent release.

New multi-phase model

Implementing the He/Lee model was a real crash-test for Palabos. The model requires couplings between many scalar-fields, vector-fields, and lattices, and uses next-to-nearest-neighbor interaction stencils. Test result positive: the model works fine, runs fast, and scales impressively. This adds a new multi-phase model to Palabos which handles large densit and viscosity ratios between the two phases.

New example programs in the directory examples/showcases


Application of the new He/Lee multi-phase algorithm to a 3D appliation of two colliding bubbles.


Application of Palabos' new 2D grid refinement abilities to the 2D lid-driven cavity. This application, like all others, is parallelized.


2D time-dependent, force driven channel flow, with analytical Womersley solution.


3D stationary flow in a channel with rectangular cross-section.

New data processors

setExternalScalar and setExternalVector

Use the data processors SetExternalScalarFunctionalXD or SetExternalVectorFunctionalXD, respectively their wrapper functions setExternalScalar and setExternalVector, to initialize external scalar- or vector-fields of a lattice. Example: an external force term may be initialized to a constant value through a command like

setExternalVector(lattice, lattice.getBoundingBox(),
                  DESCRIPTOR<T>::ExternalField::forceBeginsAt, Array<T,2>(0.,-force));

Bug fixes

Neumann boundary conditions and periodicity

The code used to crash or misbehave when some walls were periodic while others implemented a Neumann condition. This has been fixed.

Wrong implementation of division operator on scalar fields

Scalar fields used to execute an addition when a division was requested. This has been fixed.

plb_wiki/release/log_v0.7_r0.txt · Last modified: 2011/12/18 16:57 (external edit)
RSS - 2011 ©
Except where otherwise noted, text, pictures and animations on this site are licensed under a Creative Commons Attribution-Share Alike 3.0 License.