OpenLB – Open Source Lattice Boltzmann Code

Projekt-ID: CPE

Einleitung

Lattice-Boltzmann-Methoden (LBM) sind ein relativ neuer Ansatz für die Simulation von Flüssigkeitsströmungen und Transportproblemen im Allgemeinen. Aufgrund ihrer sehr guten Parallelisierbarkeit eignen sich LBM besonders für die Durchführung von Großsimulationen auf modernen HPC-Clustern.
Die quelloffene LBM-Bibliothek OpenLB wird von der Lattice Boltzmann Research Group (LBRG, KIT) zusammen mit Partnern als Grundlage für die Vertiefung des Verständnisses von Transportproblemen in der Verfahrenstechnik und Medizin entwickelt. Dies stellt nicht nur die Reproduzierbarkeit bestehender Forschung sicher, sondern unterstützt auch zukünftige Forschung durch die Bereitstellung einer zuverlässigen und leicht erweiterbaren Simulations-Toolbox.

Abbildung: Strömungen in einer komplexen Umgebung, simuliert mit OpenLB

© Mathias J. Krause (KIT)

Principal Investigator: PD Dr. Mathias J. Krause
Projektmanagement: PD Dr. Mathias J. Krause
Forschung:  M.Sc. Fedor Bukreev, M.Sc. Nicolas Hafen, M.Sc. Julius Jeßberger, M.Sc. Adrian Kummerländer, M.Sc. Jan E. Marquardt, M.Sc. Johanna Mödl, M.Sc. Anas Selmi, M.Sc. Stephan Simonis, M.Sc. Dennis Teutscher, M.Sc. Mingliang Zhong, Dr. Davide Dapelo, Ing. B.Sc. František Prinz
Erscheinungsdatum: Juni 2021
HPC Plattform: HoreKa
Institut: Institut für Angewandte und Numerische Mathematik, KIT
Institut für Mechanische Verfahrenstechnik und Mechanik, KIT
Universität / Organisation: Karlsruher Institut für Technologie (KIT)
University of Bradford
Brno University of Technology (VUT)
Forschungsbereich Computergestützte Ingenieurwissenschaften
Projekt-ID: CPE

 

Projektbeschreibung

Die Ansätze zur Modellierung der Fluiddynamik lassen sich grob in mikroskopische, mesoskopische und makroskopische Ansätze unterteilen. Erstere modellieren direkt die einzelnen Teilchen, deren Verhalten nur eine emergente Eigenschaft ist, während letztere direkt makroskopische Größen wie Geschwindigkeit und Druck berücksichtigen. Mesoskopische Ansätze modellieren die Wahrscheinlichkeit, dass sich eine bestimmte Teilchendichte mit einer bestimmten Geschwindigkeit an bestimmten Punkten in Zeit und Raum bewegt. Ein gängiges Beispiel für ein solches Modell ist die Boltzmann-Transportgleichung, die über das mathematische Feld der kinetischen Theorie mit mikroskopischen und makroskopischen Modellen verbunden werden kann.

Lattice-Boltzmann-Methoden diskretisieren solche mesoskopischen Gleichungen auf einem regelmäßigen Gitter, was zu einem zweistufigen Algorithmus führt, der aus einem rein lokalen und somit perfekt parallelen Kollisionsschritt und einem Strömungsschritt besteht, der nur in einer lokalen Zellnachbarschaft kommuniziert. Diese Eigenschaften machen LBM besonders geeignet für die hochparallele Ausführung auf heterogenen HPC-Clustern.
OpenLB https://www.openlb.net/ implementiert LBM in einem hybriden Parallelisierungsschema, das aus einer Block-Zerlegung besteht, die mit MPI parallelisiert wird, während einzelne Blöcke von CPUs und Beschleunigern wie GPUs auf der Ebene von Berechnungsknoten verarbeitet werden können. In diesem Grundgerüst ist eine Vielzahl von Kollisionsoperatoren und Randbedingungen implementiert, die eine effiziente Simulation von:

  • Partikuläre Fluidströmungen
  • Thermische Strömungen
  • Turbulente Strömungen
  • Stofftransport und chemisch reaktive Strömungen
  • Lichttransport
  • Fluid-Struktur-Interaktion
  • Strömungen in porösen Medien und komplexen Geometrien.

Diese reiche Auswahl an simulierbaren Phänomenen ermöglicht die Untersuchung verschiedener Probleme sowohl in der Verfahrenstechnik als auch in der Medizin. So ermöglichen beispielsweise Simulationen von aufgelösten Partikeln die detaillierte Untersuchung von formabhängigen Absetzgeschwindigkeiten bei Partikelsedimentationen, was eine wesentliche Frage in der Verfahrenstechnik ist. Simulationen von reaktiven Mehrkomponentenströmungen können bei der Entwicklung effizienterer Batterien helfen, und Lichttransportsimulationen fördern das Verständnis des Algenwachstums in Photobioreaktoren. In der Medizin wird OpenLB zur Simulation von Luftströmungen in patientenspezifischen Atemwegsgeometrien und der Hämodynamik der menschlichen Aorta eingesetzt. Die kurze Zeit bis zur Lösung, die durch die Kombination von LBM mit modernen HPC-Clustern erreicht werden kann, ist entscheidend für die Nutzung von Simulationen als bequemes Werkzeug, um patientenspezifische Probleme zu verstehen und mögliche Behandlungen zu erforschen.

Das C++-Framework OpenLB wird seit 15 Jahren aktiv entwickelt und begann als reiner MPI-CPU-Code mit optionaler Unterstützung für die Nutzung von OpenMP auf Knotenebene in einem hybriden Parallelisierungsschema. Die automatische Codegenerierung wird genutzt, um High-Level-Beschreibungen von Kollisionsoperatoren und Randbedingungen in effiziente Rechenkerne zu transformieren. Motiviert durch die Verfügbarkeit von HoreKa als hochmodernes heterogenes HPC-System, wird derzeit ein umfangreiches Refactoring durchgeführt, um die Nutzung aller gesammelten Modelle auf modernen SIMD-CPUs und GPGPUs zu ermöglichen. Dies wird durch eine umfangreiche Abdeckung der Codebasis durch Unit- und Benchmark-Tests in einer kontinuierlichen Integrationspipeline (CI) ergänzt.

 

Literaturangaben

M.J. Krause, A. Kummerländer, S.J. Avis, H. Kusumaatmaja, D. Dapelo, F. Klemens, M. Gaedtke, N. Hafen, A. Mink, R. Trunk, J.E. Marquardt, M.L. Maier, M. Haussmann, and S. Simonis. “OpenLB–Open source lattice Boltzmann code”. Computers & Mathematics with Applications (2020). https://doi.org/10.1016/j.camwa.2020.04.033.

R. Trunk, C. Bretl, G. Thäter, H. Nirschl, M. Dorn, and M.J. Krause. “A Study on Shape-Dependent Settling of Single Particles with Equal Volume Using Surface Resolved Simulations.” Computation 9, no. 4 (March 25, 2021): 40. https://doi.org/10.3390/computation9040040.

T. Henn, G. Thäter, W. Dörfler, H. Nirschl, and M.J. Krause. “Parallel dilute particulate flow simulations in the human nasal cavity”. Computers & Fluids 124 (2016), http://dx.doi.org/10.1016/j.compfluid.2015.08.002.