Gefördert durch die

 

Ergebnisse

Abbildung 1: Steereo

Mit ls1/Mardyn steht ein von der Arbeitsgruppe selbst entwickelter, paralleler C++-Molekulardynamik-Simulationscode zur Verfügung, der im Rahmen des Teilprojekts A.1 in seinem Funktionsumfang erweitert und im Rahmen von D.1 weiter optimiert wird. Das Teilprojekt A.2 stellt einen Fortran90 Lattice Boltzmann Code zur Verfügung und erarbeitet die theoretischen Grundlagen für eine Kopplung zwischen dem molekulardynamischen und kontinuumsmechanischen Simulationsansatz, um eine Brücke zwischen der nanoskopischen und mesoskopischen Skala zu schlagen. Der partitionierte Ansatz zur Kopplung zweier eigenständiger, nebenläufiger Simulationsprogramme erfordert ein eigenständiges Kopplungsmodul, welches den Austausch von Daten und die Steuerung übernimmt.

Eine moderne Anwendung zur numerische Simulation bietet Online-Visualisierung und Möglichkeiten für den Nutzer während der Laufzeit in das Geschehen einzugreifen. Insbesondere Molekulardynamik-Simulationen sind durch lange Laufzeiten auf vielen Prozessoren und damit einem großen Ressourcenverbrauch gekennzeichnet. Die Kontrolle über den Simulationsverlauf, sowie die Möglichkeit auf Simulationsparameter auch während des Simulationslaufs korrigierend eingreifen zu können, ist vor allem im Hinblick auf eine spätere Praxistauglichkeit in der industriellen Entwicklung unverzichtbar.

In diesem Teilprojekt wird dafür das Computational Steering Framework Steereo entwickelt und benutzt. Das in C++ geschriebene Framework bietet Steuerungsmodule zur Einbindungsowohl in Simulationen als auch in Client Applikationen an, welche damit Daten von der Simulation anfordern, verarbeiten und ändern können. Unterstützt werden im Moment dabei sequentielle und parallele Simulationen (siehe Abb. 1), die in C/C++ oder, über einen Wrapper, in Fortran 90, geschrieben sind.

Abbildung 2: Kopplungsmodul.

Das Framework an sich ist flexibel gestaltet: so lassen sich zur individuellen Anpassung an ein vorliegendes Problem auch eigene Module programmieren und einbinden. Auf diese Weise können für die Simulation eigene Module definiert werden, die dann von einer Client Applikation aufgerufen werden können. Damit lässt sich eine Simulation auch über das Ändern von Parametern hinaus beeinflussen. Neben einer Kommunikation über POSIX TCP Sockets soll für parallele Applikationen auch applikationsübergreifende MPI Kommunikation verwendet werden können.

Für die Kopplung wird damit ein Kopplungsmodul entwickelt, welches die Anbindung des Lattice Boltzmann Codes aus Teilprojekt A.2 (Fortran 90) mit der Molekulardynamiksimulation von Teilprojekt A.1 (C++) steuert und synchronisiert (siehe Abb. 2).

Abbildung 3: Beispiel für eine Simulation der Daten.

Zur Online-Visualierung wird das Visualisierungsframework MegaMol von Teilprojekt D.3 verwendet, für welches mit Steereo ein Modul zur Anforderung der relevanten Daten der Simulation während der Laufzeit mittels Steereo geschrieben wurde.