Simulations hydrauliques
Une simulation hydraulique calcule hauteurs d’eau et vitesses d’écoulement pour le débit du cas. aXqua effectue des simulations hydrauliques dans un ordre fixe, du modèle le plus rapide au modèle le plus détaillé, et chaque modèle part du résultat du précédent.
aXqua concept d’échauffement
Au début d’une simulation, on ne sait rien de l’écoulement : le lit de la rivière est sèche, et le modèle doit d’abord remplir le tronçon d’eau jusqu’à ce que l’écoulement soit égal à l’écoulement. Ce remplissage n’a aucun intérêt en soi, mais il consomme du temps de calcul. Plus un modèle est détaillé, plus le remplissage devient coûteux.
aXqua permet donc au modèle le moins cher de faire ce travail. La séquence est :
TELEMAC-2D à sec. Le modèle moyen de profondeur commence sur le lit de la rivière sèche et court jusqu’à ce que le débit soit stable. Cela prend généralement quelques minutes à quelques heures.
TELEMAC-3D (facultatif) Le modèle 3D commence à partir du résultat 2D. Le tronçon est déjà rempli, et seule la distribution verticale de la vitesse doit se développer.
OpenFAM (facultatif) Le modèle OpenFOAM commence par le résultat TELEMAC. La position de la surface libre, la zone mouillée et les vitesses en sont tirées.
L’exécution TELEMAC qui précède une simulation OpenFOAM s’appelle warm-up. Elle a trois effets sur le modèle OpenFOAM : les cellules sous la surface libre commencent à être remplies d’eau mobile, le haut du maillage est placé peu au-dessus de la surface libre de sorte que peu de cellules ne contiennent que de l’air, et le maillage est limité à la partie mouillée du tronçon. Si le cas n’a pas encore de résultat 2D stable, aXqua réalise une simulation TELEMAC grossière à cette fin, ce qui prend environ une minute pour un petit tronçon.
L’échauffement est actif par défaut et ne devrait pas être désactivé. Sans cela, OpenFOAM commence avec un couvercle plat haut au-dessus du terrain, le maillage contient plusieurs fois plus de cellules d’air, et le remplissage du tronçon doit être calculé par le modèle le plus cher. Dans le extension, l’échauffement est le case à cocher Use TELEMAC warm-up sur le sous-tab OpenFOAM de l’onglet Simulations (Ouvrir). Dans le fichier de cas, c’est le paramètre openfoam.pre_run.enabled, qui est activé par défaut.
TELEMAC à sec 2D/3D
A dry run est une simulation qui part d’un lit de la rivière sèche (Conditions initiales).
2D. Après prétraitement, cliquez sur Submit dans la boîte Steady 2D sur l’onglet Simulations > Baseline (Telemac) de la extension. La course apparaît dans la liste tâche ci-dessous les onglets avec ses progrès. Dans un terminal, la commande est :
axqua submit <case-file> --kind steady
L’onglet Simulations, sous-tab Baseline (Telemac). (1) Les sous-tabs de l’onglet Simulations. (2) La boîte Steady 2D avec son état. (3) Submit commence la simulation. (4) Load results ajoute le résultat à la carte. (5) La liste tâche avec l’état et le progrès de chaque tâche.
Lorsque l’exécution est terminée, aXqua évalue si le débit est stable. Il lit le débit à travers chaque frontière ouverte à partir de la sortie de TELEMAC et écrit les fichiers suivants dans axqua-case/simulation/:
Fichier |
Contenu |
|---|---|
|
Débit à travers chaque ouvert frontière pendant le temps simulé. |
|
Différence relative entre l’écoulement et l’écoulement au cours du temps simulé. |
|
Zone humide, divisée en eau courante, films d’eau mince stagnante et flaques isolées. |
|
Surface libre près de la frontière de sortie, avec une note indiquant si le niveau d’eau prescrit digue le débit ou le descend. |
La course est stable lorsque la différence relative entre l’entrée et la sortie reste inférieure à hydrodynamics.flux_tolerance. Si ce n’est pas le cas à la fin de la course, augmentez hydrodynamics.duration et répétez la course. Le rapport de mouillage complète ce critère : une simulation peut avoir des débits équilibrés et encore montrer de l’eau dans des endroits où le vrai tronçon est sec. De grandes zones de film stagnant indiquent généralement un début avec trop d’eau ou un niveau d’eau en aval trop élevé.
Load results ajoute le résultat (r2d.slf) au projet QGIS sous les noms de hauteur d’eau et vitesse d’écoulement couches.
3D. Une simulation TELEMAC-3D nécessite un résultat 2D stable. Dans la boîte Steady 3D sur le même onglet, Build écrit le 3D fichiers de paramètres et Submit commence la course. aXqua détermine le nombre de verticales couches à partir de hauteur d’eau et taille de maille. La construction fournit deux variantes. La variante hydrostatique est plus rapide et est exécutée en premier, pour vérifier que l’entrée et le solde de sortie en 3D aussi bien. La variante non hydrostatique (hydrodyn) résout en outre les accélérations verticales, qui comptent à des changements abrupts du lit. L’option Variant de la boîte sélectionne laquelle des deux Submit commence, et Load results ajoute le résultat moyen de profondeur à la carte. Dans un 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
Le nombre de verticales couches est un choix propre, qui est examiné avec une étude séparée (Vertical convergence onglet). Dans un tronçon peu profond avec une fine maillage, seulement quelques couches se placent sur le hauteur d’eau, et une simulation TELEMAC 3D ajoute alors peu d’informations au résultat 2D.
TELEMAC hotstarts
Un hotstart est une simulation qui se poursuit à partir de l’état final d’une simulation précédente au lieu de commencer à sécher. Le tronçon est alors déjà rempli, ce qui permet d’économiser le temps de remplissage dans chaque course ultérieure.
C’est pas grave. Lorsque la course sèche a atteint un régime permanent, aXqua écrit le fichier de paramètres hotstart2d.cas à côté du modèle. Il continue à partir du résultat de la course à sec avec inchangé conditions aux limites. Le calage utilise ce fichier : chacun de ses nombreux tours change légèrement un paramètre et commence par le régime permanent (Calage et validation).
Démarrage à chaud instable (diversité du débit). Pour simuler une vague d’inondation, entrez une série chronologique débit sous boundaries.inflow (Frontières liquides) et répétez le prétraitement. aXqua écrit ensuite le fichier de paramètres unsteady2d.cas. La course instable commence à partir du résultat stable, de sorte que le tronçon est rempli quand la vague d’inondation arrive. Le débit stable du cas (boundaries.prescribed_flowrate) doit donc égaler la première valeur de la série chronologique. Commencez la course avec Submit sur l’onglet Unsteady 2D, où l’option Run in 3D choisit le modèle 3D, ou dans un terminal:
axqua submit <case-file> --kind unsteady
axqua submit <case-file> --kind unsteady --option mode_3d=true
La durée de la course instable découle des séries chronologiques. Avec l’état de sortie stage_discharge, le niveau d’eau en aval suit la courbe de tarage pendant la vague d’inondation.
Ouvrir
Une simulation OpenFOAM résout le flux en trois dimensions avec la surface libre. Elle est requise lorsque la structure verticale du débit est importante, par exemple dans les structures ou dans un passe-poissons. Les paramètres sont décrits dans Choix OpenFOAM.
Construire. Allez à l’onglet Simulations, sous-tab OpenFOAM. La boîte Free surface (VOF) contient la case à cocher Use TELEMAC warm-up. Tant que le cas À Cocher n’est pas changé, le fichier de cas décide, dans lequel l’échauffement est activé par défaut. Laissez-le inchangé ou coché (aXqua concept d’échauffement) et cliquez sur Build. aXqua exécute l’échauffement si le cas n’a pas encore de résultat 2D stable, crée le maillage et écrit le cas OpenFOAM dans
axqua-case/openfoam/. Avec la boîte nettoyée, le modèle est construit sans résultat TELEMAC, et OpenFOAM doit remplir le lit de la rivière elle-même.Cours. Cliquez sur Submit. La course comporte deux étapes : une première étape courte avec un petit pas de temps, dans lequel s’installe la surface libre, et l’étape principale. L’affichage de progression indique le numéro du Courant (
Co) et le pas de temps (dt). En bonne santé, le pas de temps reste près d’une valeur constante. Un pas de temps qui tombe par ordre de grandeur indique un problème, généralement de l’air qui est accéléré à des vitesses irréalistes.Évaluation. Après la course, aXqua rapporte le débit d’eau à l’entrée et la sortie et compare leur différence relative avec
hydrodynamics.flux_tolerance, qui est le même critère que pour TELEMAC. L’eau qui laisse le modèle à travers son sommet fait partie de cet équilibre et est déclarée comme une part du débit. aXqua indique également si l’eau a atteint le couvercle ou les limites latérales du maillage. Dans ce cas, le maillage a limité le flux, etopenfoam.freeboardouopenfoam.wet_margindoit être augmenté. L’eau peut aussi passer par le haut pendant que la surface libre reste bien en dessous, comme des traces d’eau que l’air transporte loin d’une surface sapée (Choix OpenFOAM).
L’onglet Simulations, sous-tab OpenFOAM. (1) L’onglet case à cocher Use TELEMAC warm-up. Dans l’état affiché, le fichier de cas décide, dans lequel le réchauffement est activé par défaut. (2) Build crée le modèle OpenFOAM. (3) Submit commence la simulation.
Dans un terminal, les commandes sont :
axqua submit <case-file> --kind openfoam-build
axqua submit <case-file> --kind openfoam-run
Avant la première sortie vof d’un nouveau cas, exécutez le modèle une fois en mode rigid-lid avec un gros maillage (cell_size_factor de 3 à 5). Cette exécution prend des minutes et révèle la plupart des erreurs de configuration.
Une nouvelle course ou une nouvelle construction remplace les résultats antérieurs. Une course commence à partir de l’état initial. Avant de commencer, aXqua déplace donc les résultats de l’exécution antérieure dans le dossier previous-run/ dans le dossier du modèle OpenFOAM : le temps dossiers, le processeur dossiers d’une exécution parallèle, postProcessing/ avec les enregistrements débit, VTK/, depth-averaged.slf et les rapports. Une nouvelle construction fait la même chose, car un résultat ne peut pas être poursuivi sur un autre maillage. Une seule sortie antérieure est conservée, et la prochaine sortie ou construction remplace le dossier, alors copiez un résultat qui doit être conservé à une autre place en premier. Un parcours parallèle qui n’a pas été reconstruit conserve son résultat dans le processeur dossiers. Les chiffres prédéfinis le lisent de là, et ParaView le lit avec le type cas Decomposed Case.
Le résultat vu d’en haut. Après une course, aXqua résume l’eau de chaque colonne du maillage et écrit la hauteur d’eau et la vitesse moyenne en profondeur du dernier pas de temps dans le fichier depth-averaged.slf dans le dossier du modèle OpenFOAM. Le fichier a les mêmes variables qu’un résultat TELEMAC. Load results sur le sous-tab OpenFOAM l’ajoute à la carte avec les mêmes styles qu’un résultat 2D, afin que les deux modèles puissent être comparés directement. Le résultat complet en trois dimensions est ouvert dans ParaView avec le fichier case.foam dans le même dossier.
Démarrer un modèle fin à partir d’un modèle grossier. Un modèle à trois dimensions a souvent une résistance inférieure ou supérieure au modèle 2D qu’il commence, de sorte que le niveau d’eau de l’ensemble tronçon doit s’ajuster. Cela prend des milliers de secondes de temps simulé, et sur un beau maillage, cela coûte des jours. Il est plus rapide de laisser un modèle grossier tronçon le régime permanent d’abord et de commencer le modèle fin de son résultat :
Construire et exécuter le modèle avec un grand
cell_size, par exemple 2 m avec 8 couches, et un longend_time. Vérifiez dans le rapport que les entrées et sorties sont d’accord.Construisez le modèle fin avec l’option
hotstartdéfinie au fichierdepth-averaged.slfdu modèle grossier, et exécutez-le. Dans un 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
Le modèle grossier et fin a besoin de différents dossiers. L’entrée project.openfoam_dir dans le fichier de cas du modèle grossier lui donne son propre dossier, tandis que les deux fichiers de cas partagent le modèle TELEMAC.
Sur l’exemple d’Isar, le modèle avec 2 m de cellules et 8 couches (56 000 cellules) a calculé 3000 s de temps simulé en 2,3 heures sur 8 cœurs de processeur. Le modèle avec 1 m de cellules et 14 couches (290 000 cellules) a commencé à partir de son résultat calculé 1500 s en 9,1 heures sur 16 carottes ; sa sortie est restée à moins de 1 % de l’entrée après 500 s. Les deux ont couru tandis qu’une autre simulation utilisait l’autre moitié de l’ordinateur.