aXqua Fall Setup
Ein aXqua Fall ist die vollständige Beschreibung eines freien Oberflächen-Wasserkörpers für eine Modellierungsaufgabe, wie eines Flussabschnitts, eines Sees, eines Stausees oder der Umgebung eines Wasserbauwerks: das Gelände, der Ränder des Modells, die Rauheit des Bettes, die Einstellungen der Simulation und die Feldmessungen für die Kalibrierung. Die Beschreibung wird in einer Fall-Datei gespeichert, deren Name mit .axq-case endet. Alle Simulationsschritte lesen diese Datei, so dass ein 2D-TELEMAC-Modell und ein 3D-OpenFOAM-Modell des gleichen Gewässers die gleiche Eingabe verwenden.
Eine Fall-Datei enthält nichts, was für einen Computer spezifisch ist. Wo die Simulationssoftware installiert ist, wird im Profil des Computers gespeichert (Plugin-Profil). Ein Fallordner kann daher auf einen anderen Computer kopiert oder zusammen mit einer Studie veröffentlicht und dort ohne Änderungen verwendet werden.
Beispiel Fall. Ein kompletter Fall ist verfügbar, um jeden Schritt auszuprobieren, bevor ein eigener Fall eingerichtet wird. Es beschreibt einen geflochtenen Flussabschnitt der Isar von 6,6 ha bei einem Abfluss von 2,4 m3/s, mit einem groben Rechennetz, so dass das Modell in einer Minute gebaut wird und eine stationäre Simulation etwa zwei Minuten dauert. Das Beispiel ist ein Ordner, der die Fall-Datei, die Eingabedaten im Unterordner user-sources/ und eine Anleitung (README.md) enthält, die jeden Schritt vom Build bis zum Laden des Ergebnisses in QGIS erklärt. Der Ordner hat eine Größe von ca. 6 MB. Sein Gelände-Modell ist auf den Umriss des Modells zugeschnitten, was alles ist, was aXqua von einem Gelände-Modell liest. Das Beispiel umfasst die Geschwindigkeits- und Tiefenmessungen von zwei Feldkampagnen an zwei Abflüssen, so dass auch die Kalibrierung und die Validierung ausprobiert werden können.
Auf der Registerkarte Case Setup öffnet Example case… ein Fenster, in dem die verfügbaren Beispiele aufgeführt sind. Wählen Sie den Ordner aus, in dem der Ordner des Beispiels erstellt werden soll, und klicken Sie auf Download. Das Beispiel wird dann zur Liste der Fälle hinzugefügt, und der nächste Schritt ist Build auf der Registerkarte Preprocessing. In einem Terminal macht der folgende Befehl dasselbe:
axqua example get --folder <folder>
Das Beispiel ist nicht Teil des installierten Programms. Es wird aus dem aXqua-Repository auf GitHub heruntergeladen. Ihre Eingabedaten können für beliebige Zwecke wiederverwendet und angepasst werden, sofern aXqua zitiert wird (Creative Commons Attribution 4.0 International License). Die Datei LICENSE.md im Ordner des Beispiels gibt die Begriffe und das Zitat an. Ein Ordner mit dem Namen des bereits vorhandenen Beispiels wird nie überschrieben, da er Ergebnisse enthalten kann. Löschen Sie den Ordner oder wählen Sie einen anderen aus, um das Beispiel erneut herunterzuladen.
Im Plugin. Die Registerkarte Case Setup hat zwei Boxen. Die Box Cases listet die Fälle auf, die das Plugin kennt. New case… erstellt eine Fall-Datei und öffnet ihre Einstellungen, Add case… fügt eine vorhandene Fall-Datei hinzu, Example case… lädt das Beispiel herunter und Remove from list nimmt den aktiven Fall von der Liste, ohne seine Datei zu löschen. Der gewählte Fall ist der aktive, auf den sich alle anderen Tabs beziehen. Das Plugin merkt sich die Liste, wenn QGIS geschlossen ist; es gibt keine separate Projektdatei, da ein Fall das Projekt ist. Eine Projektdatei einer früheren Version (.axqua-prj) kann weiterhin mit Add case… ausgewählt werden, was die von ihr aufgelisteten Fälle hinzufügt.
Das Feld Case settings zeigt die Datei des aktiven Falls an. Open case settings… öffnet die Einstellungen des aktiven Falls in einem eigenen Fenster, und Check untersucht den Fall, ohne das Fenster zu öffnen. Das Fenster zeigt die Einstellungen auf den Seiten, die links in der Reihenfolge der folgenden Unterabschnitte aufgeführt sind: Project settings, Geodata, Liquid boundaries, Initial conditions, Mesh configuration, Wall roughness, Hydraulic simulation, Morphodynamic simulation, TELEMAC, OpenFOAM, Calibration and validation und Post-processing. Eine Seite kann mehrere Frames aufnehmen: Der Austausch mit einem porösen Körper ist ein Frame der Seite Liquid boundaries, das Trocknen dünner Filme ein Frame von Initial conditions, das Gitter des OpenFOAM-Modells ein Frame von Mesh configuration und die Strukturen und Oberflächen von CAD sind Frames von OpenFOAM. Auf jeder Seite zeigt das Fenster die Einstellungen an, die jeder Fall benötigt und alle Einstellungen, die die Fall-Datei bereits enthält. Jede andere Einstellung eines Frames wird mit Add setting… hinzugefügt. Ein Tooltip erklärt jede Einstellung, und ein Frame, dessen Zweck nicht offensichtlich ist, hat eine Schaltfläche.
Erforderliche Einstellungen Sie sind in kräftigem dunkellila geschrieben, der Farbe des aXqua-Symbols. Für einen minimalen Fall sind dies der Name und das Koordinatenbezugssystem, das Gelände Modell, die Modellgrenze, die Zufluss und Ausfluss Linien und die Abfluss plus die Ausfluss Wasserstand während die Ausfluss Bedingung eine feste Ebene ist. Eine Option, die eingeschaltet ist, fügt die Einstellungen hinzu, die sie benötigt: ein instationäre Simulation erfordert den Hydrographen, den Sedimenttransport mit GAIA die Sedimentklassen, Feinsediment über ein Festbett das Korngröße und die Konzentration bei Zufluss und das DGM Differenz das zweite Gelände Modell. Die Seiten TELEMAC, OpenFOAM und Calibration and validation beginnen mit einem Switch (Simulate with TELEMAC, Simulate with OpenFOAM, Calibrate and validate this case). Ein Schalter, der ausgeschaltet ist, lässt den Block aus der Fall Datei und graut seine Einstellungen aus, auch dort, wo sie auf einer anderen Seite angezeigt werden. Eingeschaltet, werden auch die erforderlichen Einstellungen lila. Eine Seite, deren erforderliche Einstellung noch leer ist, wird in der Liste auf der linken Seite markiert, und das Speichern von Berichten für jede leere erforderliche Einstellung.
Die Registerkarte Case Setup (1) Add case… und Example case…. (2) Die Fälle, die das Plugin kennt. Der ausgewählte Fall ist der aktive, auf den sich alle anderen Registerkarten beziehen. (3) Was der aktive Fall mit der Simulationssoftware dieses Computers tun kann. (4) Open case settings… öffnet die Einstellungen des aktiven Falls, und Check untersucht den Fall.
Nichts muss eingegeben werden, das ausgewählt werden kann. Jede Datei hat eine Schaltfläche, die einen Dateidialog öffnet, und die Schaltfläche Layers bietet die Layer, die in QGIS geöffnet sind. Eine Datei in oder in der Nähe des Fall-Ordners wird mit einem Pfad relativ zur Fall-Datei eingegeben, so dass der Fall zusammen mit seinen Daten verschoben werden kann.
Die Fall-Einstellungen mit der Seite Geodata. (1) Die Seiten der Fall-Einstellungen; erforderliche Einstellungen sind fett dunkellila. (2) Eine Datei wird mit der Schaltfläche ... oder mit Layers aus dem Layer ausgewählt, die in QGIS geöffnet sind. (3) Add setting… fügt eine Einstellung des Blocks hinzu, die noch nicht gezeigt wird. (4) Save, Cancel und Exit.
Das Fenster hat rechts unten drei Schaltflächen. Save schreibt die Fall-Datei und überprüft sie, und das Fenster bleibt offen. Cancel verwirft die Änderungen seit dem letzten Speichern und schließt das Fenster. Exit schließt das Fenster und fragt zuerst, ob es Änderungen gibt, die nicht gespeichert wurden. Der Check verhindert niemals das Speichern, da ein Fall unvollständig ist, während er eingerichtet wird. Es markiert jede Einstellung, die nicht in Ordnung ist, mit einem Dreieck, orange für eine Warnung und dunkelrot für einen Fehler und markiert die Seite in der Liste auf der linken Seite. Ein Klick auf ein Dreieck öffnet die Nachricht mit ihrem Heilmittel (Warnmeldungen, Fehlermeldungen). Die Schaltfläche Check auf der Registerkarte Case Setup führt den gleichen Check aus, ohne das Fenster zu öffnen. Help unten links öffnet den Abschnitt dieser Dokumentation, der zu der angezeigten Seite gehört.
Das Speichern aus dem Fenster schreibt die Fall-Datei aus ihren Einstellungen um. Kommentare einer Fall-Datei, die von Hand geschrieben wurde, werden nicht aufbewahrt. Das Original wird als <name>.bak beibehalten, wenn das Fenster das erste Mal speichert.
In einem Texteditor. Die Fall-Datei ist eine Textdatei im YAML-Format. Jeder Block der Datei wird in einem Unterabschnitt unten erläutert. Eine kommentierte Vorlage ist die Fall-Datei case-template.axq-case des Repository; Download raw file auf dieser Seite speichert es. Speichern Sie es im Ordner des neuen Falls und benennen Sie es um. Kopieren Sie stattdessen in eine Kopie des Repositorys (Installieren aus dem Quellcode (Entwicklung)), den Ordner cases/case-template/. Der Befehl axqua check <case-file> meldet alles, was nicht in Ordnung ist.
Fall Dateien früherer aXqua Versionen heißen case-config.yml und können den Speicherort der Simulationssoftware enthalten. Sie werden immer noch gelesen. Der folgende Befehl schreibt eine Fall Datei des aktuellen Typs neben eine solche Datei:
axqua migrate case-config.yml --to-case
Die neue Datei ist nach dem Ordner des Falls benannt. Der Befehl ersetzt keine Fall-Datei dieses Namens, die bereits existiert, da sie möglicherweise bearbeitet wurde, seit sie geschrieben wurde. Um es zu ersetzen, benennen Sie es mit -o <file>. Auf eine Datei angewendet, die bereits eine Fall-Datei des aktuellen Typs ist, schreibt der Befehl diese Datei um und behält die vorherige Version als <name>.bak bei.
Eine minimale Fall-Datei sieht wie folgt aus:
project:
name: my-reach
crs_epsg: 25832
telemac:
solver: telemac2d
n_processors: 4
geodata:
dem_initial: user-sources/geodata/dem.tif
boundary: user-sources/geodata/roi.gpkg
boundaries:
liquid_boundaries: user-sources/geodata/liquid-boundaries.gpkg
prescribed_flowrate: 47.2 # discharge at the inflow [m3/s]
outflow_condition: elevation
prescribed_elevation: 379.5 # water surface elevation at the outflow [m]
Projekteinstellungen
Der project-Block benennt den Fall, definiert sein Koordinatenbezugssystem und gibt an, wo aXqua seine Dateien schreibt.
project:
name: my-reach
crs_epsg: 25832 # metric coordinate reference system (here: ETRS89 / UTM 32N)
sim_dir: axqua-case # folder for everything that aXqua produces
Ein Fall Ordner hat zwei Teile mit unterschiedlichen Rollen. Der Ordner user-sources/ enthält die Eingabedaten, wie Gelände Modelle, Vektor Layer und Messungen. aXqua liest diese Dateien und ändert sie nie. Der Ordner axqua-case/ erhält alles, was aXqua produziert, in einem Unterordner pro Workflowschritt:
my-reach/
my-reach.axq-case the case file
user-sources/ input data (read only)
axqua-case/
preprocessing/ clipped terrain models, compiled measurements
simulation/ the TELEMAC model and its results
openfoam/ the OpenFOAM model and its results
openfoam-sediment/ the fine sediment simulation and its results
postprocessing/ mesh convergence studies, figures
calibration-validation/ input and output of the calibration
Aufgrund dieser Trennung kann ein Fall jederzeit von seinen Eingaben neu erstellt und der Ordner axqua-case/ gelöscht werden, ohne Daten zu verlieren, die nicht reproduziert werden können.
Alle Pfade in der Fall-Datei werden relativ zum Ordner der Fall-Datei interpretiert. crs_epsg muss ein metrisches (projektiertes) Koordinatenbezugssystem sein. Input Layer kann jedes andere Referenzsystem verwenden, da aXqua sie konvertiert, wenn es sie liest.
Geodaten
Der geodata Block listet das Gelände Modell und den Vektor Layer auf, die das Flussabschnitt beschreiben. Die Dateinamen sind kostenlos. Was zählt, ist der Geometrietyp und die Attributfelder jedes Layer.
Eingang |
Geometrie |
Attributfelder |
Zweck |
|---|---|---|---|
|
Raster |
nicht |
Digitales Geländemodell (DGM) der Flusssohle und der Vorländer. |
|
ein Polygon |
nicht |
Untersuchungsgebiet. Das Modell deckt den Bereich innerhalb dieses Polygons ab. |
|
Polygone |
|
Bereiche gleicher Netzauflösung. Der Zonenname muss |
|
eine Linie |
nicht |
Kurs der Hauptgerinne. Rechennetzzellen in der Gerinne werden entlang dieser Linie gestreckt. |
|
Polygone |
|
Bereiche von gleicher Rauheit (Wandrauheit). |
|
Tabelle (CSV) |
|
Rauheitswert jeder Zone. |
|
Polygone oder Linien |
|
Dämme, Wehre, Mauern und Gebäude, die die DGM nicht enthält. |
|
Linien |
ein Namensfeld |
Querprofile an dem das Abfluss nach einer Simulation ausgewertet wird. |
|
Raster |
nicht |
DGM einer späteren Umfrage, für morphodynamische Simulationen (Morphodynamische Simulation). |
Die Zufluss- und Ausflusslinien sind ebenfalls ein Vektor Layer, der zum Ränder (Offene Ränder) gehört.
Der Vektor Layer muss zusammenpassen: Die Rechennetz-Zonen decken die Untersuchungsgebiet ohne Lücken ab, die Zufluss und Ausfluss-Linien liegen auf ihrem Umriss und die Gerinneachse verlaufen innerhalb der Gerinne-Zone. Zeichne das Layer in QGIS auf ein Hügelschatten DGM, das Banken, Schotterstäbe und Strukturen klar zeigt (Processing Toolbox > GDAL > Raster analysis > Hillshade).
Rechennetzzonen, Rauheitszonen, Zuflusslinie und Gerinne Gerinneachse am stromaufwärtigen Ende eines Modells, gezeichnet über einen Hügelschatten der DGM.
Um eine kleine Verfeinerungszone innerhalb einer größeren Zone zu platzieren, schneiden Sie ein Loch derselben Form mit dem QGIS-Tool Add Ring (Advanced Digitizing Toolbar), damit sich die beiden Polygone nicht überlappen.
Strukturen werden als gewöhnliche Merkmale gezeichnet. Eine Linie mit einem Width (m) beschreibt eine Wand oder den Kamm eines Damms. Ein Polygon beschreibt ein Gebäude oder einen Pier. Crest (m) gibt einen horizontalen Kamm in absoluter Höhe und Height (m) gibt einen Kamm in konstanter Höhe über dem Boden. Strukturen, über die Wasser passieren kann (Damm, Wehr, Damm), heben die Flusssohle zum Wappen. Strukturen, die nie überragt werden (Wand, Gebäude, Pier), werden aus dem Strömungsbereich entfernt. Die Unterscheidung ergibt sich aus dem Text im Feld Type.
Für eine morphodynamische Simulation kann aXqua die Höhenänderung zwischen zwei Umfragen selbst aus dem_initial und dem_target (Morphodynamische Simulation) berechnen.
Entworfene Strukturen aus CAD-Zeichnungen. Eine Struktur, die als Konstruktionszeichnung und nicht als Vermessung existiert, wie ein Fischpass oder eine Flume, kann als eine Reihe von STL-Dateien bereitgestellt werden. Der surfaces Block benennt jede Datei und gibt ihre Rolle an. aXqua konvertiert die Dateien in die gewöhnlichen Eingaben eines Falls (einer DGM, des Untersuchungsgebiets, der Zufluss- und Ausflusslinien, Strukturen und Rauheitszonen), so dass für sie keine Einträge unter geodata erforderlich sind.
surfaces:
resolution: 0.05 # [m] cell size of the DEM that is created
scale: 0.001 # the drawing is in millimeters
parts:
- {file: user-sources/cad/bed.stl, role: bed, zone_id: 1, ks: 0.08}
- {file: user-sources/cad/walls.stl, role: wall}
- {file: user-sources/cad/inlet.stl, role: inflow}
- {file: user-sources/cad/outlet.stl, role: outflow}
Die Rollen sind bed (Gelände, mindestens eine Datei), wall (Strukturen, die nie übertroffen werden), inflow und outflow (offene Ränder), roi (Umriss des Modells) und ignore. Eine bed Datei mit einem zone_id und einem ks Wert definiert auch eine Rauheitszone. Der Befehl axqua surface <case-file> führt die Konvertierung alleine durch, so dass das Ergebnis in QGIS inspiziert werden kann, bevor das Modell erstellt wird. Da ein DGM eine Höhe pro Ort speichert, können überhängende Teile einer Zeichnung nicht dargestellt werden. aXqua meldet ihren Anteil. Wählen Sie die resolution fein genug für die dünnste Wand der Struktur.
Offene Ränder
Am offenen Ränder des Modells gibt der Benutzer an, wo Wasser ein- und austritt und wie viel. Für die unterkritische Strömung, die in den meisten Flüssen und in den Ein- und Ausgängen von Seen und Stauseen herrscht, benötigt das Modell den Abfluss am Zufluss und die Wasserspiegellage am Ausfluss. Der Abfluss bestimmt, wie viel Wasser eintritt. Der stromabwärts gelegene Wasserstand bestimmt, wie tief und wie schnell das Wasser das Modell verlässt.
boundaries:
liquid_boundaries: user-sources/geodata/liquid-boundaries.gpkg
prescribed_flowrate: 47.2 # [m3/s]
outflow_condition: elevation # elevation | stage_discharge | free
prescribed_elevation: 379.5 # [m]
liquid_boundaries ist ein Linienlayer mit einer Linie pro Zufluss und pro Ausfluss Querprofil. Ein Attributfeld mit dem Namen Type (inflow/outflow) enthält das Wort inflow oder outflow für jede Zeile. Alle Teile der Modellgrenze, die nicht von einer solchen Linie abgedeckt sind, sind geschlossene Ränder.
outflow_condition wählt aus, wie der nachgelagerte Wasserstand definiert ist:
elevation(Standard)Eine konstante Wasserspiegellage, gegeben von
prescribed_elevation.stage_dischargeDie Wasserspiegellage wird aus einer Abflusskurve für den simulierten Abfluss ausgelesen. Die Kurve ist eine Tabelle mit den Spalten
QundWSE, benannt vonstage_discharge. Wenn keine gemessene Kurve verfügbar ist, schätzt aXqua eine aus der Gerinnebreite, der Bettneigung und der Rauheit an der Ausflusslinie.freeKein Wasserstand ist vorgeschrieben. Diese Wahl eignet sich für einen Ausfluss über einen Tropfen oder ein Wehr.
Für eine Simulation mit einem Abfluss, der in der Zeit variiert, benennt inflow eine Tabelle mit einer Zeitspalte und einer Abflussspalte, und hydrodynamics.regime ist auf unsteady gesetzt; Die Fall-Einstellungen markieren dann den Hydrographen nach Bedarf. Der Austausch mit einem porösen Körper, in dem Wasser die Oberfläche durch einen Schotter verlässt und weiter stromabwärts zurückkehrt (TELEMAC-Entscheidungen), ist ein Rahmen der Seite Liquid boundaries in den Herbst-Einstellungen.
Pegeldaten. Das Skript gauge_data.py des Repositorys ruft Abfluss-Zeitreihen und Abflusskurven des Flusses Pegel ab und speichert sie in dem Format, das aXqua liest. Sie unterstützt den Pegel des Bayerischen Hochwasserinformationsdienstes (HND) und des United States Geological Survey (USGS). Es öffnet sich in einem Webbrowser und erfordert das Paket streamlit (pip install "axqua[gui]"). Speichern Sie es mit Download raw file auf dieser Seite, starten Sie es in dem Ordner, in dem es gespeichert wurde (in einer Kopie des Repositorys: python scripts/gauge_data.py), fügen Sie die Adresse oder die Nummer eines Pegels ein und speichern Sie die beiden Tabellen in user-sources/:
python gauge_data.py
Die exportierte Abfluss-Serie ist die inflow-Tabelle und die exportierte Abflusskurve ist die stage_discharge-Tabelle. Geben Sie die Höhe der Pegel-Null ein, um den Pegel-Wert in eine absolute Wasserspiegellage umzuwandeln, und überprüfen Sie, ob sich diese Höhe und die DGM auf das gleiche Höhensystem beziehen.
Ausgangsbedingungen
Eine Simulation erfordert einen Zustand, von dem aus sie beginnt. Der initialization Block bietet zwei Möglichkeiten.
Trockenstart (Standard). Die Flusssohle ist trocken, bis auf eine kurze Strecke am Zufluss, die mit Wasser in die Tiefe dry_start_depth gefüllt ist (Standard 0,5 m). Der zulaufende Abfluss füllt dann den Flussabschnitt stromaufwärts. Dieser Start erfordert keine Annahme über den Wasserstand, aber das Modell muss die Befüllung des Flussabschnitts simulieren.
Vorbenetzte Gerinne. Wenn prewet_depth gesetzt ist, beginnen die Gerinne-Zonen mit Wasser. aXqua schätzt den Wasserstand bei Querprofile entlang der Gerinneachse für den Abfluss des Falls und füllt die Gerinne auf 70 % dieses Niveaus (prewet_fill). Die geringere Füllung ist vorgesehen: eine Gerinne mit zu wenig Wasser füllt sich innerhalb von Sekunden, während überschüssiges Wasser auf flachem Boden bis zum Ende der Simulation als dünner Film verbleiben kann, da ein 2D-Modell weder Infiltration noch Verdampfung aufweist. Die Netzkonvergenzstudie nutzt den vorbenetzten Start, um Rechenzeit zu sparen.
initialization:
dry_start_depth: 0.5 # [m] water depth of the filled stretch at the inflow
# prewet_depth: 0.5 # [m] activates the pre-wetted start
Trocknung von Dünnfilmen. Auf einem groben Bett fließt Wasser, das dünner ist als das Korn Rauheit, nicht über das Bett: Es steht in den Körnern und fließt in der Natur in den Boden. Ein 2D-Modell hat keinen Boden unter dem Bett, so dass ein solcher Film dort bleibt, wo er ist, und den benetzten Bereich viel größer erscheinen lässt, als er ist. Auf der Isar Fall bedeckt Wasser flacher als 1 cm 13 % der benetzten Fläche und 0,16 % des Wassers. Mit drying.film_infiltration: true entfernt aXqua Wasser, das sowohl flacher als film_depth (Standard 0,01 m) als auch langsamer als film_velocity (Standard 0,005 m / s) ist, und gibt es zurück, wo der poröse Körper Wasser zurückgibt, so dass kein Wasser verloren geht. Die Option erfordert daher den Austausch mit einem porösen Körper (gain_lose). In den Herbst-Einstellungen ist es der Frame Drying of thin films der Seite Initial conditions, dessen Informationen Schaltfläche es erklärt.
Rechennetzkonfiguration
Das Rechennetz teilt das Untersuchungsgebiet in Dreiecke. Kleine Dreiecke lösen den Fluss detaillierter auf, erhöhen aber die Rechenzeit stark. aXqua verwendet daher unterschiedliche Auflösungen in unterschiedlichen Zonen:
channelZonen erhalten Dreiecke, die entlang der Gerinneachse gestreckt sind, weil die Strömung entlang der Gerinne weniger variiert als über sie hinweg;floodplainZonen erhalten größere Dreiecke mit regelmäßiger Form;refinementZonen erhalten kleine Dreiecke mit regelmäßiger Form, beispielsweise um eine Struktur.
Die Kantenlänge jeder Zone wird aus dem Feld Max Edge Length (m) der Rechennetzzone Layer ausgelesen, so dass die Auflösung in QGIS eingestellt ist. Der mesh Block stellt die Werte bereit, die gelten, wenn dieses Feld leer ist:
mesh:
channel_size: 0.5 # [m] edge length across the channel
floodplain_size: 1.5 # [m]
refinement_size: 0.5 # [m]
channel_anisotropy: 4.0 # ratio of the edge length along and across the channel
growth_ratio: 1.2 # largest size ratio of neighboring triangles
Die Standardwerte erzeugen ein feines Rechennetz. Ein Flussabschnitt von 0,3 km2 hat dann mehrere hunderttausend Dreiecke. Verwenden Sie größere Kantenlängen, während Ränder und Rauheit noch überprüft werden, und verfeinern Sie danach. Die Netzkonvergenzstudie bestimmt, welche Auflösung ausreichend ist (Netzkonvergenz).
Ohne Rechennetzzonen und eine Gerinneachse schafft aXqua ein Rechennetz mit einheitlicher Auflösung (default_size).
OpenFOAM-Gitter. Das OpenFOAM-Modell basiert auf einem Gitter von Spalten im Plan mit Layer in der Vertikalen (OpenFOAM-Auswahl). Seine Auflösung wird auf der gleichen Seite der Fall-Einstellungen, im Frame OpenFOAM lattice gesetzt. Mit openfoam.cell_size_factor folgt die Zellgröße des Gitters der Kantenlänge in der Gerinne: 3 macht das Gitter dreimal gröber als das TELEMAC Rechennetz, so dass ein Wechsel des TELEMAC Rechennetzes übergeht. Ohne den Faktor wird openfoam.cell_size so verwendet, wie es ist. openfoam.n_layers ist die Anzahl der Schichten in der Vertikalen.
Wandrauheit
Fließendes Wasser erfährt Reibungskräfte an der Flusssohle und den Ufern. Diese Kräfte hängen von der Rauheit der benetzten Oberflächen ab und bestimmen die Wassertiefe für einen gegebenen Abfluss. Rauheit ist daher der wichtigste Parameter eines Hydraulikmodells, und es ist der Parameter, der normalerweise kalibriert wird.
aXqua beschreibt Rauheit durch das äquivalente Sandrauheit \(k_s\) (in Metern) nach Nikuradse, was eine Länge der Ordnung der groben Körner des Bettes ist. Jedes Polygon des Layer roughness_zones trägt eine ganze Zahl Zone ID, und die Tabelle roughness_table weist jeder ID einen \(k_s\)-Wert zu:
zone_id,ks
1,0.2
2,0.5
In diesem Beispiel ist Zone 1 das Schotterbett der Gerinne und Zone 2 ein bewachsenes Vorland. Der friction-Block enthält die Rauheit der geschlossenen Ränder an der Modellgrenze und die Werte, die ohne Rauheitszonen gelten:
friction:
roughness_law: 5 # 5 = Nikuradse (ks), 4 = Manning (n), 3 = Strickler
boundary_law: 3
boundary_coefficient: 38.0
Die \(k_s\) Werte der Zonen sind Startwerte. Die Kalibrierung passt sie innerhalb der vom Benutzer festgelegten Grenzen an (Kalibrierung und Validierung).
Hydraulische Simulation
Der hydrodynamics-Block steuert die hydraulische Simulation mit TELEMAC. Die meisten Einträge haben Standardwerte, die für Gewässer mit trockenen und nassen Bereichen geeignet sind. Die Einträge, die ein Benutzer normalerweise einstellt, sind:
hydrodynamics:
duration: 7200 # [s] simulated time
turbulence_model: auto # auto, or the number of a TELEMAC turbulence model
flux_tolerance: 1.0e-3 # accepted relative difference of inflow and outflow
duration muss lang genug sein, damit sich der Flussabschnitt füllt und der Fluss stetig wird. Ein stationärer Zustand wird erreicht, wenn derselbe Abfluss das Modell verlässt, das in ihn eintritt. aXqua wertet diesen Saldo nach jedem Lauf aus und vergleicht die relative Differenz mit flux_tolerance. Die Vorgabe von 0,1 % ist weit kleiner als die Unsicherheit einer Abfluss-Messung.
Mit turbulence_model: auto wählt aXqua das Turbulenzmodell aus der Netzauflösung relativ zur Wassertiefe aus. Der Zeitschritt wird während des Laufs automatisch angepasst, so dass die Simulation stabil bleibt (desired_courant).
Die Anzahl der Prozessorkerne ist eine Eigenschaft des Computers und wird in seinem Profil (mpi_processes, Definieren Sie Solver Bindungen) festgelegt. Wo das Profil keine Nummer nennt, gilt telemac.n_processors der Fall-Datei. Die Einstellungen der 3D-Simulation mit OpenFOAM sind in OpenFOAM-Auswahl beschrieben.
Morphodynamische Simulation
Eine morphodynamische Simulation berechnet den Sedimenttransport und die daraus resultierende Veränderung des Bettes (Morphodynamische Simulationen). Die Seite Morphodynamic simulation der Fall-Einstellungen hat drei Frames: Sedimenttransport mit TELEMAC und GAIA (der Block morphodynamics), Feinsediment über einem Festbett mit OpenFOAM (fine_sediment, OpenFOAM Setup) und das DGM der Differenz (dem_of_difference). Der Sedimenttransport mit GAIA wird im morphodynamics-Block aktiviert, der das Sediment beschreibt:
morphodynamics:
enabled: true
bedload: true
suspended_load: false
sediment_classes: # one entry per grain size class
- {diameter: 0.0008, density: 2650, shields: 0.047}
- {diameter: 0.004, density: 2650, shields: 0.047}
active_layer_thickness: 0.1 # [m]
Jede Sedimentklasse wird durch ihren Korndurchmesser (in Metern), ihre Dichte und ihren kritischen Shields-Parameter definiert, der die dimensionslose Scherspannung ist, bei der sich die Körner zu bewegen beginnen.
Die gemessene Flusssohle-Änderung dient als Referenz für die Kalibrierung eines morphodynamischen Modells. Es ist die Differenz von zwei Gelände-Umfragen, die als DGM der Differenz (DoD) bezeichnet wird. Mit dem folgenden Block berechnet aXqua den DoD von geodata.dem_target und geodata.dem_initial:
dem_of_difference:
enabled: true
uncertainty_initial: 0.10 # [m] vertical accuracy of the first survey
uncertainty_target: 0.05 # [m] vertical accuracy of the second survey
confidence_level: 0.95
Höhenänderungen, die kleiner als die kombinierte Unsicherheit der beiden Erhebungen sind, können nicht von Messfehlern unterschieden werden. aXqua entfernt sie aus dem DoD. Der Grenzwert wird als Nachweisgrad bezeichnet und ergibt sich aus den beiden Genauigkeitswerten und dem Konfidenzniveau. Alternativ setzt min_lod das Limit direkt.
Wo die Flusssohle an Ort und Stelle bleibt und sich nur ihr Inhalt von Feinsediment ändert, wird die Simulation stattdessen im fine_sediment-Block definiert. Es nennt die Korngröße des Feinsediments und seine Konzentration im Wasser, das in das Modell eintritt:
fine_sediment:
enabled: true
grain_size: 0.00003 # [m]
inflow_concentration: 0.02 # [kg/m3]
pick_up: off
Diese Simulation wird mit OpenFOAM berechnet. Alle Einträge des Blocks werden in OpenFOAM Setup erklärt.