Hydraulische Simulationen
Eine hydraulische Simulation berechnet Wassertiefen und Fließgeschwindigkeiten für den Abfluss des Falls. aXqua führt hydraulische Simulationen in einer festen Reihenfolge durch, vom schnellsten bis zum detailliertesten Modell, und jedes Modell beginnt mit dem Ergebnis des vorherigen.
aXqua Warm-up Konzept
Zu Beginn einer Simulation ist nichts über die Strömung bekannt: Die Flusssohle ist trocken und das Modell muss zunächst den Flussabschnitt mit Wasser füllen, bis der Ausfluss dem Zufluss entspricht. Diese Füllung ist an sich nicht von Interesse, verbraucht aber Rechenzeit. Je detaillierter ein Modell ist, desto teurer wird die Befüllung.
aXqua lässt also das billigste Modell diese Arbeit machen. Die Sequenz lautet:
TELEMAC-2D Trockenlauf. Das Tiefenmittelmodell startet auf der trockenen Flusssohle und läuft, bis der Fluss stabil ist. Es dauert normalerweise Minuten bis einige Stunden.
TELEMAC-3D (optional). Das 3D-Modell beginnt mit dem 2D-Ergebnis. Der Flussabschnitt ist bereits gefüllt, und nur die vertikale Verteilung der Geschwindigkeit muss sich entwickeln.
OpenFOAM (optional). Das OpenFOAM-Modell beginnt mit dem TELEMAC-Ergebnis. Die Position des Wasserspiegels, der benetzte Bereich und die Geschwindigkeiten werden ihm entnommen.
Der TELEMAC-Lauf, der einer OpenFOAM-Simulation vorausgeht, wird als warm-up bezeichnet. Es hat drei Auswirkungen auf das OpenFOAM-Modell: Die Zellen unterhalb des Wasserspiegels beginnen mit fließendem Wasser gefüllt, die Oberseite des Rechennetzes wird kurz über dem Wasserspiegel platziert, so dass nur wenige Zellen Luft enthalten, und das Rechennetz ist auf den benetzten Teil des Flussabschnitts beschränkt. Wenn der Fall noch kein stetiges 2D-Ergebnis hat, führt aXqua zu diesem Zweck eine grobe TELEMAC-Simulation aus, die für einen kleinen Flussabschnitt etwa eine Minute dauert.
Das Warm-up ist standardmäßig aktiv und sollte nicht deaktiviert werden. Ohne sie startet OpenFOAM mit einem flachen Deckel hoch über dem Gelände, das Rechennetz enthält um ein Vielfaches mehr Luftzellen, und die Füllung des Flussabschnitts muss nach dem teuersten Modell berechnet werden. Im Plugin ist das Aufwärmen das Kontrollkästchen Use TELEMAC warm-up auf dem Unterregister OpenFOAM des Tabs Simulations (OpenFOAM). In der Fall-Datei ist es die Einstellung openfoam.pre_run.enabled, die standardmäßig aktiviert ist.
TELEMAC Trockenläufe 2D/3D
Ein trockener Lauf ist eine Simulation, die von einem trockenen Flusssohle (Ausgangsbedingungen) ausgeht.
2D. Klicken Sie nach Preprocessing auf Submit in der Box Steady 2D auf der Registerkarte Simulations > Baseline (Telemac) des Plugins. Der Lauf erscheint in der Jobliste unterhalb der Tabs mit seinem Fortschritt. In einem Terminal lautet der Befehl:
axqua submit <case-file> --kind steady
Die Registerkarte Simulations, Sub-Tab Baseline (Telemac). (1) Die Sub-Tabs der Registerkarte Simulations. (2) Die Box Steady 2D mit ihrem Status. (3) Submit startet die Simulation. (4) Load results fügt das Ergebnis zur Karte hinzu. (5) Die Jobliste mit dem Status und dem Fortschritt jedes Jobs.
Wenn der Lauf beendet ist, bewertet aXqua, ob der Fluss stetig ist. Es liest den Abfluss durch jeden offenen Rand aus der Ausgabe von TELEMAC und schreibt die folgenden Dateien in axqua-case/simulation/:
Datei |
Inhalt |
|---|---|
|
Abfluss durch jeden offenen Rand über die simulierte Zeit. |
|
Relativer Unterschied zwischen Zufluss und Ausfluss über die simulierte Zeit. |
|
Benetzter Bereich, unterteilt in fließendes Wasser, stehende dünne Wasserfilme und isolierte Pfützen. |
|
Wasserspiegel in der Nähe des Ausflussrandes, mit einem Hinweis, ob der vorgeschriebene Wasserstand den Fluss aufstaut oder nach unten zieht. |
Der Lauf ist stabil, wenn der relative Unterschied zwischen Zufluss und Ausfluss unter hydrodynamics.flux_tolerance bleibt. Wenn dies nicht der Fall am Ende des Laufs ist, erhöhen Sie hydrodynamics.duration und wiederholen Sie den Lauf. Der Benetzungsbericht ergänzt dieses Kriterium: Eine Simulation kann Abflüsse ausbalanciert haben und trotzdem Wasser dort zeigen, wo der echte Flussabschnitt trocken ist. Große Bereiche stehender Folie deuten in der Regel auf einen Start mit zu viel Wasser oder einem stromabwärts gelegenen Wasserstand hin, der zu hoch ist.
Load results fügt das Ergebnis (r2d.slf) dem QGIS-Projekt als Wassertiefe und Fließgeschwindigkeit Layer hinzu.
3D. Eine TELEMAC-3D-Simulation erfordert das stetige 2D-Ergebnis. In das Feld Steady 3D auf der gleichen Registerkarte schreibt Build die 3D Steuerdateien und Submit startet den Lauf. aXqua bestimmt die Anzahl der vertikalen Layer aus dem Wassertiefe und dem Zellgröße. Der Build bietet zwei Varianten. Die hydrostatisch-Variante ist schneller und wird zuerst ausgeführt, um zu überprüfen, ob Zufluss und Ausfluss auch in 3D ausgeglichen sind. Die nicht hydrostatisch-Variante (hydrodyn) löst zusätzlich vertikale Beschleunigungen auf, die bei steilen Veränderungen des Bettes von Bedeutung sind. Die Option Variant der Box wählt aus, welcher der beiden Submit beginnt, und Load results fügt das tiefschwellige Ergebnis der Karte hinzu. In einem Terminal:
axqua submit <case-file> --kind build-3d
axqua submit <case-file> --kind steady-3d
axqua submit <case-file> --kind steady-3d --option variant=hydrodyn
Die Anzahl der vertikalen Layer ist eine eigene Wahl, die mit einer separaten Studie untersucht wird (Vertical convergence Registerkarte). In einem flachen Flussabschnitt mit einem feinen Rechennetz passen nur wenige Layer über den Wassertiefe und eine 3D-TELEMAC-Simulation fügt dann dem 2D-Ergebnis wenig Informationen hinzu.
TELEMAC-Hotstarts
Ein Hotstart ist eine Simulation, die vom Endzustand einer vorherigen Simulation ausgeht, anstatt trocken zu beginnen. Der Flussabschnitt ist dann bereits gefüllt, was die Füllzeit bei jedem nachfolgenden Durchlauf spart.
Steady Hotstart. Wenn der Trockenlauf einen stationären Zustand erreicht hat, schreibt aXqua das Steuerdatei hotstart2d.cas neben das Modell. Es setzt sich vom Ergebnis des Trockenlaufs mit unveränderten Randbedingungen fort. Die Kalibrierung verwendet diese Datei: Jeder ihrer vielen Durchläufe ändert einen Parameter leicht und beginnt mit dem stationären Zustand (Kalibrierung und Validierung).
Unruhiger Hotstart (varianter Abfluss). Um eine Flutwelle zu simulieren, geben Sie eine Abfluss-Zeitreihe unter boundaries.inflow (Offene Ränder) ein und wiederholen Sie Preprocessing. aXqua schreibt dann zusätzlich das Steuerdatei unsteady2d.cas. Der instationäre Lauf beginnt mit dem stetigen Ergebnis, so dass der Flussabschnitt bei Eintreffen der Flutwelle gefüllt wird. Der stetige Abfluss des Falls (boundaries.prescribed_flowrate) sollte daher dem ersten Wert der Zeitreihe entsprechen. Starten Sie den Lauf mit Submit auf der Registerkarte Unsteady 2D, wo die Option Run in 3D das 3D-Modell auswählt, oder in einem Terminal:
axqua submit <case-file> --kind unsteady
axqua submit <case-file> --kind unsteady --option mode_3d=true
Die Dauer des instationären Laufs ergibt sich aus der Zeitreihe. Mit der Ausflussbedingung stage_discharge folgt der stromabwärts gelegene Wasserstand während der Flutwelle der Abflusskurve.
OpenFOAM
Eine OpenFOAM-Simulation löst den Fluss zusammen mit dem Wasserspiegel in drei Dimensionen auf. Sie ist erforderlich, wenn es auf die vertikale Struktur des Flusses ankommt, beispielsweise an Strukturen oder in einem Fischpass. Die Einstellungen werden in OpenFOAM-Auswahl beschrieben.
Gebaut. Gehen Sie zum Tab Simulations, Sub-Tab OpenFOAM. Die Box Free surface (VOF) enthält das Kontrollkästchen Use TELEMAC warm-up. Solange das Kontrollkästchen nicht verändert wird, entscheidet die Fall-Datei, in der das Warm-Up standardmäßig aktiviert ist. Lassen Sie es unverändert oder angekreuzt (aXqua Warm-up Konzept) und klicken Sie auf Build. aXqua führt das Aufwärmen aus, wenn der Fall noch kein stetiges 2D-Ergebnis hat, erstellt das Rechennetz und schreibt den OpenFOAM Fall in
axqua-case/openfoam/. Bei geräumter Box wird das Modell ohne TELEMAC-Ergebnis gebaut und OpenFOAM muss die trockene Flusssohle selbst füllen.Run. Klicken Sie Submit. Der Lauf hat zwei Etappen: eine kurze erste Etappe mit einem kleinen Zeitschritt, in dem sich der Wasserspiegel niederlässt, und die Hauptbühne. Die Fortschrittsanzeige zeigt die Courant-Nummer (
Co) und den Zeitschritt (dt). In einem gesunden Lauf bleibt der Zeitschritt in der Nähe eines konstanten Wertes. Ein Zeitschritt, der um Größenordnungen fällt, zeigt ein Problem an, typischerweise Luft, die auf unrealistische Geschwindigkeiten beschleunigt wird.Bewerten. Nach dem Lauf meldet aXqua den Abfluss von Wasser am Zufluss und am Ausfluss und vergleicht ihre relative Differenz mit
hydrodynamics.flux_tolerance, was dasselbe Kriterium wie für TELEMAC ist. Wasser, das das Modell durch seine Oberseite verlässt, ist Teil dieses Gleichgewichts und wird als Anteil des Abflusses gemeldet. aXqua meldet auch, ob Wasser den Deckel oder die seitlichen Grenzen des Rechennetzes erreicht hat. In diesem Fall hat das Rechennetz den Fluss eingeschränkt, undopenfoam.freeboardoderopenfoam.wet_marginmuss erhöht werden. Wasser kann auch durch die Oberseite austreten, während der Wasserspiegel weit darunter bleibt, als Spuren von Wasser, die die Luft von einer verschmierten Oberfläche wegträgt (OpenFOAM-Auswahl).
Die Registerkarte Simulations, Sub-Tab OpenFOAM. (1) Die Kontrollkästchen Use TELEMAC warm-up. Im gezeigten Zustand entscheidet die Fall-Datei, in welcher das Warm-Up standardmäßig aktiviert ist. (2) Build erstellt das OpenFOAM-Modell. (3) Submit startet die Simulation.
In einem Terminal sind die Befehle:
axqua submit <case-file> --kind openfoam-build
axqua submit <case-file> --kind openfoam-run
Führen Sie das Modell vor dem ersten vof Lauf eines neuen Falls einmal im Modus rigid-lid mit einem groben Rechennetz (cell_size_factor 3 bis 5) aus. Dieser Lauf dauert Minuten und zeigt die meisten Setup-Fehler.
Ein neuer Run oder ein neuer Build ersetzt die früheren Ergebnisse. Ein Run beginnt vom Anfangszustand. Bevor es startet, verschiebt aXqua daher die Ergebnisse des früheren Laufs in den Ordner previous-run/ im Ordner des OpenFOAM-Modells: die Zeitordner, die Prozessorordner eines parallelen Laufs, postProcessing/ mit den Abfluss-Records, VTK/, depth-averaged.slf und die Berichte. Ein neuer Build tut dasselbe, weil ein Ergebnis nicht auf einem anderen Rechennetz fortgesetzt werden kann. Nur ein früherer Durchlauf wird beibehalten, und der nächste Durchlauf oder Build ersetzt den Ordner, also kopieren Sie ein Ergebnis, das zuerst an einem anderen Ort aufbewahrt werden soll. Ein Parallellauf, der nicht rekonstruiert wurde, behält sein Ergebnis in den Prozessorordnern. Die vordefinierten Zahlen lesen es von dort, und ParaView liest es mit dem Fall-Typ Decomposed Case.
Das Ergebnis von oben gesehen. Nach einem Lauf summiert aXqua das Wasser jeder Spalte des Rechennetzes und schreibt die Wassertiefe und die Tiefe-gemittelte Geschwindigkeit des letzten Zeitschritts in die Datei depth-averaged.slf im Ordner des OpenFOAM-Modells. Die Datei hat die gleichen Variablen wie ein TELEMAC-Ergebnis. Load results auf dem Unterregister OpenFOAM fügt es der Karte mit den gleichen Stilen wie ein 2D-Ergebnis hinzu, so dass die beiden Modelle direkt verglichen werden können. Das vollständige dreidimensionale Ergebnis wird in ParaView mit der Datei case.foam im selben Ordner geöffnet.
Starten eines feinen Modells von einem groben. Ein dreidimensionales Modell hat oft einen geringeren oder höheren Widerstand als das 2D-Modell, von dem es ausgeht, so dass sich der Wasserstand des gesamten Flussabschnitts anpassen muss. Das dauert Tausende von Sekunden simulierter Zeit, und bei einem feinen Rechennetz kostet das Tage. Es ist schneller, ein grobes Modell den stationären Zustand zuerst Flussabschnitt zu lassen und das feine Modell von seinem Ergebnis zu starten:
Erstellen und Ausführen des Modells mit einem großen
cell_size, zum Beispiel 2 m mit 8 Layer und einem langenend_time. Überprüfen Sie im Bericht, dass Zufluss und Ausfluss zustimmen.Erstellen Sie das feine Modell mit der Option
hotstart, die auf die Dateidepth-averaged.slfdes groben Modells gesetzt ist, und führen Sie es aus. In einem Terminal:axqua submit <case-file> --kind openfoam-build --option hotstart=<folder of the coarse model>/depth-averaged.slf axqua submit <case-file> --kind openfoam-run
Das grobe und das feine Modell benötigen unterschiedliche Ordner. Der Eintrag project.openfoam_dir in der Fall-Datei des groben Modells gibt ihm einen eigenen Ordner, während sich beide Fall-Dateien das TELEMAC-Modell teilen.
Am Beispiel Isar berechnete das Modell mit 2 m Zellen und 8 Layer (56.000 Zellen) 3000 s simulierte Zeit in 2,3 Stunden auf 8 Prozessorkernen. Das Modell mit 1 m Zellen und 14 Schicht (290.000 Zellen) begann mit einem Ergebnis von 1500 s in 9,1 Stunden auf 16 Kernen; sein Ausfluss blieb nach 500 s innerhalb von 1 % des Zuflusses. Beide liefen, während eine andere Simulation die andere Hälfte des Computers verwendete.