Differences

This shows you the differences between two versions of the page.

Link to this comparison view

plb_wiki:release:log_v0.6_r1 [2011/12/18 16:56] (current)
Line 1: Line 1:
 +===== Changelog of Version 0.6, Release 1 =====
 +<WRAP center 30% round download>
 +Download this release:
 +[[http://www.palabos.org/images/palabos_releases/palabos-v0.6r1.tgz | tar]]
 +[[http://www.palabos.org/images/palabos_releases/palabos-v0.6r1.zip | zip]]
 +</WRAP>
  
 +<WRAP round important>
 +Modifications to the interface may require minor changes in your code.
 +</WRAP>
 +
 +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
 +
 +<code c++>
 +void initializeGeometry(BlockLatticeBase3D<T,DESCRIPTOR>& lattice, ...)
 +</code>
 +
 +to
 +
 +<code c++>
 +void initializeGeometry(MultiBlockLattice3D<T,DESCRIPTOR>& lattice, ...)
 +</code>
 +
 +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:
 +
 +[[http://www.palabos.org/documentation/tutorial/permeability.html|Permeability]]
 +
 +===== 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:
 +
 +[[http://www.palabos.org/documentation/userguide//input-output.html#reading-user-input-from-an-xml-file|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:
 +
 +[[http://www.palabos.org/documentation/userguide//input-output.html#accessing-command-line-parameters|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 © FlowKit.com
Except where otherwise noted, text, pictures and animations on this site are licensed under a Creative Commons Attribution-Share Alike 3.0 License.