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.

Exécuter et vérifier une simulation 2d stable

En plus du fichier SMS 2dm du tutoriel Prétraitement avec QGIS, le moteur numérique de BASEMENT a besoin d’un fichier de configuration de modèle (model.json) et d’un fichier de simulation (simulation.json), qui sont tous deux créés automatiquement par BASEMENT.

Les sections suivantes décrivent comment créer les fichiers requis JSON dans un répertoire de projets comme C:\Basement\steady2d-tutorial\ (Windows) ou ~/Basement/steady2d-tutorial/ (Linux). Par conséquent, la première étape ** est de créer un répertoire de projet (dossier)**.

Placer les fichiers d’entrée suivants dans le dossier du projet**:

Lancer le modèle

Cette section guide la configuration du modèle, qui est enregistrée dans un fichier appelé model.json (ici: dans le dossier /steady2d-tutorial/). Commencez BASE et choisissez le dossier créé ci-dessus en tant que répertoire ** de scénarios** (voir Fig. 1).

basement new project setup launch start

Figure 1:Écran de bienvenue de BASE après avoir sélectionné un répertoire Scenario avec le bouton Save Project dans le coin supérieur droit. Les références de répertoire peuvent sembler différentes sur d’autres plateformes (par exemple, commencer par "C:/... sur Windows).

Ensuite, left-click sur SETUP, puis right-click et sélectionnez Ajouter l’élément BASEHPC. Un nouvel onglet appelé Définir les paramètres du scénario s’ouvre. Pour le moment, ignorez les messages d’avertissement et d’erreur (balises rouges) et définissez un simulation name:

Retourner au sommet**, et enregistrer le projet, pour procéder aux sections suivantes.

Géométrie et régions

Le groupe GEOMETRY dans l’onglet Définir les paramètres du scénario indique le modèle, qui SMS 2dm fichier maillage à utiliser et permet la définition des propriétés de la région et des limites liquides. À cette fin, effectuez les réglages suivants :

Le maillage créé dans le dernier chapitre contient plusieurs régions, qui doivent également être définies dans la configuration du modèle:

Table 1 résume les définitions de la région requise. Avec les régions et le fichier maillé défini, le groupe GEOMETRY devrait ressembler à Fig. 2.

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

REGIONDEF

[0]

Annexe

[2]

[3]

Annexe

index [0]

1

2

3

4

5

Nom

lit de rivière

block ramp

banc de gravier

plaine inondable

Dépôt de sable

region mesh file definitions basement

Figure 2:Le groupe GEOMETRY avec REGIONDEFs et la référence au fichier mesh interpolé en hauteur (prepro-tutorial quality-mesh-interp.2dm).

Les liquid (hydraulic) boundaries du tutoriel pré-traitement définissent géographiquement lignes d’entrée et de sortie avec stringdef attributs qui sont incorporés dans le fichier de maille (prepro-tutorial quality-mesh-interp.2dm) avec des informations de hauteur (élévation). Pour communiquer les types et les propriétés des limites du liquide, remplissez la section GEOMETRY :

Si vous avez utilisé le liquid limits shapefile pour créer le fichier mesh, le upstream direction doit être right. Figure 3 montre la définition des éléments STRINGDEF en utilisant le fichier shapefile des limites liquides fourni.

region mesh file definitions basement

Figure 3:Le groupe GEOMETRY avec STRINGDEFs utilisant le fichier de bords liquides fourni dans le maillage de calcul.

Hydraulique

Les caractéristiques du modèle hydraulique qui s’appliquent à la configuration géométrique ci-dessus sont définies dans le groupe HYDRAULICS de la configuration du modèle de BASE. Ce tutoriel utilise les conditions default pour INITIAL, qui est “dry”. Aussi Gardez les PARAMETERS par défaut pour CFL = 0.9, fluid density = 1000.0, max time step = 100.0, et minimum water profond = 0.01.

Les quantités hydrauliques, telles que la profondeur et le rejet de l’eau, doivent être affectées aux limites de liquide définies ci-dessus afin que le modèle numérique sache combien d’eau il doit faire circuler à travers le modèle. Par conséquent, ajouter les définitions de limites suivantes dans le groupe HYDRAULICS:

Figure 4 montre les définitions des éléments STANDARD BOUNDARY dans le groupe de configuration du modèle HYDRAULIQUE de BASE.

basement standard hydraulic boundary conditions

Figure 4:L’entrée HYDRAULIQUE avec les définitions BOUNDARY > STANDARD pour les limites du modèle liquide en amont (entrée) et en aval (sortie).

Chaque surface présente des imperfections qui provoquent des turbulences lorsque des fluides comme l’eau s’écoulent dessus. Les turbulences causées par les imperfections de surface entraînent des débits décélérés près de la surface. Comme l’eau dans les rivières est presque toujours très proche de la surface de la Terre sous la forme du lit de la rivière par rapport aux imperfections d’un lit de la rivière, l’influence de la turbulence induite par la friction est considérable. Dans les modèles hydrodynamiques, la turbulence induite par les frottements de la surface rugueuse des lits fluviaux est expliquée par un coefficient friction, tel que le coefficient Strickler kstk_{st} ou sa valeur inverse appelée Manning nn. L’exercice sur 1d Hydraulique (formule Manning-Strickler) dans le chapitre Python explique les deux coefficients de rugosité en détail. Ce tutoriel utilise un coefficient de Strickler global de kstk_{st}=30 (unités fonctionnelles de m1/3^{1/3}/s), qui explique les caractéristiques d’une rivière de gravier-cobble en méandre Strickler, 1923. À cette fin, droite-cliquez sur le groupe HYDRAULICS et sélectionnez Ajouter l’article FRICTION. Définir le nouvel élément FRICTION avec :

Ensuite, assignez des valeurs Strickler propres à une région pour les cinq régions définies à Tab. 1:

Table 2:Strickler values for HYDRAULIC FRICTION regions.

Région

Rivière

Rampes de blocs

Banques de gravier

Plaines inondables

Sable

Friction

34

18

24

14

39

nom de la région

lit de rivière

block ramp

banc de gravier

plaine inondable

Dépôt de sable

Figure 5 montre la définition des éléments de FRICTION hydraulique dans la configuration du modèle de BASE.

basement friction hydraulic boundary conditions strickler

Figure 5:Le groupe HYDRAULICS avec des définitions FRICTION pour le modèle et ses régions.

Propriétés physiques

La définition du groupe PHYSICAL PROPERTIES est obligatoire pour BASEPLANDE 2D. Ce tutoriel utilise les propriétés physiques default (c.-à-d. gravity est 9.81).

Écrire le fichier de configuration

Assurez-vous que tout message d’avertissement ou d’erreur potentiel est résolu et que la configuration du modèle ressemble à Fig. 6. Avant d’exporter le projet, enregistrez la configuration de simulation (cliquez sur le symbole du disque dans le coin supérieur droit de Fig. 6). Vérifiez que Basement a correctement écrit les fichiers model.json, simulation.json et results.json dans le répertoire du projet (par exemple, /Basement/steady2d-tutorial/). Exportez la configuration du modèle en cliquant sur le bouton Write (coin inférieur droit dans Fig. 6).

basement export model setup h5

Figure 6:La configuration finale du modèle pour exporter (écrire) vers un fichier de configuration (*.h5 HDF).

L’onglet Console active automatiquement et informe sur les progrès d’exportation. Si la toile Error Output n’est pas vide, vérifiez les messages d’erreur et dépannez les causes.

Configuration du fichier de simulation

Après l’exportation réussie de la configuration du modèle, le ruban Simulation (à gauche dans Fig. 6) devient disponible pour la configuration du fichier simulation.json dans le dossier du projet. Cliquez sur le ruban Simulation pour configurer le fichier simulation.json :

Les valeurs définies dans la section TIME se rapportent aux mêmes unités de temps que celles définies dans le fichier steady-inflow.txt téléchargé et relié ci-dessus. Figure 7 montre BASE avec les définitions dans le ruban Simulation.

basement simulation setup

Figure 7:La configuration du ruban Simulation avec la définition de cinq paramètres de sortie et le temps de simulation.

Exécuter la simulation (Steady 2d)

La simulation peut être exécutée avec différentes options qui affectent principalement le temps de calcul (en bas de Fig. 7).

Pour démarrer la simulation, cliquez sur le bouton Run en bas à droite de la fenêtre BASE. Selon les paramètres matériels et de performance (p. ex. nombre de processeurs), la simulation du modèle de tutoriel dure environ 1-10 minutes. La base informe sur l’état d’avancement de la simulation dans le cadre Console Output, où le cadre Error Output doit rester vide (voir Fig. 8). En cas d’erreur, retournez aux sections ci-dessus (ou même à mesh generation tutorial) pour corriger les erreurs.

basement simulation end

Figure 8:BASE après simulation réussie.

Résultats de simulation d’exportation

Une fois la simulation terminée, allez au ruban Résultats de BASEMENT. Trouvez le groupe RESULTS dans l’onglet Export Simulation Results et :

Enregistrez le projet (symbole disque dans le coin supérieur droit) et trouvez le Export indiqué dans Fig. 9. L’exportation des sorties de simulation vers results.xdmf sera confirmée dans le cadre Console Output.

basement results export

Figure 9:Configuration du ruban Résultats après une simulation réussie.

Post-traitement avec QGIS

Commencez le QGIS et créez un nouveau projet ou réutilisez le projet à partir du tutoriel Prétraitement avec QGIS. Enregistrer le nouveau projet avec (un nom de fichier différent) significatif dans le dossier de modélisation de BASE (par exemple, /Basement/steady2d/postpro-tutorial.qgz). Mettre en place le projet de la même manière que dans le prétraitement:

Importer résultats.xdmf

Le fichier de résultats de simulation results.xdmf peut être chargé dans le QGIS comme source de données supplémentaire du maillage de qualité interpolé en hauteur (prepro-tutorial_quality-mesh-interp.2dm) à partir du tutoriel de prétraitement :

Figure 10 montre une configuration exemplaire de l’interpolation des données de sortie sur le maillage de calcul. Pour visualiser d’autres paramètres de sortie et/ou d’autres temps de simulation, varier les définitions dans le cadre Static Dataset.

basement assign qgis metadata mesh

Figure 10:Attribuer les données du maillage au maillage de calcul.

Pour améliorer la visualisation des résultats, rouvrez le Layer Properties de la couche de maille et allez au ruban Symbology. Visualisez un paramètre de sortie de simulation, comme flow velocity, comme suit:

basement qgis results velocity meshdata

Figure 11:Visualisez le paramètre flow velocity avec les commandes Symbology. Les cases rouges mettent en évidence les onglets et les entrées pertinents.

Figure 12 illustre une visualisation de la vitesse d’écoulement à la fin de la simulation. Les résultats de vitesse de flux sont également disponibles en séquence vidéo (download).

plotted qgis basement results flow velocity

Figure 12:Après application des paramètres Symbologie ci-dessus: La vitesse d’écoulement est illustrée par des nuances rouges.

Rasterize les sorties

Le format Données sur les cellules broyées est utile pour de nombreuses tâches post-traitement telles que l’algèbre cartographique (p. ex. pour l’analyse de l’habitat ou l’évaluation de la zone d’inondation et de la profondeur). À cette fin, QGIS fournit l’outil Rasterize mesh dataset pour convertir les données mesh à n’importe quel moment de simulation en Raster (par exemple, GeoTIFF). Pour ouvrir l’outil Rasterize mesh dataset, allez à Processing > Toolbox ou assurez-vous que le View > Panels > Processing Toolbox est coché. Dans la Processing Toolbox, cliquez sur le groupe Mesh et double-cliquez sur Rasterize mesh dataset (voir aussi Fig. 13).

rasterize basement velocity water depth qgis

Figure 13:Ouvrez l’outil Rasterize mesh dans la boîte à outils de traitement de QGIS.

Faites les réglages suivants dans la fenêtre Rasterize (voir aussi Fig. 14):

Après la rastérisation réussie, fermez la fenêtre Rasterize Mesh Dataset en cliquant sur le bouton Fermer.

setup rasterize mesh geotiff

Figure 14:Paramètres pour exporter les résultats de simulation avec l’outil Rasterize de QGIS.

Pour améliorer la visualisation du nouveau raster (vitesse de débit), double-cliquez sur le nouveau raster dans le panneau Layers et passez à l’onglet Symbologie. Sélectionnez Singleband pseudocolor pour Type de rendu (dans la région supérieure de la fenêtre) et une rampe de couleur**. Pour supprimer les pixels zéro valeur, double-cliquez sur le Color du champ 0-Value, et dans la fenêtre Sélectionner la couleur réduire l’opacité** à 0%\%. Figure 15 montre un exemple de visualisation de la vitesse d’écoulement exportée.

basement output rasterize mesh geotiff visualization singleband pseudocolor

Figure 15:Un pseudocolore à bande unique (Propriétés de la layer > Symbologie) représente le raster de vitesse de flux GeoTIFF exporté avec une rampe de couleur Reds et des pixels de valeur zéro réglés à zéro-opacité, superpositionnés sur l’imagerie satellite google Google, n.d..

Mesh Visualisation avec Crayfish

Le plugin open-source Crayfish permet de visualiser les valeurs de maillage (p. ex., changement des valeurs de nœuds au fil du temps) avec de nombreuses fonctionnalités, comme l’exportation d’animations vidéo des résultats du modèle. Pour créer une vidéo de, par exemple, les sorties de vitesse de débit aux temps de simulation 1+15, utilisez le plugin Crayfish comme suit:

Pour la première fois qu’une vidéo est exportée, Crayfish devra définir un encodeur vidéo FFmpeg et guider l’installation (si nécessaire). Suivez les instructions et recommencez à exporter la vidéo.

Post-traitement avec ParaView

ParaView est un logiciel de visualisation librement disponible, qui permet de tracer et de traiter le fichier results.xdmf à des fins scientifiques. Téléchargez et installez la dernière version de ParaView depuis leur site Web (si ce n’est pas encore fait).

Importer résultats.xdmf

Ouvrez ParaView et cliquez sur l’icône du dossier (en haut à gauche de la fenêtre indiquée à Fig. 16) pour charger le fichier de résultats de simulation (results.xdmf). ParaView peut demander de choisir un plugin XDMF approprié: Sélectionnez XDMF Reader et cliquez sur OK. Maintenant, le results.xdmf devrait être visible dans le navigateur Pipeline et le bouton Apply est devenu vert (cliquez dessus).

basement results paraview

Figure 16:ParaView après l’importation réussie des résultats du modèle (results.xdmf).

Visualiser les paramètres

ParaView affiche par défaut un des paramètres de résultat à l’étape 0 (c.-à-d. terrain nu et sec). Pour explorer d’autres paramètres, sélectionnez-les dans le menu déroulant de la barre de menu Commandes variables actives (boîte rouge de surlignement à Fig. 17). La barre de menu Active Variable Controls contient également des options pour manipuler la gamme de couleurs et la légende. Passez par les temps en utilisant les boutons de contrôle vidéo de la barre d’outils VCR Controls (boîte de surlignement bleu clair dans Fig. 17).

basement results paraview

Figure 17:Les commandes variables actives (boîte rouge) et VCR (boîte bleu clair) dans ParaView pour visualiser les paramètres de sortie à différents moments.

Pour exporter une animation d’un paramètre de sortie au fil du temps comme film (par exemple, avi) ou image (par exemple, jpg, png, tiff) aller à Fichier > Enregistrer l’animation....

Enregistrer le pipeline du projet

Avec son approche des séquences d’applications de filtres programmables, ParaView enregistre un État actuel au format PVSM plutôt qu’un projet comme dans QGIS. L’état actuel d’un ensemble de données dans ParaView peut être enregistré sous forme de fichier pvsm via Fichier > Enregistrer le fichier d’État. Enregistrer l’état actuel du projet de tutoriel ParaView, par exemple, dans le dossier de simulation sous pv-project.pvsm. Pour charger un état ParaView existant (c.-à-d., projet), allez à Fichier > État de charge.

Données sur l’exportation

Similaire à QGIS, les ensembles de paramètres de sortie peuvent être extraits, manipulés ou transformés dans ParaView. À cette fin, des filtres programmables peuvent être appliqués à l’ensemble de données d’origine dans ParaView pour calculer (c.-à-d., appliquer le filtre Calculateur ), par exemple, le numéro Froude à partir des ensembles de données sur la profondeur d’eau et la vitesse d’écoulement (lire davantage dans le ParaView Wiki). Ce tutoriel ne comporte que l’exportation de données maillage vers un fichier CSV avec des filtres programmables :

paraview basement export data

Figure 18:Application du filtre programmable CellCenters dans ParaView, avec l’étape de temps maximale définie dans la barre d’outils Current Time Controls (boîte bleue claire).

Maintenant, un fichier flow velocity.CSV contient des coordonnées point (coordonnées x, y et z) et flow velocity dans les directions x (flow velocity:0) et y (flow velocity:1). La direction flow velocity:2 (z-direction) est toujours nulle dans cette simulation 2d. Le fichier flow velocity.CSV peut également être utilisé avec QGIS (par exemple, dans QGIS allez à Layer > Ajouter un calque > Ajouter un calque de texte délimité... > sélectionner flow velocity.csv, attribuer les colonnes et séparateurs corrects > cliquer Ajouter).

Vérification de simulation de Python

Les développeurs de BASE à l’ETH Zurich fournissent une suite de scripts Python pour le traitement des résultats de simulation. Pour l’utilisation ici, utilisez BASE v3, téléchargez le script Python BMv3NodestringResults.py, qui exporte des paramètres de sortie définis à l’utilisateur défini STRINGDEFs.

Pour exécuter le script Python, install Python pour votre plateforme ainsi que les paquets numpy et h5py.

Pour exécuter le script Python sur n’importe quelle plateforme :

En détail, ceci se présente comme suit :

Windows / conda
Linux / pip

Lancez Windows ou Anaconda Prompt et tapez (exige que l’environnement conda flussenv soit installé) :

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

Figure 19 illustre l’exécution BMv3NodestringRésultats.py sur Windows dans Anaconda Prompt.

export nodestring python script basement BMv3NodestringResults

Figure 19:Une fenêtre Python Anaconda Prompt sous BMv3NodestringRésultats.py

Exécuter le script Python génère trois fichiers CSV qui contiennent des valeurs à l’utilisateur-défini STRINGDEFs:

Le fichier principalement important est Discharge.csv, à partir duquel on peut lire lorsque l’écoulement et l’écoulement convergent dans une simulation à l’état d’équilibre (c.-à-d. la simulation se stabilise). Une simulation régulière dans laquelle la somme de tous les apports ne correspond pas à toutes les sorties doit être considérée comme erronée. Par exemple, si la somme des sorties dans la dernière étape est inférieure à la somme des entrées, le temps de simulation est trop court. Le diagramme dans Fig. 20 trace l’entrée et la sortie pour la configuration de simulation de ce tutoriel. Le diagramme suggère que le modèle atteint la stabilité après l’étape 11 (temps de simulation t11000t \leq 11000). Ainsi, le temps de simulation pourrait être limité à t=12000t = 12000, mais un temps de simulation de t=10000t = 10000 serait trop court.

basement convergence model simulation discharge verification validation

Figure 20:Convergence des entrées et sorties aux limites du modèle.

Et ensuite?
La vérification de la stabilité du modèle ne représente qu’une étape sur la voie d’un modèle utilisable en pratique. Avant qu’un modèle numérique puisse être utilisé pour simuler des scénarios décisionnels, il doit être étalonné et validé avec des données de mesure (semblable à 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