Changelog of Version 0.6, Release 1

Download this release: tar zip

Modifications to the interface may require minor changes in your code.

Palabos has undergone a few structural changes to make the code more general. In particular, it is now possible to couple Integer-value based fields (e.g. traditional Cellular Automata) with real-valued fields (e.g. Lattice Boltzmann).

Although most of the changes happen behind the scene, it is possible that some codes written for v0.6r0 won't compile with release 1. In these cases, it is sufficient to change just a few words to restore compatibility with the most recent version.

The most frequent modification required in end-user codes is a change from

void initializeGeometry(BlockLatticeBase3D<T,DESCRIPTOR>& lattice, ...)


void initializeGeometry(MultiBlockLattice3D<T,DESCRIPTOR>& lattice, ...)

This modification has been performed in all example codes. In case of doubt, double-check your codes with one of the official Palabos example programs.

New tutorial

For the first time, a tutorial has been submitted by a Palabos user. It's a tutorial for geophysicists, written by a geophysicist:


New features

Multi-data-type coupling

With release 1 it has become possible to write data processors which couple atomic- resp. multi-blocks of all data types (e.g. integer with double, or any other combination). This is for example useful when you read a integer-based flag matrix from a file and use this data to initialize a lattice Boltzmann simulation. Or, if you wish to couple the results of a Cellular Automaton with a lattice Boltzmann simulation.

Choice of external force term

Three force terms are implemented now (note that you must always use the descriptor ForcedD2Q9Descriptor in combination with these forced dynamics). All three force terms are second-order accurate and can be used interchangeably:

Force Term Dynamics classes
Guo e.a. GuoExternalForceBGKdynamics, GuoExternalForceRegularizedDynamics
Shan and Chen ShanChenExternalForceBGKdynamics, ShanChenExternalForceRegularizedDynamics
He e.a. HeExternalForceBGKdynamics, HeExternalForceRegularizedDynamics

XML reader for user input parameters

An important new feature is an XML parser, which offers the possibility to read structured configuration data in a clean, simple, and safe way. A detailed documentation is provided in the user's guide:

Reading user input from an xml file

Parser for command-line parameters

Similarly to the XML reader, a parser for command-line parameters is provided, which offers automatic type conversion and simple error handling. A detailed documentation is provided in the user's guide:

Accessing command line parameters

Bug fixes

  • The Zou/He boundary condition was broken and has been fixed.
  • Palabos occasionally crashed during output operations in parallel programs with many MPI threads. This has been fixed.
  • The initialization of multi-block lattices had a bad complexity as a function of the number of composing atomic-blocks. As a result, initialization was unaccptably slow in programs using several thousand cores. In the new release, the complexity has been reduced to n log(n), where n is the number of atomic-blocks (or number of MPI threads). This solves the issue.

Changes to the interface

The class BlockLatticeBaseXD has, to a large extent, lost the ability to act generically for both the AtomicBlockLatticeXD and the MultiBlockLatticeXD. In many cases, you must explicitly use AtomicBlockLatticeXD or MultiBlockLatticeXD now. Same business for the scalar-fields and vector-fields.

The template BlockStatisticsXD<T>, and some related functions, have become non-templates: BlockStatisticsXD .

Data processors for two blocks or more have additional template parameters, so that the blocks can be based on a different data type. For example, the DataProcessingFunctional2D_LS<T,Descriptor> has become DataProcesingFunctional2D_LS<T1,Descriptor,T2>, where T1 is the underlying data type for the lattice, and T2 for the scalar-field.

plb_wiki/release/log_v0.6_r1.txt · Last modified: 2011/12/18 16:56 (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.