Skip to content

Month: February 2024

OpenLB Release 1.7 available for download

The developer team is very happy to announce the release of the next version of OpenLB. The updated open-source Lattice Boltzmann (LB) code is now available for download.

Major changes include the adaptation of many existing models into the GPU-supporting operator style, a validated turbulent velocity inlet condition and a special focus on new multi phase and particle models. This is augmented by a collection of bugfixes and general usability improvements.

For the first time, the new release is also available in a new public Git repository together with all previous releases. We encourage everyone to submit contributions as merge requests and report issues there.

Core development continues within the existing private repository which is available to consortium members.

Release notes

New features and improvements

  • Many existing models converted to the operator-style (“GPU support”)
  • New multi phase models, interaction potentials and examples
  • New Unit Converter for multi phase simulations
  • New validated turbulent inlet condition Vortex Method
  • New particle decomposition scheme that improves parallel performance of fully resolved particulate flow simulations using HLBM
  • New boundary condition zero gradient
  • Tidy up, (performance) improvements of optimization code
  • Optional support for loading porosity data using OpenVDB voxel volumes

New examples

  • multiComponent/airBubbleCoalescence3d
  • multiComponent/waterAirflatInterface2d
  • advectionDiffusionReaction/longitudinalMixing3d
  • advectionDiffusionReaction/convectedPlate3d
  • porousMedia/city3d
  • porousMedia/resolvedRock3d

Examples with full GPU support

  • turbulence/tgv3d
  • turbulence/nozzle3d
  • turbulence/venturi3d
  • turbulence/aorta3d
  • laminar/poiseuille(2,3)d
  • laminar/poiseuille(2,3)dEoc
  • laminar/cylinder(2,3)d
  • laminar/bstep(2,3)d
  • laminar/cavity(2,3)d
  • laminar/cavity3dBenchmark
  • laminar/testFlow3dSolver
  • laminar/powerLaw2d
  • laminar/cavity2dSolver
  • multiComponent/fourRollMill2d
  • multiComponent/rayleighTaylor3d
  • multiComponent/youngLaplace3d
  • multiComponent/binaryShearFlow2d
  • multiComponent/microFluidics2d
  • multiComponent/contactAngle(2,3)d
  • multiComponent/phaseSeparation(2,3)d
  • multiComponent/rayleighTaylor2d
  • multiComponent/airBubbleCoalescence3d
  • multiComponent/waterAirflatInterface2d
  • multiComponent/youngLaplace2d
  • advectionDiffusionReaction/advectionDiffusion(1,2,3)d
  • advectionDiffusionReaction/convectedPlate3d
  • thermal/squareCavity2d
  • thermal/porousPlate(2,3)d
  • thermal/squareCavity3d
  • thermal/rayleighBenard(2,3)d
  • porousMedia/city3d
  • porousMedia/resolvedRock3d
  • freeSurface/fallingDrop(2,3)d
  • freeSurface/breakingDam(2,3)d
  • freeSurface/rayleighInstability3d
  • freeSurface/deepFallingDrop2d

Citation

If you want to cite OpenLB 1.7 you can use:

A. Kummerländer, T. Bingert, F. Bukreev, L. Czelusniak, D. Dapelo, N. Hafen, M. Heinzelmann, S. Ito, J. Jeßberger, H. Kusumaatmaja, J.E. Marquardt, M. Rennick, T. Pertzel, F. Prinz, M. Sadric, M. Schecher, S. Simonis, P. Sitter, D. Teutscher, M. Zhong, and M.J. Krause.

OpenLB Release 1.7: Open Source Lattice Boltzmann Code.

Version 1.7. Feb. 2024.

DOI: 10.5281/zenodo.10684609

General metadata is also available as a CITATION.cff file following the standard Citation File Format (CFF).

Supported Systems

OpenLB is able to utilize vectorization (AVX2/AVX-512) on x86 CPUs [1] and NVIDIA GPUs for block-local processing. CPU targets may additionally utilize OpenMP for shared memory parallelization while any communication between individual processes is performed using MPI.

It has been successfully employed for simulations on computers ranging from low-end smartphones over multi-GPU workstations up to supercomputers and even runs in your browser.

The present release has been explicitly tested in the following environments:

  • Red Hat Enterprise Linux 8.x (HoreKa, BwUniCluster2)
  • NixOS 22.11, 23.11 and unstable (Nix Flake provided)
  • Ubuntu 20.04 and newer
  • Windows 10, 11 via WSL
  • Mac OS Ventura 13.6.3

[1]: Other CPU targets are also supported, e.g. common Smartphone ARM CPUs and Apple M1/M2.

New Android App “paint2sim” Released

Introducing the app “paint2sim” – A Digital Twin for 2D Fluid Flow Simulations

Paint2sim is a mobile application using a Lattice Boltzmann Method realized by the open-source simulation framework OpenLB. This innovative app allows users to scan hand-drawn domains and visualize 2D fluid flow simulations just-in-time on their mobile devices. Whether you’re a student, researcher, or engineer, explore fluid dynamics with an intuitive interface with your fingertips. The app is freely available for download.

For in-depth technical insights, refer to our latest paper, “Just-in-Time Fluid Flow Simulation on Mobile Devices Using OpenVisFlow and OpenLB

Dennis Teutscher and his team developed the app paint2sim as part of the “teaching4future” project, with funding from the Lattice Boltzmann Research Group at KIT and the Ministry of Science, Research, and Arts of Baden-Württemberg, Germany.

Use Case: Scanning a hand-drawn domain and simulating it on a mobile device

OpenLB Community YouTube Channel Update

We have just released a new video on our OpenLB YouTube Channel:

Heterogeneous Load Balancing in OpenLB: Cooperatively Utilizing CPUs and GPUs for a Turbulent Mixing Simulation

Following up on the turbulent micromixer simulation showcased here, the present video illustrates OpenLB’s heterogeneous computation capabilities.

The performance of the simulation case is improved by up to 87% when using heterogeneous CPU-GPU based compared to GPU-only execution. This is achived by distributing the two computationally expensive turbulent inlet regions onto CPUs while the comparatively cheaper bulk regions are processed on GPUs. The underlying inhomogeneous spatial domain decomposition was obtained using a novel genetic algorithm for cost-aware optimization.

A single accelerated CPU-GPU node of the HoreKa supercomputer (2x Intel Xeon Platinum 8368, 4x NVIDIA A100) was used for the showcased simulation consisting of 355 million lattice cells.
OpenLB enabled the cooperative usage of MPI, OpenMP, AVX-512 vectorization and CUDA, reaching a throughput of ~19.25 billion (NSE-only) resp. ~4.79 billion cell updates per second for the fully coupled case.

Simulation setup: Fedor Bukreev
Heterogeneous Load Balancing, Performance engineering, Visualization: Adrian Kummerländer

For further information please vist the associated show case: Heterogeneous Load Balancing