Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Führen und überprüfen Sie eine Steady 2d Simulation

Neben der SMS 2dm-Datei aus dem Vorverarbeitung mit QGIS tutorial benötigt der numerische Motor von BASEMENT eine Modellkonfigurationsdatei (model.json) und eine Simulationsdatei (simulation.json), die beide automatisch von BASEMENT erstellt werden.

In den folgenden Abschnitten wird beschrieben, wie BASEMENT die gewünschten JSON-Dateien in einem Projektverzeichnis wie C:\Basement\steady2d-tutorial\ (Windows) oder ~/Basement/steady2d-tutorial/ (Linux) erstellt. Daher ist der *erste Schritt, ein Projektverzeichnis (Ordner) zu erstellen.

Place die folgenden Eingabedateien im Projektordner:

Initiieren Sie das Modell

Dieser Abschnitt führt durch das Modell-Setup, das in einer Datei namens model.json gespeichert wird (hier: im Ordner /steady2d-tutorial/). Start BASEMENT und ** Wählen Sie den oben erstellten Ordner ** als Scenario Directory aus (siehe Fig. 1).

basement new project setup launch start

Figure 1:BASEMENT Willkommensbildschirm nach der Auswahl eines Scenario Verzeichnis mit der Save Project Schaltfläche in der oberen rechten Ecke. Die Verzeichnisreferenzen können auf anderen Plattformen unterschiedlich aussehen (z.B. mit "C:/... unter Windows).

Weiter, linksklick auf SETUP, dann Rechtsklick und wählen Add item BASEHPC*. Eine neue Registerkarte namens Define Scenario Parameter öffnet. Im Moment ignorieren Sie die Warn- und Fehlermeldungen (rote Tags) und definieren Sie einen simulation name:

Scrollen Sie zurück zur *top und save the project, um mit den nächsten Abschnitten fortzufahren.

Geometrie und Regionen

Die GEOMETRY-Gruppe im Define Scenario Parameter-Tab sagt das Modell, welches SMS 2dmNetzdatei verwendet und die Definition von Regions- und Flüssigkeitsgrenzeneigenschaften ermöglicht. Dazu die folgenden Einstellungen:

Das im letzten Kapitel erstellte Netz enthält mehrere Regionen, die auch im Modellaufbau definiert werden müssen:

Table 1 fasst die erforderlichen Definitionen der Region zusammen. Mit den definierten Regionen und der Maschendatei sollte die GEOMETRY-Gruppe Fig. 2 ähneln.

Table 1:REGIONDEF items and their definitions to be defined in BASEMENT’s model setup.

REGIONDEF

[0]

[1]

[2]

[3]

[4]

*Index [0]

1

3

ANHANG

** Name**

Flussbett

Block-Rampe

Kroatisch

Flutpla

sand deposit

region mesh file definitions basement

Figure 2:Die GEOMETRY-Gruppe mit REGIONDEFs und die Referenz der höheninterpolierten Mesh-Datei (prepro-tutorial quality-mesh-interp.2dm).

Die liquid (hydraulic) boundaries aus dem vorverarbeitenden Tutorial definieren geographisch inflow und ausfluss-Zeilen mit *stringdef-Attributen, die in die Mesh-Datei integriert sind (prepro-tutorial quality-mesh-interp.2dm) mit Höheninformationen (Elevation). Um die Arten und die Eigenschaften der Flüssigkeitsgrenzen zu kommunizieren, füllen Sie den Abschnitt GEOMETRY:

Wenn Sie die bereitgestellte Liquid-Grenzen formfile zur Erstellung der Mesh-Datei verwendet haben, muss die upstream directionright sein. Figure 3 zeigt die Definition der STRINGDEF-Elemente mit der bereitgestellten Flüssigkeitsgrenzen formfile.

region mesh file definitions basement

Figure 3:Die GEOMETRY-Gruppe mit STRINGDEFs unter Verwendung der bereitgestellten Flüssigkeitsgrenzen formfile im Rechennetz.

Hydraulik

Hydraulische Modellmerkmale, die für den oben definierten Geometrieaufbau gelten, sind in der HYDRAULICS Gruppe des Modellaufbaus von BASEMENT definiert. Dieses Tutorial verwendet das default für INITIAL Bedingungen, das “dry” ist. Auch Behalten Sie den Standard PARAMETERS für *CFL = 0.9, fluid density = 1000.0, max time step = 100.0, minimum water tiefe = 0.01.

Hydraulische Mengen, wie Wassertiefe und Entladung, müssen den oben definierten Flüssigkeitsgrenzen zugeordnet werden, so dass das numerische Modell weiß, wie viel Wasser es durch das Modell laufen muss. Fügen Sie daher die folgenden Randdefinitionen in der HYDRAULICS-Gruppe hinzu:

Figure 4 zeigt die Definitionen von STANDARD BOUNDARY-Elementen in der HYDRAULIC Modell-Setup-Gruppe von BASEMENT.

basement standard hydraulic boundary conditions

Figure 4:Der HYDRAULIC-Eintrag mit BOUNDARY > STANDARD-Definitionen für die stromaufwärts (inflow) und stromabwärts (outflow) Flüssigkeitsmodellgrenzen.

Jede Oberfläche hat Unvollkommenheiten, die Turbulenzen verursachen, wenn Flüssigkeiten wie Wasser über sie fließen. Die durch Oberflächenstörungen verursachten Turbulenzen führen zu verlangsamten Strömungen nahe der Oberfläche. Da das Wasser in Flüssen fast immer sehr nahe an der Erdoberfläche in Form des Flussbettes relativ zu den Unvollkommenheiten eines Flussbettes ist, ist der Einfluss von reibungsinduzierten Turbulenzen beträchtlich. Bei hydrodynamischen Modellen wird die reibungsinduzierte Turbulenz der rauen Oberfläche von Flussbetten durch einen Friction Koeffizient, wie z.B. den Strickler kstk_{st} Koeffizient ** oder* sein inverse-Wert mit Mannings nn* berechnet. Die Übung auf 1d Hydraulik (Manning-Strickler-Formel) im Python Kapitel erklärt beide Rauheitskoeffizienten im Detail. Dieses Tutorial verwendet einen globalen Strickler-Koeffizienten von kstk_{st}=30 (fictive Einheiten von m1/3^{1/3}/s), der die Eigenschaften eines mäandernden Kies-Kiesel-Kiesel-Flussbetts Strickler, 1923 berücksichtigt. Zu diesem Zweck ** Rechtsklick** auf der HYDRAULICS-Gruppe und wählen ** Artikel FRICTION** einfügen. Definieren Sie den neuen FRICTION Artikel mit:

Als nächstes ordnen Sie regionsspezifische Strickler-Werte für die fünf unter Tab. 1:

Table 2:Strickler values for HYDRAULIC FRICTION regions.

Region

Flussbett

Blockrampen

Gravel Banken

Floodplas

Sand

friction

ANHANG

183

KAPITEL

14

region name

Flussbett

Block-Rampe

Kroatisch

Flutpla

sand deposit

Figure 5 zeigt die Definition der hydraulischen FRICTION-Elemente im Modellaufbau von BASEMENT.

basement friction hydraulic boundary conditions strickler

Figure 5:Die HYDRAULICS-Gruppe mit FRICTION-Definitionen für das Modell und seine Regionen.

Physikalische Eigenschaften

Die Definition der Gruppe PHYSICAL PROPERTIES ist für BASEPLANE 2D obligatorisch. Dieses Tutorial verwendet die default physikalischen Eigenschaften (d.h. gravity ist 9.81).

Schreibe Setup Datei

Stellen Sie sicher, dass jede mögliche Warnung oder Fehlermeldung behoben wird und dass das Modell-Setup Fig. 6 ähnelt. Bevor Sie das Projekt exportieren, speichern Sie das Simulations-Setup (klicken Sie auf das Laufwerkssymbol in der oberen rechten Ecke in Fig. 6). Doppel-Check, dass BASEMENT die Dateien korrekt geschrieben hat *model.json, *simulation.json, und results.json im Projektverzeichnis (z.B. /Basement/steady2d-tutorial/). Exportieren Sie das Modell-Setup, indem Sie auf die Schaltfläche **** (unten rechts in Fig. 6) klicken.

basement export model setup h5

Figure 6:The final model setup to export (write) to a setup (*.h5 HDF) file.

Die Registerkarte Console aktiviert automatisch und informiert über den Exportfortschritt. Wenn die *Error-Ausgang-Kanäle nicht leer ist, überprüfen Sie die Fehlermeldungen und beheben Sie die Ursachen.

Setup Simulationsdatei

Nach dem erfolgreichen Export des Modellaufbaus wird das Simulation Band (links unter Fig. 6) zur Einrichtung der *simulation.json Datei im Projektordner zur Verfügung gestellt. Klicken Sie auf das *Simulation Band, um die simulation.json Datei einzurichten:

Die im Abschnitt TIME definierten Werte beziehen sich auf die gleichen Zeiteinheiten wie in der oben genannten und verknüpften steady-inflow.txt-Datei definiert. Figure 7 zeigt BASEMENT mit den Definitionen im Simulationsband.

basement simulation setup

Figure 7:Die Einrichtung des Simulationsbands mit der Definition von fünf Ausgabeparametern und der Simulationszeit.

Laufsimulation (Steady 2d)

Die Simulation kann mit verschiedenen Optionen ausgeführt werden, die vor allem die Rechenzeit beeinflussen (unter Fig. 7).

Zum Starten der Simulation klicken Sie auf die Schaltfläche Run auf der unteren rechten Seite des BASEMENT-Fensters. Je nach Hardware- und Leistungseinstellung (z.B. Anzahl der CPUs) dauert die Simulation des Tutorialmodells etwa 1-10 Minuten. BASEMENT informiert über den Simulationsfortschritt im Rahmen Console Output, bei dem der Error Output-Rahmen leer bleiben soll (siehe Fig. 8). Wenn ein Fehler auftritt, gehen Sie zurück zu den obigen Abschnitten (oder sogar an die mesh generation tutorial), um Fehler zu beheben.

basement simulation end

Figure 8:BASEMENT nach erfolgreicher Simulation.

Export Simulationsergebnisse

Sobald die Simulation erfolgreich abgeschlossen ist, gehen Sie zum BASEMENT *Ergebnisse Band. Finden Sie die RESULTS Gruppe in der Export Simulation Results Tab und:

Save the project (Disk-Symbol in der oberen rechten Ecke) und finden Sie den Export* in Fig. 9. Der Export der Simulationsausgänge an results.xdmf wird im Rahmen Console Output bestätigt.

basement results export

Figure 9:Aufbau des Ergebnisbandes nach einer erfolgreichen Simulation.

Nachbearbeitung mit QGIS

Starten Sie QGIS und erstellen Sie ein neues Projekt oder nutzen Sie das Projekt aus dem Vorverarbeitung mit QGIS tutorial. Speichern Sie das neue Projekt mit (einem anderen) aussagekräftigen Dateinamen im BASEMENT Modellierungsordner (z.B. /Basement/steady2d/postpro-tutorial.qgz*). Aufbau des Projekts ähnlich wie bei der Vorverarbeitung:

Import results.xdmf

Die Simulationsergebnissedatei results.xdmf kann in QGIS als zusätzliche Datenquelle des hochinterpolierten Qualitätsnetzes (prepro-tutorial_quality-mesh-interp.2dm) aus dem Vorverarbeitungs-Tutorial geladen werden:

Figure 10 zeigt einen beispielhaften Aufbau der Ausgangsdateninterpolation auf dem Rechennetz. Um andere Ausgabeparameter und/oder andere Simulations-Zeitschritte zu visualisieren, ändern Sie die Definitionen im Static Dataset Rahmen.

basement assign qgis metadata mesh

Figure 10:Zuordnung von Netzdaten zum Rechennetz.

Um die Visualisierung der Ergebnisse zu verbessern, öffnen Sie die Layer Properties der Netzschicht wieder und gehen Sie zum Symbology Band. Visualisieren Sie einen Simulationsausgangsparameter wie flow velocity, wie folgt:

basement qgis results velocity meshdata

Figure 11:Visualisieren Sie den Flow velocity-Parameter mit den Symbology-Steuerungen. Die roten Boxen markieren relevante Registerkarten und Einträge.

Figure 12 zeigt eine Visualisierung der Strömungsgeschwindigkeit am Ende der Simulation. Die Fließgeschwindigkeitsergebnisse sind auch als Videosequenz verfügbar (download).

plotted qgis basement results flow velocity

Figure 12:Nach Anwendung der obigen Symbology-Einstellungen: Die Strömungsgeschwindigkeit ist in roten Tönen dargestellt.

Raster-Ausgänge

Das Gridded Cell (Raster) Daten-Format ist für viele Post-Processing-Aufgaben wie Landkarte Algebra (z.B. für die Lebensraumanalyse oder die Bewertung von Eindringbereich und Tiefe) nützlich. Zu diesem Zweck bietet QGIS das Rasterize mesh dataset Tool zur Umwandlung von Netzdaten zu jedem Simulationszeitpunkt an eine Raster (z.B. als GeoTIFF). Um das Rasterize mesh dataset Tool zu öffnen, gehen Sie entweder auf Processing** Toolbox oder stellen Sie sicher, dass die View*** Panels**** Processing Toolbox* geprüft wird. In der Processing Toolbox klicken Sie auf die Mesh-Gruppe und klicken Sie auf Rasterize mesh dataset* (siehe auch Fig. 13).

rasterize basement velocity water depth qgis

Figure 13:Öffnen Sie das Rasterize-Mesh-Tool in QGIS’ Processing Toolbox.

Geben Sie folgende Einstellungen im Fenster Rasterize ein (siehe auch Fig. 14):

Nach der erfolgreichen Rasterung schließen Sie das Rasterize Mesh Dataset Fenster mit einem Klick auf die *Close Taste.

setup rasterize mesh geotiff

Figure 14:Einstellungen zum Export von Simulationsergebnissen mit dem Raster-Tool von QGIS.

Um die Visualisierung des neuen (Flow Speed)-Rasters zu verbessern, doppelklicken Sie auf den neuen Raster im Layers-Panel und wechseln Sie auf den Symbology-Tab. Wählen Sie Singleband pseudocolor für Render Typ (im oberen Bereich des Fensters) und eine Color ramp. Um Nullwert-Pixel zu unterdrücken, doppelklicken Sie auf das Color des 0-Value-Feld, und im Select color-Fenster reduzieren Sie das Opacity auf 0%\%*. Figure 15 zeigt ein Beispiel für die Visualisierung des exportierten Strömungsgeschwindigkeitsrasters.

basement output rasterize mesh geotiff visualization singleband pseudocolor

Figure 15:Ein Singleband Pseudocolor (Layer Properties > Symbology) stellt den exportierten GeoTIFF-Durchflussgeschwindigkeitsraster mit einer Reds Farbrampe und Nullwert-Pixel auf Null-Optik dar, überlagert auf Google-Satellitenbild Google, n.d..

Mesh Visualisierung mit Krebs

Das Open-Source-Plugin Crayfish ermöglicht die Visualisierung von Mesh-Werten (z.B. Änderung von Node-Werten im Laufe der Zeit) mit vielen Features, wie zum Beispiel der Export von Video-Animationen von Modellergebnissen. Um ein Video von z.B. die Strömungsgeschwindigkeitsausgänge an den 1+15 Simulationszeitpunkten zu erstellen, verwenden Sie das Crayfish Plugin wie folgt:

Das erste Mal, dass ein Video exportiert wird, erfordert Crayfish die Definition eines *FFmpeg Video-Encoder und führt durch die Installation (falls erforderlich). Folgen Sie den Anweisungen und starten Sie erneut das Video exportieren.

Nachbearbeitung mit ParaView

ParaView ist frei verfügbare Visualisierungssoftware, die die results.xdmf-Datei für wissenschaftliche Zwecke ermöglicht. Downloaden und installieren (erfordert Admin/sudo***-Rechte) die neueste Version von ParaView von der website(falls noch nicht getan).

Import results.xdmf

Öffnen Sie ParaView und klicken Sie auf das Ordnersymbol (links auf dem Fenster unter Fig. 16) um die Simulationsergebnissedatei zu laden (results.xdmf). ParaView kann ein entsprechendes XDMF-Lese-Plugin auswählen: Select XDMF Reader und klicken Sie auf OK. Nun sollte die results.xdmf im Pipeline-Browser sichtbar sein und die Apply-Taste hat sich grün (klicken Sie darauf).

basement results paraview

Figure 16:ParaView nach erfolgreichem Import der Modellergebnisse (results.xdmf).

Parameter visualisieren

ParaView zeigt standardmäßig eine der Ergebnisparameter zum Zeitpunkt 0 (d.h. nackt, trockenes Gelände). Um weitere Parameter zu erkunden, wählen Sie sie im Dropdown-Menü der Menüleiste Aktive Variable Controls (rote Highlight-Box in Fig. 17) aus. Die Menüleiste Active Variable Controls enthält auch Optionen zur Manipulation des Farbbereichs und der Legende. Durch die Zeitschritte schalten Sie die Videosteuerungstasten in der Werkzeugleiste VCR Controls (helle blaue Highlight-Box in Fig. 17).

basement results paraview

Figure 17:Die Active Variable Controls (rote Box) und VCR Controls (leichte blaue Box) in ParaView, um Ausgabeparameter zu verschiedenen Zeitschritten zu visualisieren.

Um ** eine Animation eines Ausgabeparameters* im Laufe der Zeit als Film (z.B. avi) oder Bild (z.B. jpg, png, tiff) zu exportieren, gehen Sie bitte an File** *Save Animation...

Projekt Pipeline speichern

Mit seinem Ansatz von Sequenzen der programmierbaren Filteranwendung speichert ParaView einen Current State im PVSM-Format anstelle eines Projekts wie im QGIS. Der aktuelle Zustand eines Datensatzes in ParaView kann als pvsm-Datei über File** Save State File gespeichert werden. Save der aktuelle Zustand des Tutorial ParaView-Projekts zum Beispiel im Simulationsordner als pv-project.pvsm. Um einen vorhandenen ParaView-Zustand (d.h. Projekt) zu laden, gehen Sie auf File*******Load-Zustand.

Ausfuhrdaten

Ähnlich wie bei QGIS können Ausgabeparameterdatensätze in ParaView extrahiert, manipuliert oder transformiert werden. Zu diesem Zweck können programmierbare Filter an den ursprünglichen Datensatz in ParaView zur Berechnung (d.h. den *Calculatorfilter) angewendet werden, beispielsweise die Froude-Nummer aus den Wassertiefe- und Fließgeschwindigkeitsdatensätzen (weiterlesen in den ParaView Wiki). Dieses Tutorial enthält nur den Export von Netzpunktdaten an eine CSV-Datei mit programmierbaren Filtern:

paraview basement export data

Figure 18:Anwendung des programmierbaren CellCenters-Filters in ParaView, mit dem maximalen Zeitschritt in der aktuellen Zeitsteuerungs-Toolbar (leichte blaue Box).

Nun wurde eine flow velocity.CSVDatei geschrieben, die Punktkoordinaten (x, y und z-Koordinaten) und flow velocity in x (flow velocity:0) und y (flow velocity:1) enthält. Die flow velocity:2 (z-Richtung) ist bei dieser 2d-Simulation immer Null. Die flow velocity.CSV-Datei kann auch mit QGIS verwendet werden (z.B. in QGIS gehen an Layer > Einfügen der Ebene ** > ** Hinzufügen der begrenzten Textebene...* Wählen Sie flow velocity.csv aus, geben Sie die richtigen Spalten und Separatoren > klicken Add).

Python Simulation Verifikation

Die Entwickler von BASEMENT an der ETH Zürich bieten eine Suite von Python scripts zur Nachbearbeitung der Simulationsergebnisse. Für den hier verwendeten BASEMENT v3 laden Sie das Python-Skript BMv3NodestringResults.py herunter, das definierte Ausgabeparameter an der benutzerdefinierten STRINGDEFs exportiert.

Um das Python-Skript auszuführen,install Python für Ihre Plattform zusammen mit den Paketen numpy und h5py.

Für die Ausführung des Python Skripts auf jeder Plattform:

Im Einzelnen sieht dies wie folgt aus:

Windows / conda
Linux / pip

Starten Sie Windows oder Anaconda Prompt und tippen Sie auf (erfordert, dass die conda-Umgebung flussenv installiert ist):

conda activate flussenv
cd C:\Basement\steady2d-tutorial\
python BMv3NodestringResults.py

Figure 19 illustriert die Ausführung BMv3NodestringResults.py auf Windows in Anaconda Prompt.

export nodestring python script basement BMv3NodestringResults

Figure 19:Ein Python Anaconda Prompt Fenster läuft BMv3NodestringResults.py

Durch das Python-Skript werden drei CSVDateien generiert, die Werte an der benutzerdefinierten STRINGDEFs enthalten:

Die vor allem wichtige Datei ist Discharge.csv, aus der ausgelesen werden kann, wenn Zu- und Abfluss in einer stationären Simulation konvergieren (d.h. ** die Simulation stabilisiert*). Eine stetige Simulation, bei der die Summe aller Zuflüsse nicht allen Abflüssen entspricht, muss als fehlerhaft angesehen werden. Ist beispielsweise die Summe der Abflüsse im letzten Zeitschritt kleiner als die Summe der Zuflüsse, so ist die Simulationszeit zu kurz. Das Diagramm in Fig. 20 erstellt Zu- und Abfluss für die Simulationsanordnung dieses Tutorials. Das Diagramm legt nahe, dass das Modell nach dem Zeitschritt 11 Stabilität erreicht (Simulationszeit t11000t \leq 11000). So könnte die Simulationszeit auf t=12000t = 12000 begrenzt werden, aber eine Simulationszeit von t=10000t = 10000 wäre zu kurz.

basement convergence model simulation discharge verification validation

Figure 20:Konvergenz von Zu- und Abfluss an den Modellgrenzen.

** Was als nächstes?**
Die Überprüfung der Modellstabilität stellt nur einen Schritt auf dem Weg zu einem gebrauchsfähigen Modell in der Praxis dar. Bevor ein numerisches Modell zur Simulation von Entscheidungssszenarien verwendet werden kann, muss es mit Messdaten kalibriert und validiert werden (ähnlich TELEMAC hydrodynamics).
References
  1. Strickler, A. (1923). Beiträge zur Frage der Geschwindigkeitsformel und der Rauhigkeitszahlen für Ströme, Kanäle und geschlossene Leitungen [Contributions to the question of the velocity formula and the roughness figures for streams, channels and closed pipes]. Mitteilungen Des Eidgenössischen Amtes Für Wasserwirtschaft, Switzerland, 16, 357.
  2. Google. (nd). Google Satellite Imagery. https://mt1.google.com/vt/lyrs=s&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D