t8code – die Open-Source-Bibliothek für extrem effiziente Simulationen mit adaptiven Gittern
t8code ist eine Softwarebibliothek zum effizienten Management von dynamischen adaptiven Gittern und Daten auf diesen. t8code unterstützt und verbessert unterschiedliche Simulationsapplikationen als Plugin und kann für jede Simulationssoftware, die Gitter verwendet, eingesetzt werden.
- die Softwarebibliothek ermöglicht effizientes Management von dynamischen adaptiven Gittern und Daten auf diesen
- t8code erweitert erfolgreiche Technologien, die bisher nur für Viereck- und Hexaedergitter verfügbar gewesen sind, auf allgemeine Elementformen
- die Softwarebibliothek kann als Werkzeug für alle Simulationscodes eingesetzt werden
- t8code skaliert auf Supercomputern und verkürzt Rechenzeiten erheblich
- t8code wird am DLR-Institut für Softwaretechnologie unter Beteiligung der Universität Bonn entwickelt
- Projektwebseite: t8code
- Projekt repository t8code auf GitHub
t8code als Open Source-Plugin für jede Simulationssoftware
t8code (klein geschrieben und „tetcode“ ausgesprochen) ist eine Softwarebibliothek zum effizienten Management von dynamischen adaptiven Gittern und Daten auf diesen. Jede Simulationssoftware, die Gitter verwendet, kann von t8code als Plugin profitieren, denn es unterstützt und verbessert unterschiedliche Simulationsapplikationen. t8code ist sehr universell einsetzbar, weil es so gut wie alle Gitter, die von numerischer Simulationssoftware gebraucht werden, unterstützt.
t8code wird von der Abteilung High-Performance Computing des Instituts für Softwaretechnologie unter Beteiligung der Universität Bonn entwickelt. Im Deutschen Zentrum für Luft- und Raumfahrt wird t8code bereits erfolgreich in mehreren Projekten genutzt. Dabei reichen die aktuellen Einsatzbereiche von Erdsystemmodellierungen über die Simulation von Atmosphärenchemie bis hin zur Verbesserung von 3D-Druckverfahren.
Adaptive Gitter als Grundlage von Strömungssimulationen
Bei Computersimulationen von Wettervorhersagen, Klimamodellen oder Strömungen kommen oft Gitter als Grundlage für Berechnungen zum Einsatz. Das Rechengebiet wird zunächst in ein Gitter aus unterschiedlichen geometrischen Formen wie Dreiecken, Vierecken, Hexaedern oder Tetraedern aufgeteilt. Je feiner die Auflösung dieses Gitters ist, desto genauer sind die Ergebnisse der Simulation.
Eine feinere Auflösung erhöht allerdings auch die Rechenzeit und den Speicherbedarf. „Adaptiv“ werden die Gitter, wenn sie sich gezielt nur an den Stellen verfeinern, an denen eine feine Auflösung notwendig ist, und an anderen Stellen gröber bleiben. Eine Verfeinerung des Gitters ist im Beispiel einer Wettersimulation entlang einer Kaltfront sinnvoll. Ändert sich die Gitterauflösung während der Simulation – die Kaltfront bewegt sich – so spricht man von dynamischen adaptiven Gittern. Die Unterteilung in feine und grobe Rechengebiete erlaubt es, extrem effizient mit der zur Verfügung stehenden Rechenkapazität umzugehen.
t8code erweitert erfolgreiche Technologien
t8code ist extrem effizient und funktioniert selbst mit den extrem großen Prozessorzahlen aktueller Supercomputer. In praktischen Anwendungen mit bis zu einer Million parallelen Prozessen und Gittern mit mehr als einer Billion (10 hoch 12) Elementen hat t8code seine Leistungsfähigkeit nachgewiesen. t8code erreicht diese Effizienz durch einen baumbasierten Ansatz mit Hilfe von raumfüllenden Kurven. Diese Datenstrukturen sind sowohl sehr rechen- und speichereffizient als auch geometrisch sehr flexibel. t8code erweitert diese erfolgreiche Technologie, die bisher nur für Viereck- und Hexaedergitter verfügbar war, auf allgemeine Elementformen. So unterstützt t8code in 3D die besonders häufig genutzten Formen Tetraeder, Hexaeder, Prismen und Pyramiden und erlaubt auch die Kombination verschiedener Formen innerhalb eines Gitters.
Potential für die Industrie
t8code eignet sich ideal als skalierbare Alternative zu den in der Industrie häufig verwendeten unstrukturierten Gittern. t8code verspricht kürzere Laufzeiten – und damit geringere Kosten –, bessere Auflösungen und einen universell einsetzbaren Code für Simulationssoftware.