Die Simulation turbulenter Strömungen in komplexen Geometrien erfolgt heute meistens durch den Einsatz von gitterbasierten Lösungsalgorithmen auf Parallelrechnern. Dabei kommt es nicht alleine darauf an, eine möglichst geschickte Diskretisierung bzw. ein möglichst geeignetes Gitter auszuwählen oder numerisch stabile und konvergente Algorithmen zu entwickeln. Insbesondere müssen die einzelnen Arbeitspakete der Simulation so auf die gegebenen Prozessoren verteilt werden, dass die Rechnerressourcen optimal ausgenutzt werden, d.h. die Simulation in minimaler Zeit abläuft. Die Arbeit konzentriert sich auf dieses letzte Optimierungsproblem und entwickelt dafür Modelle sowie Lösungsmethoden. Dazu nehmen wir an, dass für die Simulation bereits ein blockstrukturiertes Gitter gewählt wurde und suchen nach einer optimalen Verteilung der einzelnen Gitterelemente auf die vorhandenen Prozessoren. Die Beschränkung auf blockstrukturierte Gitter erfolgt, da dies erstens der in der Simulation turbulenter Strömungen in komplexen Geometrien am häufigsten eingesetzte Gittertyp ist und zweitens Gitter dieses Typs in eine überschaubare Menge von Blöcken zerlegt werden können, sodass zur Berechnung einer optimalen Verteilung des Gitters Methoden der ganzzahligen Programmierung verwendet werden können. Im Gegensatz zu den üblichen Ansätzen aus der Literatur achten wir bei Zuordnung von Arbeitspaketen an Prozessoren nicht nur auf eine gleichmäßige Verteilung der Rechenlast, sondern betrachten auch exakt den Zusatzaufwand, der sich für ein bestimmtes Hardwaremodell durch Datenaustausch zwischen verschiedenen Prozessoren während der Simulation ergibt. Diese Fragestellung führt uns auf ein hochkomplexes kombinatorisches Optimierungsproblem, dessen Lösung das Ziel unserer Arbeit ist. Zu diesem Zweck formulieren wir das Problem als ganzzahliges lineares Programm. Da es sich um ein in der Praxis unseres Wissens bisher nicht untersuchtes Problem handelt, beschränken wir uns nicht auf eine Formulierung, sondern stellen verschiedene Formulierungen vor und wägen diese gegeneinander ab. Schließlich untersuchen wir die durch die ganzzahligen Programme definierten Polyeder, um die daraus gewonnenen Erkenntniss in einem Branch-and-Cut Algorithmus zu implementieren. Da für große Probleminstanzen eine Lösung mit Methoden der ganzzahligen Programmierung nicht zu erwarten ist, entwickeln wir außerdem effiziente Heuristiken, die gute, aber nicht notwendig optimale Zuordnungen in akzeptabler Zeit liefern. Unsere Rechenergebnisse am Schluß der Arbeit zeigen, dass sowohl unsere Modelle als auch die implementierten Verfahren, die speziell auf die vorliegende Hardware abgestimmt sind, den Methoden aus der Literatur weit überlegen sind. Wir konnten so einen Beitrag zur besseren Ausnutzung von Rechnerressourcen bei der Simulation turbulenter Strömungen in komplexen Geometrien leisten. Abschließend bleibt anzumerken, dass unsere Ergebnisse nicht auf diese konkrete Anwendung von Finite-Elemente- oder Finite-Volumen-Verfahren beschränkt sind. Vielmehr lassen sich unsere Algorithmen überall dort einsetzen, wo entweder kleine oder blockstrukturierte Gitter auf einer zumindest ähnlichen Hardware verwendet werden. | German |