Kontakt

Dr. Fabian Schlegel

Lei­ter OpenFOAM Modellie­rung von Mehrphasenströmungen
f.schlegelAthzdr.de
Tel.: +49 351 260 3467

Agile Softwareentwicklung für die Software der OpenFOAM Foundation

Bei der Software der OpenFOAM Foundation handelt es sich um eine in modernem, objektorientiertem C++ geschriebene Bibliothek, deren Quellcode quelloffen unter der GNU GPL v3 Lizenz bereitgestellt wird. Die OpenFOAM Foundation setzt dabei auf kontinuierlichen Integration, um die Anzahl der Fehler im Programmcode deutlich zu reduzieren. Diese Entwicklungsstrategie stellt jedoch erhöhte Anforderungen an nachgelagerte Entwickler, wie das HZDR. Die wesentlichen Gründe für den Einsatz der Software der OpenFOAM Foundation sind

  • Robustheit: Die Software basiert auf einer Finite-Volumen Methode zweiter Ordnung für unstrukturierte Gitter.

  • Transparenz: Der Quellcode steht quelloffen zur Verfügung und Ergebnisse sind somit jederzeit reproduzierbar.
  • Community: Die Software verfügt über eine starke Community aus Industrie und Forschung.
  • Modularität: Die Software setzt mit C++ auf eine moderne, objektorientierte Programmiersprache, folgt modernen Softwaredesignkonzepten und stellt eine VIelzahl flexibler Schnittstellen bereit.
  • Effizienz: Die Software erlaubt es die Forschungsarbeit auf Arbeiten wie Modellentwicklung oder neuartige Simulationskonzepte zu konzentrieren, da grundlegende Implementierungen für Konfigurationsdateien, Diskretisierung oder Post-Processing bereits vorhanden sind.

Beitragender mit eigener Erweiterung

Die OpenFOAM Foundation stellt mit Ihrer Arbeit eine ausgezeichnete Codequalität und die Robustheit der Bibliothek sicher - ein wichtiger Punkt beim Einsatz von CFD Software in industriellen Auslegungsprozessen. Mit der Unterzeichnung des Contributers Agreement hat das HZDR die Möglichkeit eigene Funktionalität der OpenFOAM Foundation zur Veröffentlichung vorzuschlagen. Die Verfügbarkeit der Funktionalität im Release ist ein entscheidender Punkt um neue Entwicklungen und Modelle in der industriellen Anwendung verfügbar zu machen. Die Anforderungen an solche Beitrage können während der Forschung nicht zu jeder Zeit vollumfänglichgewährleistet werden, weshalb am HZDR das Multiphase Code Repository by HZDR entwickelt wird, in welchem sich vorzugsweise prototypische Funktionalität wiederfindet. Um die Wartung der Erweiterung zu minimieren, wird bereits während der Entwicklung darauf geachtet, dass sich die neue Funktionalität optimal in bestehende Schnittstellen integriert und es erfolgt eine frühzeitige Kommunikation mit den Entwicklern auf Seiten der OpenFOAM Foundation. Ein Support Vertrag mit CFD Direct stellt dabei sicher, dass die langfristige Wartung und Integration von eigenen Codebeitragen durch die OpenFOAM Foundation sichergestellt ist.

Foto: Illustration of the linkage between OpenFOAM release and HZDR Multiphase Addon for OpenFOAM. ©Copyright: Dr. Fabian Schlegel

Darstellung der Verknüpfung zwischen der Software der OpenFOAM Foundation und dem Multiphase Code Repository.

Bild: Dr. Schlegel, Fabian

Entwicklung in Sprintzyklen

Aufgrund der hohen Frequenz von Commits im OpenFOAM-dev Repository ist es nicht möglich, das Multiphase Code Repository by HZDR ständig zu aktualisieren. Daher folgt das HZDR einer eigenen Entwicklungsstrategie, welche auf sogenannten Sprintzyklen beruht. Bei einem Sprintzyklus handelt es sich um einen spezifischen Commit des OpenFOAM-dev Repository, welcher für eine gewisse Zeit die Basis für die eigenen, internen Entwicklungen bildet. Ein neuer Zyklus wird bei Bereitstellung wichtiger Funktionalität im Release, eigenen Beiträgen oder beim Release einer neuen Version gestartet. Das Multiphase Code Repository selbst wird ebenfalls agil entwickelt.

Foto: Illustration of sprint cycles for OpenFOAM developments at HZDR ©Copyright: Dr. Fabian Schlegel

Darstellung der Sprintzyklen für Entwicklungen für die Software der OpenFOAM Foundation

Bild: Dr. Schlegel, Fabian

Agile Entwicklung und DevOps

Das Konzept der agilen Entwicklung von Software erfordert ein hohes Maß an Automatisierung (CI/CD) sowie die Anwendung von verschiedenen Methoden und Werkzeugen (DevOps) um eine hohe Qualität sicherzustellen. Ebenfalls von großer Bedeutung ist die Kooperation mit internationalen Forschern und Entwicklern. Hierfür stellt die Helmholtz Gemeinschaft mit den über die Helmholz Cloud angebotenen Diensten eine exzellente Grundlage zur Verfügung. Die Helmholtz Cloud stellt eine leistungsstarke IT-Infrastruktur für die Helmholtz Gemeinschaft bereit, welche insbesondere für einen agilen Entwicklungsprozess ausgelegt ist und ermöglicht damit eine effiziente und nachhaltige Softwareentwicklung. Für unsere eigenen Entwicklungen nutzen wir u. a.

  • Gitlab: Eine Webanwendung zur Softwareverwaltung, u. a. Git Versionskontrolle, Docker Registry, Issue Tracking, CI/CD Pipelines, etc.
  • Mattermost: Eine Echtzeitkommunikationsplattform für Entwickler am HZDR und internationale Partner.
Foto: IT-Konzept für OpenFOAM Entwicklungen ©Copyright: Dr. Fabian Schlegel

IT-Konzept für Entwicklungen für die Software der OpenFOAM Foundation

Bild: Dr. Schlegel, Fabian

Codeveröffentlichung nach FAIR Prinzipien

Das Multiphase Code Repository by HZDR wird in Gitlab in einem Git Repository unter Versionskontrolle verwaltet. Der Zugang zum Repository erfolgt auf Anfrage über Helmholtz AAI für Helmholtz-Zentren, angeschlossene Forschungseinrichtungen und Universitäten. Darüber hinaus stellen wir gerne Gastzugänge für internationale Kooperationspartner zur Verfügung.

Ein wichtiger Bestandteil einer modernen und nachhaltigen Forschungssoftware ist die Einhaltung der FAIR-Prinzipien (engl. findability, accessibility, interoperability, and reusability). Daher veröffentlichen wir kontinuierlich neue Versionen unseres Multiphase Code Repository by HZDR und der Multiphase Cases Repository by HZDR über das Rossendorfer Data Repository.