OpenLB


Contact and guideline for contributors

Contact

Remarks, suggestions and contributions can be submitted by e-mail.

We can unfortunately not offer programming support by e-mail. For questions on OpenLB or on lattice Boltzmann in general, post a thread on the forum

How to contribute

OpenLB is all about genericity and extensibility, and once you have been using the code for a while, we hope you will find yourself extending it and implementing your own models.

If you think your code extensions are of general interest, we warmly encourage you to submit them to the OpenLB project to make them available to the community. Upon a fairly superficial review procedure, submitted codes are made available for download on the OpenLB website. Only codes released under the GPL or an equivalent free software license are accepted.

Code contributions that have proven to be of general interest and stable may be integrated into the official OpenLB distribution.

Some programming guidelines

The OpenLB source code is subject to a set of guidelines that ensure both its usability and stability. Contributors are encouraged to adhere to the same standards so as to guarantee the quality of their extensions.

A short list of recommended guidelines follows.

  • Make use of templates to develop generic code. If you develop a new collision step of your invention, don't just implement it for the D2Q9 lattice, but write a lattice independent version at once. Use template specializations to optimize the code for a given lattice.
  • Avoid deep inheritance hierarchies in your classes. Use inheritance to express genericity, not to reuse code.
  • Comment your code as extensively as possible. Use the Doxygen syntax for comments to facilitate automatic generation of a documentation.
  • The OpenLB source code has an indenting width of four characters. Striving to this convention makes the code globally homogeneous and pleasant to the eye.

Further advice on C++ programming can be found on the C++ FAQ page of Marshall Cline.

Home Project Image Gallery Benchmarks What is LB?
Download Documentation Forum Tech. reports FAQ
Contact Legal Notice Links