1. Description générale

Le code THYRSIS (Transport HYdrogéologique Rapide Simulé en Insaturé et Saturé) permet la simulation, sur différents sites prédéfinis, de l’écoulement et du transport hydrogéologique, en milieux poreux non saturé et saturé, de substances radiologiques ou chimiques injectées en différentes zones.

Il se présente sous la forme d’un plugin du logiciel QGIS, de sorte qu’il intègre toutes les fonctionnalités de ce SIG (Système d’Information Géographique).

La modélisation repose sur une décomposition en colonnes 1D non saturées couplées à un modèle de nappe libre 2D horizontal. Le modèle d’écoulement de nappe libre horizontal peut être importé ou créé directement avec THYRSIS, qui inclut le mailleur GMSH [Geuzaine2009] et une procédure d’inversion [Renard2008] , [Renard2016] .

Les simulations 1D et 2D sont réalisées à l’aide d’un code extérieur d’écoulement et transport en milieu poreux. Différents codes peuvent être connectés à THYRSIS et deux codes sont aujourd’hui implémentés :

THYRSIS peut prendre en compte plusieurs types d’injection (flux, concentration ou masse), et plusieurs zones d’injection, en surface ou en profondeur, ainsi qu’une injection diffuse sur tout le domaine modélisé. L’injection peut aussi être réalisée directement dans la nappe, sans prise en compte de la zone non saturée.

THYRSIS inclut le traitement des incertitudes par Hypercube Latin. En attribuant des lois de probabilités aux paramètres du modèle, l’utilisateur peut générer plusieurs simulations avec différents jeux de paramètres, et THYRSIS fournit les statistiques élémentaires : moyenne, écart-type et intervalles de confiance, ainsi que des cartes de probabilité de dépassement de seuil.

Le plugin permet une parallélisation des calculs par protocole MPI, aussi bien pour la simulation de plusieurs colonnes non saturées que pour les calculs d’incertitudes avec plusieurs jeux de paramètres.

La modélisation chimique est limitée à la prise en compte d’une limite de solubilité, permettant de définir le flux de soluté en surface, et d’un coefficient de rétention, ayant l’effet de ralentir le transport du soluté. Il n’est pas tenu compte de la spéciation du composé en solution, ni de sa complexation avec les matières organiques de type substances humiques, ni d’interactions complexes avec la matrice rocheuse.

Le plugin THYRSIS permet également de simuler l’écoulement et le transport en « double milieu », selon la formulation de Gerke & Van Genuchten [Gerke1993] (mais aujourd’hui uniquement à l’aide du code METIS).

THYRSIS est intégré à QGIS de sorte que l’utilisateur peut définir de manière interactive les zones d’injection et leurs caractéristiques et les paramètres des simulations, lancer les simulations et visualiser les résultats, soit directement en 2D dans la fenêtre standard de QGIS, soit en 3D dans une fenêtre ancrable spécifique, soit en 1D pour générer les bilans de masse et des courbes de résultats en fonction du temps, avec comparaison à des mesures éventuelles. Une autre fenêtre ancrable est dédiée à la représentation des colonnes verticales de la zone non saturée.

Le plugin s’appuie sur des bases de données Spatialite, qui stockent ausi bien les caractéristiques des modèles hydrogéologiques des différents sites étudiés que les paramètres de simulation.


2. Installation

2.1. Installation du plugin

2.1.1. Sur Windows

Note

Pour utiliser THYRSIS sur Windows avec OPENFOAM , WSL (Windows subsystem linux) est nécessaire et doit être installé avant THYRSIS. Pour ce faire, ouvrir une console PowerShell en mode administrateur et entrer la commande suivante :

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all

Redémarrer l’ordinateur, ré-ouvrir une console PowerShell en mode administrateur et utiliser :

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all

Rédémarrer à nouveau l’ordinateur et mettre à jour WSL vers la version 2 en installant l’exécutable disponible ci-dessous :

Vérifier l’installation en utilisant la commande wsl dans la console PowerShell, et définir la version 2 par défault en utilisant la commande suivante :

wsl --set-default-version 2

Le système est prêt à installer THYRSIS sur Windows.

Pour installer THYRSIS sur Windows, utiliser l’installateur OSGeo4W. Lancer l’exécutable et choisir l’installation avancée.

_images/osgeo4w_1.png

Suivre les instructions jusqu’à ce que l’installateur demande de sélectionner un site miroir pour télécharger les paquets et ajouter le lien suivant :

Sélectionner le dépôt avant de cliquer sur suivant.

_images/osgeo4w_2.png

Chercher thyrsis parmi les paquets disponibles, et cliquer sur Skip pour activer l’installation de THYRSIS (la version du paquet s’affiche).

_images/osgeo4w_3.png

Cliquer ensuite sur Suivant pour lancer l’installation.

2.1.2. Sur Linux

2.2. Logiciels de simulation

Les simulations 1D et 2D sont réalisées à l’aide d’un code extérieur d’écoulement et transport en milieu poreux. Différents codes peuvent être connectés à THYRSIS et deux codes sont aujourd’hui implémentés :

  • OPENFOAM, avec la boîte à outils (opensource) porousMultiphaseFOAM [Horgue2015a], [Horgue2015b]. Suivre les instructions détaillées sur le site officiel . Ne pas oublier d’actualiser les variables d’environnment grâce au fichier /opt/openfoam7/etc/bashrc. Installer ensuite l’extension porousMultiphaseFoam et vérifier que l’exécutable groundwaterFoam est accessible via la variable $PATH afin de déterminer si l’installation est fonctionnelle.

  • METIS (Modélisation des Écoulements et des Transports avec Interaction en milieu Saturé), développé à l’Ecole des Mines de Paris [Goblet1989]. L’exécutable metis doit être accessible via la variable d’environnement $PATH.

Le logiciel de simulation peut être choisi en utilisant le panneau Préférences dans QGIS.

2.3. Installation des bases de données

Pour fonctionner, le plugin s’appuie sur un certain nombre de bases de données Spatialite, organisées comme suit au sein du dossier .thyrsis situé au niveau du dossier utilisateur :

  • une base de données Spatialite sites.sqlite, contenant les caractéristiques des sites modélisés, les données mesurées sur ces sites, ainsi que les paramètres des simulations sauvegardées.

  • un répertoire mesh, contenant les bases de données Spatialite associées à chaque modèle hydrogéologique, et dénommées :

    • SITE désigne le nom du site - référencé dans la base sites.sqlite,

    • MODELE désigne le nom du modèle - un modèle étant la combinaison d’un maillage et de champs ou paramètres hydrogéologiques,

L’installation du plugin THYRSIS ajoute un menu Thyrsis dans la barre de menu de QGIS, qui donne accès aux diverses fonctionnalités du plugin. Ces fonctionnalités sont présentées au chapitre Interface, en commençant par le menu Préférences, qui permet de définir un certain nombre de paramètres de configuration.


3. Tutoriel

Ce tutoriel explique à partir d’un exemple comment créer un nouveau modèle hydrogéologique et comment créer et exploiter une nouvelle étude.

Les données du tutoriel peuvent être trouvées dans le répertoire thyrsis/tutorial_data.

Un modèle hydrogéologique est associé à un site et à la combinaison d’une maillage et de données scalaires et spatiales.

Le site peut être caractérisé par des points d’intérêt, des mesures et la description de forages.

3.1. Création d’un maillage

3.1.1. Projet maillage

La première étape consiste à créer un projet maillage, lequel sera utilisé pour le calcul d’écoulement et transport 2D saturé.

Si THYRSIS est activé, un menu Thyrsis doit apparaître dans la barre de menu principale de QGIS. Pour créer un projet maillage, cliquer sur : Thyrsis>Nouveau>Maillage… (Figure 3.1.1).

_images/tutorial_newmesh.png

Figure 3.1.1 Création d’un nouveau maillage

Note

THYRSIS crée le projet maillage à partir de la projection courante. Changer celle-ci dans QGIS pour être certain d’utiliser la bonne projection. Dans ce tutoriel, toutes les données sont projetées en EPSG: 27572 (Lambert II Etendu)

Le chemin du répertoire stockant la base de données maillage doit être renseigné. Le répertoire ~/.thyrsis/mesh est celui dans lequel devra être placée la base de données créée pour pouvoir être utilisée dans THYRSIS ultérieurement, mais il est conseillé de choisir un autre emplacement pour la mise au point du modèle. La base de données doit être nommée SITE_MODELE.mesh.sqlite, où :

  • SITE désigne le nom du site - créé et sauvegardé dans la base sites.sqlite, s’il n’existe pas déjà,

  • MODELE désigne le nom du modèle - un modèle étant la combinaison d’un maillage et de champs ou paramètres hydrogéologiques.

Ici la base est dénommée SACLAY_TUTORIEL pour indiquer que le maillage est basé sur le site de SACLAY et qu’il s’agit du modèle TUTORIEL. THYRSIS crée également le projet QGIS (fichier .qgs). A l’issue de cette étape le répertoire de maillage doit ressembler à la Figure 3.1.2.

_images/tutorial_meshdirectory.png

Figure 3.1.2 Répertoire maillage

Avoir une couche de fond peut être utile pour localiser l’environnement voisin du project. Le fond de carte OpenStreetMap peut être ajouté grâce au menu d’exploration des couches de QGIS (Figure 3.1.3).

_images/tutorial_osmlayer.png

Figure 3.1.3 Canevas QGIS avec couche OSM

Il est possible d’ajouter une couche de rivière, qui sera utile pour délimiter la zone du projet. Pour le tutoriel, un fichier river.gpkg est fourni. Cliquer sur Couche>Ajouter une couche>Ajouter une couche vecteur et ajouter la couche de rivière (Figure 3.1.4).

_images/tutorial_addVectorLayer.png

Figure 3.1.4 Ajouter une couche vecteur

Pour finir, deux rasters sont nécessaires pour la création du maillage :

  • un modèle numérique de terrain (MNT), nommé mnt.tif

  • un raster fournissant l’altitude du mur de l’aquifère, dénommé mur.tif

Pour les ajouter, cliquer sur Couche>Ajouter une couche>Ajouter une couche raster.

Il est recommandé de placer le fond cartographique et les couches raster sous les autres couches et d’ajouter de la transparence dans les propriétés des couches raster. Le canevas de la carte doit ressembler à la Figure 3.1.5.

_images/tutorial_mntlayer.png

Figure 3.1.5 Canevas QGIS avec couche MNT

Ne pas oublier de sauvegarder le projet (CTRL + S ou cliquer sur Projet>Sauvegarder)

3.1.2. Maillage

L’étape suivante est la création du maillage 2D.

La couche contours doit être définie en premier. C’est une couche de polylignes avec les attributs suivants :

  • groupe : nom du groupe auquel le contour appartient,

  • nom : nom du contour,

  • longueur_element : longueur caractéristique qui définit la densité du maillage dans le voisinage du contour,

  • potentiel_impose : champ égal à 1 si le contour considéré est à potentiel imposé, égal à NULL ou 0 sinon.

warning Pour créer les contours, activer l”accrochage dans QGIS, et sélectionner l’option couche active seulement. Ceci est nécessaire afin de créer des contours formant des ensembles clos.

_images/tutorial_snapping.png

Figure 3.1.6 Activer l’accrochage

Ensuite sélectionner la couche de contours, cliquer sur le bouton d’édition (Figure 3.1.7),

_images/tutorial_editing.png

Figure 3.1.7 Édition de la couche contours

et activer l’outil Ajouter une entité linéaire (Figure 3.1.8).

_images/tutorial_addLineFeature.png

Figure 3.1.8 Ajouter une polyligne dans la couche contours

Pour le tutoriel, nous voulons créer un maillage sur le Plateau de Saclay. Nous recommandons de créer 4 contours :

  • un contour au nord le long de la rivière,

  • un contour à l’est entre les deux rivières,

  • un contour au sud le long de la rivière,

  • un contour à l’ouest perpendiculaire aux rivières nord et sud.

Tous les contours doivent se trouver dans l’étendue des couches du MNT et du mur. À chaque validation d’un contour, la fenêtre de la Figure 3.1.9 s’ouvre.

_images/tutorial_contoursAttributes.png

Figure 3.1.9 Attributs de la couche contours

Le champ longueur_element doit être renseigné et le champ potentiel_impose doit être égal à 1 si le contour correspond à une condition limite à potentiel imposé.

Des contours imbriqués peuvent être créés de manière à définir des zones avec différentes densités de maillage.

QGIS ne permet pas l’accrochage d’une entité sur elle même lors de la création de l’entité. Pour définir un contour fermé d’un seul tenant, créer un contour presque fermé, renseigner la longueur élémentaire puis utiliser l’outil de noeud pour déplacer le dernier point sur le premier (avec accrochage).

Enregistrer la couche contours. THYRSIS remplit alors la couche domaines avec les polygones définis par la couche contours.

L’absence de polygone créé dans la couche domaines est généralement lié à des erreurs topologiques, aucun contour fermé n’ayant été trouvé.

Le canevas devrait ressembler à l’image de la Figure 3.1.10, avec des attributs de contours similaires.

_images/tutorial_contoursCanvas.png

Figure 3.1.10 Canevas QGIS après validation de la couche contours

Pour créer le maillage, cliquer sur le bouton Maillage (Figure 3.1.11) dans la barre d’outils de THYRSIS.

_images/tutorial_meshButton.png

Figure 3.1.11 Bouton maillage

La fenêtre de la Figure 3.1.12 s’ouvre.

_images/tutorial_meshDialog.png

Figure 3.1.12 Dialogue de maillage

Verifier les couches et lancer la création du maillage. Les couches noeuds and mailles sont actualisées et les couches altitude et altitude_mur sont ajoutées.

Le canevas QGIS de la Figure 3.1.13 doit être obtenu.

_images/tutorial_meshResult.png

Figure 3.1.13 Canevas QGIS avec le résultat du maillage


3.2. Création d’un modèle

3.2.1. Paramètres du modèle

La définition du modèle commence en renseignant les valeurs des paramètres scalaires de la table parametres (Figure 3.2.1).

_images/parametersTable.png

Figure 3.2.1 Table parametres à renseigner.

Ces paramètres sont caractéristiques du site et pourront être modifiés ultérieurement dans le cadre de chaque étude. Ils sont définis comme suit :

  • WC, porosité cinématique,

  • VGA, Alpha van Genuchten (m^{-1}),

  • VGN, n van Genuchten,

  • VGR, Saturation résiduelle,

  • VGS, Saturation maximale,

  • VGE, Pression d’entrée (m),

  • WT, Porosité totale,

  • VM, Masse volumique (kg/m³),

  • DK, Coefficient de partage (m³/kg),

  • SL, Limite de solubilité (kg/m³),

  • DLZNS, Dispersivité longitudinale ZNS (m),

  • DLZS, Dispersivité longitudinale ZS (m),

  • WM, Porosité matrice

Puis le champ de perméabilité doit être défini en cliquant sur le bouton inversion qui propose 3 choix :

  • Créer un modèle avec une valeur constante de perméabilité : cela crée un modèle hydrogéologique fondé sur un champ de perméabilité uniforme, dont la valeur doit être renseignée dans le dialogue,

  • Créer un modèle à partir d’un champ de perméabilité donné : cela crée un modèle hydrogéologique fondé sur un champ de perméabilité fourni sous la forme d’un fichier externe .tif, qui doit être sélectionné dans le dialogue,

  • Créer un modèle par inversion : cela lance le processus d’inversion, fondé sur des mesures de niveau piézométrique, cf. Inversion.

3.2.2. Inversion

3.2.2.1. Points pilotes

Commencer par spécifier les points pilotes dans la couche points_pilote, en indiquant obligatoirement leur zone d’appartenance et le niveau piézométrique mesuré (altitude_piezo_mesuree). Les zones doivent être numérotées à partir de 1 et sans trou. Plusieurs points pilotes peuvent appartenir à une même zone.

La couche points_pilote contient les champs suivants :

  • OGC_FID : identifiant unique

  • nom : nom du point pilote,

  • groupe : groupe du point pilote, utilisé pour le graphique de corrélation,

  • zone : zone d’appartenance du point pilote, regroupant les points pilotes avec perméabilité similaire

  • altitude_piezo_mesuree : niveau piézométrique mesuré (m), à renseigner avant l’inversion

  • altitude_piezo_calculee : niveau piézométrique calculé (m), valeur mise à jour par le calcul d’inversion

  • difference_calcul_mesure: différence entre les niveaux piézométriques calculé et mesuré (m), valeur mise à jour par le calcul d’inversion

  • permeabilite : perméabilité calculée (m/s)

Note

Les quatre attributs nom, groupe, zone et altitude_piezo_mesuree doivent être renseignés, les autres sont calculés durant le processus d’inversion.

Il est possible d’importer des fichiers texte (menu QGIS Couche>Ajouter une couche>Ajouter une couche de texte délimité) et de procéder par copier-coller entre la couche importée et la couche points_pilote. Afin de faciliter le copier-coller, il est conseillé de nommer les colonnes du fichier importé selon les noms utilisés dans la table points_pilote (nom, zone, altitude_piezo_mesuree).

Un fichier point_pilote.csv est fourni, qui peut être ouvert en utilisant Couche>Ajouter une couche>Ajouter une couche de texte délimité (Figure 3.2.2).

_images/tutorial_addTextDelimited.png

Figure 3.2.2 Chargement du fichier point_pilote.csv avec Ajouter une couche de texte délimité

Le formulaire QGIS doit être renseigné en sélectionnant les colonnes contenant les coordonnées X et Y (Figure 3.2.3).

_images/tutorial_textDelimitedDialog.png

Figure 3.2.3 Sélection des colonnes des coordonnées X et Y dans le dialogue de texte délimité

La couche points_pilote peut être renseignée par copier/coller depuis la couche csv chargée. Seules les colonnes ayant le même nom que celles de la couche points_pilote peuvent être copiées.

Pour finir, la table d’attribut de la couche points_pilote devrait ressembler à la Figure 3.2.4.

_images/tutorial_pilotPointsAttributes.png

Figure 3.2.4 Table d’attribut de la couche points_pilote

3.2.2.2. Paramètres d’inversion

Le processus d’inversion dépend de paramètres stockés dans la table hynverse_parametres :

  • infiltration : valeur de l’infiltration moyenne annuelle en m/s. Si l’infiltration est hétérogène, indiquer une valeur nulle et fournir un fichier u_infiltration.node.sat or u_infiltration.elem.sat .

  • icalc : type de calcul (3 par défaut),

  • niter : nombre d’itérations (20 par défaut, mais des valeurs plus élevées sont souvent nécessaires pour une bonne convergence),

  • errlim : valeur objectif du critère d’erreur : le calcul s’interrompt lorsque l’erreur est inférieure à errlim (0.1 m par défaut),

  • alfmin : valeur minimale du paramètre \alpha : le calcul s’interrompt lorsque \alpha devient inférieur à alfmin (10^{-5} par défaut),

  • alfa : valeur initiale du paramètre \alpha (0,5 par défaut),

  • terr : valeur initiale du taux d’accroissement maximal admissible de l’erreur (1.2 par défaut) : si le taux d’accroissement de l’erreur est supérieur à ce taux, la dernière itération n’est pas prise en compte et une nouvelle itération est réalisée, en diminuant le paramètre \alpha d’un facteur 2. Cette procédure peut être renouvelée un nombre de fois inférieur ou égal à nessaismax (voir ci-dessous),

  • nessaismax : nombre maximal d’itérations possibles en réduisant le paramètre \alpha d’un facteur 2 (10 par défaut),

  • permini : valeur initiale de la perméabilité (2.10^{-5} par défaut),

  • permin : valeur minimale de la perméabilité (2.10^{-7} par défaut),

  • permax : valeur maximale de la perméabilité (2.10^{-4} par défaut),

  • nv_npp : nombre de noeuds les plus proches des points pilotes, pour le calcul du potentiel aux points pilotes (4 par défaut),

  • nv_ppm : nombre de points pilotes les plus proches des centres de mailles, pour le calcul du champ de perméabilité aux mailles (10 par défaut),

  • dv_pp : rayon (en mètres) autour des points pilotes pour lisser la perméabilité par moyenne mobile (300 m par défaut),

  • d_mesh : distance minimale d’un centre de maille à un noeud à potentiel imposé, pour ajouter le centre de maille comme point pilote (dans le cas d’un potentiel de référence externe) (100 m par défaut).

Pour changer ces paramètres, sélectionner la couche hynvers_parametres et cliquer sur le bouton d’édition, puis ouvrir la table attributaire (Figure 3.2.5).

_images/tutorial_hynverseParameters.png

Figure 3.2.5 Ouverture de la table attributaire de la couche hynverse_parametres

La valeur d’infiltration est ici de 4.75 10^{-9} (écrire 4.75e-09 dans la table attributaire).

3.2.2.3. Calcul

L’inversion est lancée en cliquant sur le bouton Modèle (Figure 3.2.6).

_images/tutorial_modelButton.png

Figure 3.2.6 Bouton Modèle

et en sélectionnant Créer un modèle par inversion dans le dialogue (Figure 3.2.7).

_images/modelDialog.png

Figure 3.2.7 Dialogue du bouton Modèle

Plusieurs couches sont créées :

  • potentiel_reference : potentiel de référence, si un potentiel de référence externe a été spécifié,

  • potentiel : niveau piézométrique calculé (m),

  • epaisseur_zs : épaisseur de la nappe (zone saturée) (m),

  • epaisseur_zns : épaisseur de la zone non saturée (m),

  • permeabilite_x : perméabilité selon x (m/s)

  • v_norme : norme de la vitesse de Darcy (m/s),

Durant le procesus d’inversion, la couche permeabilite_x est mise à jour à chaque itération. Les graphiques montrant la convergence sont également mis à jour (Figure 3.2.8).

_images/tutorial_inversionCanvas.png

Figure 3.2.8 Canevas QGIS avec graphiques permettant de suivre l’inversion

Le graphique supérieur montre l’erreur moyenne entre les niveaux piézométriques mesurés et calculés. Le graphique inférieur montre la corrélation entre ces valeurs.

Pour finir, sauvegarder le projet maillage en cliquant sur Projet>Sauvegarder ou en utilisant Ctrl + S


3.3. Radionucléides

THYRSIS tient compte de la décroissance radioactive et de l’activité spécifique des radionucléides. La décroissance radioactive est utilisée dans les simulations de transport et l’activité spécifique est utilisée pour convertir les concentrations en activités.

Ces valeurs sont lues dans la table elements_chimiques, qui peut être remplie à l’aide de la commande :

python -m thyrsis.database.load_chemicals radionuclides.csv

Le fichier radionuclides.csv est fourni dans le répertoire thyrsis/tutorial_data. C’est un fichier csv avec séparateur « ; », contenant les colonnes ordonnées suivantes : « nom », « période », « masse atomique », « décroissance radioactive », « activité spécifique », « limite de qualité des eaux », « numéro atomique », « nombre de masse ».


3.4. Caractéristiques du site

Les sites peuvent être décrits en ajoutant des points d’intérêt, des mesures de potentiel ou de concentration, et des logs stratigraphiques de forages.

3.4.1. Points d’intérêt

Il est intéressant de définir des points d’intérêt, qui peuvent être intégrés dans la table points_interet et la couche points_interet. Les résultats de simulation aux points d’intérêt sont automatiquement enregistrés dans des fichiers texte pour une possible réutilisation ultérieure.

Les points d’intérêt peuvent être chargés dans la base sites.sqlite à l’aide de la commande :

python -m thyrsis.database.load_points site srid points_file [group]

où :

  • site désigne le nom du site (str),

  • srid désigne le système de projection EPSG (entier),

  • points_file désigne un fichier texte avec trois colonnes séparées par des blancs, et sur chaque ligne les trois valeurs : abscisse x, ordonnée y et nom du point,

  • groupe est une chaîne de caractères optionnelle définissant un ensemble de points (comme « calcul » (défaut), « forage », « cheminée », etc.)

Note

  • La première ligne du fichier n’est pas lue.

  • Seuls les points du groupe « calcul » sont retenus dans les fichiers de résultats.

3.4.2. Mesures

Les mesures de concentration ou de potentiel peuvent être associées aux points d’intérêt de manière à les afficher en même temps que les résultats de simulation.

Les mesures peuvent être chargées dans la base sites.sqlite à l’aide de la commande :

- for potential :
    python -m thyrsis.database.load_measure [-d] site potPoint.dat
- for concentration :
    python -m thyrsis.database.load_measure [-d] site chemical unit concPoint.dat

où :

  • site désigne le nom du site (str),

  • potPoint.dat est un fichier contenant les mesures de potentiel au point “Point”,

  • concPoint.dat est un fichier contenant les mesures de concentration au point “Point”,

  • chemical est un élément chimique de la table elements_chimiques (str),

  • unit est l’unité de concentration (str),

  • L’option -d permet de supprimer les mesures déjà enregistrées.

potPoint.dat et concPoint.dat sont des fichiers texte avec des séparateurs blancs et le format :

dd/mm/YYYY[ HH:MM[:SS]] value[ uncertainty]

3.4.3. Forages

Les forages et les données de stratigraphie et de fracturation peuvent être chargés dans la base sites.sqlite à l’aide de la commande :

python -m thyrsis.database.load_forages site srid forages.csv stratigraphie.csv [fracturation.csv]

où :

  • site désigne le nom du site (str),

  • srid désigne le système de projection EPSG (entier),

  • forages.csv est un fichier csv avec séparateur « ; » et les colonnes ordonnées suivantes :

    • « NomComplet », « Nom », « X_m », « Y_m », « Z_m », « HauteurTube_m », « AltitudeTube_m », « Profondeur_m », « DateForage », « Type », « Localisation »,

  • stratigraphie.csv est un fichier csv avec séparateur « ; » et les colonnes ordonnées suivantes :

    • « Nom », « De », « À », « LithologieId », « LithologieDescription », « FormationId », « FormationDescription »,

  • fracturation.csv est un fichier csv avec séparateur « ; » et les colonnes ordonnées suivantes :

    • « Nom », »De », »À », »FracturationTaux »,

Note

  • Les noms de colonne ne sont pas lus et peuvent ête différents mais l’ordre des colonnes doit être strictement respecté,

  • « RockId » fait référence au code de figuré USGS, cf. Logs stratigraphiques ,

  • « FormationId » fait référence à la codification CGMW, cf. Logs stratigraphiques .

Des exemples de fichiers forages.csv et stratigraphie.csv sont fournis avec le tutoriel, associés au site « SACLAY » et au srid 27572.

Les forages sont alors accessibles dans le projet via le bouton forage. En cliquant sur ce bouton et en sélectionnant un forage dans le canevas QGIS, un log stratigraphique s’affiche dans l’onglet Forage (Figure 3.4.1).

_images/Thyrsis_Forage.png

Figure 3.4.1 Exemple de log stratigraphique


3.5. Création d’une étude

Une étude est créée à partir d’un modèle et décrit une ou plusieurs injections à la surface du sol, au sein de la zone insaturée ou directement dans la nappe. Une infiltration transitoire peut être modélisée.

3.5.1. Base de calcul

Une nouvelle étude est créée en utilisant le menu Thyrsis, en sélectionnant le menu Nouveau puis le nom du modèle créé précédemment (Figure 3.5.1).

_images/tutorial_newStudy.png

Figure 3.5.1 Création d’une nouvelle étude

Un nom de projet doit être choisi, ainsi qu’un répertoire d’étude, où sera créée la base de calcul et où seront sauvés tous les résultats.

THYRSIS crée un nouveau projet QGIS et le charge (Figure 3.5.2).

_images/tutorial_newStudyCanvas.png

Figure 3.5.2 Canevas QGIS à la création d’une nouvelle étude

Le modèle est chargé dans QGIS et un nouvel onglet est ouvert sur la gauche.

3.5.2. Paramètres de simulation

L’étude utilise les paramètres par défaut associés au modèle hydrogéologique (cf. Paramètres du modèle) mais ces paramètres peuvent être modifiés, soit directement dans la table attributaire parametres, soit en sélectionnant le menu Hypercube Latin (Thyrsis>Créer>Hypercube Latin), qui peut aussi être utilisé pour générer plusieurs ensembles de paramètres, dans le cadre de calculs d’incertitude. Pour chaque paramètre, une valeur de référence, une valeur minimale et maximale ainsi qu’une loi de probabilité doivent être définies.

Pour le tutoriel, nous proposons les valeurs de paramètres de la Figure 3.5.3.

_images/tutorial_parameters.png

Figure 3.5.3 Définition des paramètres pour une nouvelle étude

3.5.3. Injection

Les Caractéristiques de l’injection sont définies dans l” Onglet Thyrsis, décrit dans le manuel utilisateur.

Pour ce tutoriel, un flux de HTO est défini en une unique zone d’injection.

Le choix de HTO s’effectue via le menu déroulant Elément chimique.

L’injection est définie en cliquant sur le bouton Flux (Figure 3.5.4).

_images/tutorial_injectionButtons.png

Figure 3.5.4 Boutons d’injection

et en renseignant le formulaire avec les valeurs suivantes :

  • Début : 01/01/2012

  • Duration : 0.00021 year (peut aussi être défini en mois ou en jours)

  • Flux : 9.8 10^{-9} (entrer 9.8e-9)

  • Surface : 59 (ou utiliser le crayon pour dessiner la zone sur la carte)

  • Localisation : utiliser le bouton {\odot} et cliquer sur la carte pour définir le centre de l’injection

  • Profondeur : 0

  • Volume d’eau : 0

Ensuite, cliquer sur le bouton Enregistrer : la zone d’injection a été ajoutée à la couche d’injection.

3.5.4. Simulation et résultats

Pour lancer la simulation, cliquer sur le bouton run_simulation. Après le calcul, une couche resultats est ajoutée au canevas.

L’onglet ZNS s’ouvre avec les concentrations simulées représentées dans une colonne 1D (Figure 3.5.5).

_images/tutorial_ZNStab.png

Figure 3.5.5 Onglet ZNS

La barre de contrôle des dates (Figure 3.5.6) et celle des résultats (Figure 3.5.7) de la barre de menu THYRSIS sont mis à jour :

  • la barre de contrôle des dates contient les dates de simulation,

  • la barre de contrôle des résultats et le menu déroulant des unités sont mis à jour avec les informations des variables simulées.

_images/tutorial_timeControlBar.png

Figure 3.5.6 Barre de contrôle des dates

_images/tutorial_resultControlBar.png

Figure 3.5.7 Barre de contrôle des résultats

Les résultats sont affichés dans le canevas (Figure 3.5.8) et dans une fenêtre 1D (Figure 3.5.9) à chaque date de simulation, via le menu déroulant des dates ou en utilisant les flèches de la barre de menu.

_images/tutorial_resultCanvas.png

Figure 3.5.8 Canevas QGIS avec le résultat de la simulation

_images/tutorial_1D.png

Figure 3.5.9 Graphique 1D

à chaque date de simulation via le menu déroulant des dates ou en utilisant les flèches de la barre de menu.

De plus, un canevas 3D permet de visualiser les résultats en 3D (Figure 3.5.10).

_images/tutorial_3D.png

Figure 3.5.10 Graphique 3D

Note

La scène 3D peut être configurée à partir du menu de paramètres 3D. Pour projeter le fond Open Street Map sur la scène 3D, ajouter la couche au canevas de QGIS et cocher la case Texture.


4. Manuel utilisateur

4.1. Modélisation

La modélisation de l’écoulement et du transport hydrogéologique qui sous-tend le code THYRSIS, est le couplage d’un modèle d’écoulement et transport verticaux en zone non saturée et d’un modèle d’écoulement et transport horizontaux en zone saturée, eux-mêmes fondés sur un champ d’écoulement en régime permanent, construit indépendamment, pour chaque site étudié.

Ce champ d’écoulement peut être importé dans THYRSIS à partir de calculs réalisés indépendamment, ou bien élaboré à l’aide du plugin, en créant un maillage 2D avec le mailleur GMSH [Geuzaine2009] et en déterminant les différentes grandeurs caractéristiques de l’écoulement avec la procédure d’inversion HYNVERSE [Renard2008], [Renard2016].

4.1.1. Écoulement de la nappe en régime permanent

L’écoulement de la nappe en régime permanent doit être préalablement défini, car il est utilisé pour les calculs d’écoulement transitoire et de transport en zone saturée, mais aussi pour construire les simulations d’écoulement et transport verticaux en zone non saturée, notamment pour déterminer, en chaque zone d’injection :

  • les épaisseurs de colonne non saturée,

  • la perméabilité à saturation de chaque colonne.

L’écoulemen de la nappe en régime permanent est un calcul 2D dont les paramètres sont :

  • l’infiltration, constante en régime permanent, mais pas nécessairement homogène,

  • l’épaisseur de nappe, variable sur tout le domaine modélisé,

  • le champ de perméabilité.

Les sorties du calcul sont :

  • le champ de potentiel, ou champ piézométrique, i.e. l’altitude du toit de la nappe dans le cas d’une nappe libre.

  • le champ des vitesses de Darcy.

En outre, c’est le même maillage qui est utilisé pour l’écoulement et le transport en zone saturée.

Toutes ces informations sont stockées dans des bases de données Spatialite.

L’élaboration du modèle d’écoulement de la nappe en régime permanent est une phase longue et complexe de la modélisation hydrogéologique. Le modèle est construit en exploitant un grand nombre de données concernant la géologie (extension verticale de l’aquifère, par détermination du son niveau imperméable), la topographie, la météorologie (détermination de l’infiltration) et l’hydrogéologie. Ces données sont obtenues par étude bibliographique et analyse des forages réalisés sur le site et aux environs, le domaine à modéliser s’étendant souvent bien au delà des limites du site étudié. La détermination du champ de perméabilité est particulièrement difficile, et repose le plus souvent sur des techniques d’inversion, alliant géostatistique et optimisation (code HYNVERSE [Renard2008], [Renard2016]).

4.1.2. Écoulement de la nappe en régime transitoire

Le modèle d’écoulement de la nappe en régime transitoire est fondé sur le modèle élaboré en régime permanent, en y ajoutant une valeur d’emmagasinement, égale à la porosité efficace dans le cas d’une nappe libre.

Une simulation d’écoulement en régime transitoire requiert la connaissance de la variation de l’infiltration dans le temps, qui est fournie sous forme d’un fichier externe, selon une syntaxe adaptée (cf. Fichiers utilisateur).

4.1.3. Écoulement et transport en zone non saturée

La modélisation de la zone non saturée est fondée sur la construction de colonnes verticales 1D. Le nombre de colonnes est égal au nombre de zones d’injection, et leur épaisseur s’obtient par différence entre la topographie et la piézométrie en régime permanent.

L’écoulement est régi par l’équation de Richards, associée à la formulation de Van Genuchten [Genuchten1980], dans sa version modifiée par [Ippisch2006] :

S_{e}=\begin{cases}
\frac{1}{S_{c}}\left[1+\left(\alpha h\right)^{n}\right]^{-m} & h>h_{e}\\
1 & h\leq h_{e}
\end{cases}

K=\begin{cases}
K_{s}\sqrt{S_{e}}\left[\frac{1-\left(1-\left(S_{e}S_{c}\right)^{1/m}\right)^{m}}{1-\left(1-S_{c}^{1/m}\right)^{m}}\right]^{2} & S_{e}<1\\
K_{s} & S_{e}\geq1
\end{cases}

où :

  • h : potentiel de pression (L)

  • h_{e} : pression d’entrée (L)

  • K : perméabilité (L.T^{-1})

  • K_{s} : perméabilité à saturation (L.T^{-1})

  • S_{e}=\frac{\theta-\theta_{r}}{\theta_{s}-\theta_{r}} : teneur en eau réduite, ou saturation effective

  • S_{c}=\left[1+\left(\alpha h_{e}\right)^{n}\right]^{-m}

  • \theta : teneur en eau

  • \theta_{r} : teneur en eau résiduelle

  • \theta_{s} : teneur en eau à saturation

  • m=1-\frac{1}{n}

  • n et \alpha (L^{-1}) sont des paramètres d’ajustement du modèle.

Notons qu’il y a correspondance biunivoque entre la teneur en eau \theta et la saturation (ou degré de saturation) s via la porosité \omega : \theta=s\omega .

Lorsque h_{e}=0 , on a S_{c}=1 et on retrouve la formulation de Van Genuchten originale.

4.1.3.1. Maillage des colonnes ZNS

Les colonnes sont décomposées en mailles d’épaisseur centimétrique, afin d’une part de garantir la stabilité numérique au niveau de l’injection, même avec de faibles valeurs de dispersivité, et d’autre part de garantir des bilans de masse exacts.

Plus précisément, l’épaisseur de la première maille, en haut de la colonne, est fixée à :

min\left(1cm,\frac{e_{ZNS}}{100}\right)

e_{ZNS} désigne l’épaisseur de la colonne insaturée, exprimée en cm.

Cette épaisseur de la première maille est donc le plus souvent égale à 1 cm, sauf pour des épaisseurs de colonne inférieures à 1 m. Ensuite, afin d’accélérer les calculs, les épaisseurs de maille augmentent en progression géométrique jusqu’au milieu de la colonne, puis diminuent symétriquement pour atteindre en bas de colonne une valeur égale à celle du haut de colonne. La progression géométrique est déduite du rapport entre l’épaisseur de la maille au milieu de la colonne et celle de la première maille, rapport qui est paramétrable par l’utilisateur, et égal par défaut à 5 (coef_maillage de la table simulations).

De plus, l’épaisseur d’une maille est contrainte de rester inférieure à 0.1/alpha (coefficient de van Genuchten) de manière à garantir la convergence dans le cas de valeurs élevées de \alpha.

4.1.3.2. Paramètres ZNS

A la différence de la zone saturée, l’écoulement et le transport en zone non saturée sont traités en une même simulation, qui débute par un calcul d’écoulement en régime permanent, suivi d’un calcul de transport (et d’écoulement le cas échéant) en régime transitoire.

Les paramètres du modèle de transport en zone saturée sont :

  • la porosité cinématique \omega_{c} (de fracture et/ou de matrice, selon le site étudié),

  • la porosité totale \omega_{t},

  • la masse volumique \rho_{s} du composé,

  • les coefficients \alpha et n de van Genuchten,

  • les saturations résiduelle et maximale,

  • la dispersivité longitudinale (la dispersivité transverse n’existe pas en 1D),

  • DK, Coefficient de partage (m³/kg),

  • la limite de solubilité du composé L_{s} (cf. Injection en masse).

Parmi ces paramètres, la porosité totale et la masse volumique sont utilisées pour calculer le coefficient de retard R intervenant dans l’équation de transport, selon la formule :

R=1+\frac{\left(1-\omega_{t}\right)}{\omega_{c}}\rho_{s}K_{d}

De même qu’en zone saturée, la simulation en zone non saturée d’une infiltration transitoire requiert la connaissance de la variation de l’infiltration dans le temps, qui est fournie sous forme d’un fichier externe, selon une syntaxe adaptée (cf. annexe Fichiers utilisateur).

4.1.3.3. Dépôt réparti sur tout le domaine

Il est possible de prendre en compte un dépôt réparti sur tout le domaine modélisé, soit en simulant autant de colonnes verticales insaturées qu’il y a de noeuds du maillage, ce que permet la parallélisation du plugin, soit en simulant des groupes de colonnes insaturées d’épaisseur et de perméabilité voisines, de manière à réduire le nombre de simulations. Dans ce cas, deux paramètres doivent être renseignés (table simulations) :

  • pas_echant_zns désigne le pas d’échantillonnage des colonnes. Il définit la taille des colonnes d’un même groupe. Ainsi, un pas de 5 m définit des groupes de colonnes de taille [0,5m], [5m,10m], [10m,15m], etc. Le nombre de groupes est d’autant plus réduit que le pas est élevé.

  • rapport_max_permeabilite désigne le rapport maximal de perméabilité qui peut exister entre les perméabilités (à saturation) de deux colonnes d’un même groupe.

4.1.4. Transport en zone saturée

Le transport en zone saturée est fondé sur le modèle d’écoulement en régime permanent ou transitoire.

La condition d’injection dans la nappe est :

  • soit un flux, une concentration ou une masse, définis explicitement, via l’interface graphique, si la migration en zone non saturée ne doit pas être modélisée (cf. injection),

  • soit un flux, défini implicitement à partir des flux de composé calculés au pied des colonnes non saturées. Dans ce cas, le flux est injecté aux cellules (OpenFOAM) ou aux noeuds (METIS) du maillage correspondant aux différentes zones d’injection, de manière à couvrir la surface d’injection.

Les paramètres du modèle de transport en zone saturée sont :

  • la porosité (de fracture et/ou de matrice, selon le site étudié),

  • les dispersivités longitudinale et transverse,

  • le coefficient de rétention du composé.

Dans le cas d’un régime transitoire d’écoulement, le coefficient d’emmagasinement est égal à la porosité (efficace).

4.1.5. Caractéristiques de l’injection

L’injection d’un composé est définie par les caractéristiques suivantes :

  • coordonnées (x, y) du centre de la zone d’injection,

  • profondeur,

  • surface S concernée par l’injection,

  • flux F, exprimé en kg/s ou Bq/s,

  • durée de l’injection \Delta T.

Par commodité, l’injection peut également être définie en terme de concentration ou de masse, comme indiqué ci-après. Une fuite, caractérisée par un volume d’eau, peut aussi être modélisée.

4.1.5.1. Injection en concentration

Dans le cas d’une injection définie par une concentration C, le flux F s’obtient par :

F=ISC

I désigne le flux d’infiltration d’eau de pluie, défini avec le modèle d’écoulement de la nappe en régime permanent.

4.1.5.2. Injection en masse

Dans le cas d’une injection définie par une masse M, le flux injecté F et la durée d’injection \Delta T sont calculés à partir de la connaissance de la limite de solubilité L_{s} du composé injecté :

F=ISL_{s}

\Delta T=\frac{M}{F}

4.1.5.3. Fuite

Il est possible d’accompagner l’injection de matière par une injection d’eau en précisant le volume d’eau V injecté, le flux F ou la concentration C, et la durée \Delta T. Dans ce cas, la vitesse d’injection v est calculée par :

v=\frac{V}{S \Delta T}

Cette vitesse ne peut être supérieure à la perméabilité à saturation K_{s}. Si tel est le cas, ou plus exactement si :

v > 0.9 K_{s}

alors la durée d’injection est modifiée par :

\Delta T=\frac{V}{0.9 S K_{s}}

et un message est émis signalant qu’il est conseillé d’augmenter la surface d’injection en prenant :

S=\frac{V}{0.9 K_{s} \Delta T}

Si la concentration C est fournie, le flux s’en déduit par :

F=vSC

Le tableau ci-dessous synthétise les différents calculs de flux, selon les données disponibles :

Données

V=0

V>0

F, \Delta T

F

v=min(\frac{V}{S \Delta T}, 0.9 K_{s}), \Delta T = max(\Delta T, \frac{V}{0.9 S K_{s}})

C, \Delta T

F=ISC

v=min(\frac{V}{S \Delta T}, 0.9 K_{s}), \Delta T = max(\Delta T, \frac{V}{0.9 S K_{s}}), F=vSC

M, L_{s}

F=ISL_{s}

Pas de calcul

4.1.6. Analyses d’incertitudes

THYRSIS offre la possibilité de faire varier l’ensemble des paramètres de l’écoulement et du transport en zones non saturée et saturée, selon des lois de probabilités standard (uniforme, log-uniforme, normale, log-normale), de manière à estimer des intervalles de confiance sur les concentrations aux points de calcul, ou des cartes de probabilité de dépassement de seuil.

Il suffit pour cela de préciser un nombre de simulations à réaliser (supérieur à 1) et d’indiquer les lois de probabilité à utiliser pour chaque paramètre, ainsi que leurs valeurs minimale et maximale. Un jeu de paramètres est alors généré par Hypercube Latin, et THYRSIS réalise les simulations demandées (réparties sur le nombre de processeurs spécifié dans les Préférences), et agrège les résultats (moyenne, écart-type).

Les représentations graphiques tiennent compte de ces simulations en traçant les intervalles de confiance ou les cartes de probabilité.

4.1.7. Double milieu

Le plugin THYRSIS implémente, via le code METIS, le modèle d’écoulement double milieu de Gerke & Van Genuchten [Gerke1993]. Celui-ci est fondé sur l’hypothèse que l’équation de Richards s’applique à la fois au milieu matriciel et au milieu fracturé. Pour un système vertical mono-dimensionnel, les équations d’écoulement dans un volume élémentaire représentatif s’écrivent, pour chacun des milieux, fracture (f) et matrice (m) respectivement :

Dans la porosité de fracture :

C_{f}\frac{\partial h_{f}}{\partial t}=\frac{\partial}{\partial z}\left(K_{f}\frac{\partial h_{f}}{\partial z}-K_{f}\right)-\frac{\Gamma_{w}}{w_{f}}-S_{f}

Dans la porosité de matrice :

C_{m}\frac{\partial h_{m}}{\partial t}=\frac{\partial}{\partial z}\left(K_{m}\frac{\partial h_{m}}{\partial z}-K_{m}\right)-\frac{\Gamma_{w}}{1-w_{f}}-S_{m}

où :

C_{f,m}=S_{w}S_{s}^{f,m}+\omega_{f,m}\frac{\partial S_{w}}{\partial h}

\Gamma_{w}=\alpha_{w}\left(h_{f}-h_{m}\right)

\alpha_{w}=\alpha_{w}^{*}K_{a}

\alpha_{w}^{*}=\frac{\beta}{a^{2}}\gamma_{w}

et :

K_{f} et K_{m} (L.T^{-1}) : perméabilités de fracture et de matrice,

h_{f} et h_{m} (L) : potentiel hydraulique dans la fracture et la matrice,

\Gamma_{w} (T^{-1}) : terme d’échange décrivant le transfert d’eau entre la fracture et la matrice,

S_{f} et S_{m} (T^{-1}) : termes source dans la fracture et la matrice,

w_{f} : fraction volumétrique de fracture dans le système total,

C_{f} et C_{m} (L^{-1}) : capacités spécifiques de l’eau dans la fracture et la matrice,

S_{w} : degré de saturation en eau,

S_{s} (L^{-1}) : coefficient d’emmagasinement spécifique dans la fracture et la matrice,

\omega_{f} et \omega_{m} : porosité de la fracture et de la matrice,

K_{a} (L.T^{-1}) : perméabilité de transition entre la fracture et la matrice,

a (L) : demi-distance moyenne entre les fracture,

\beta : facteur de structure représentant la géométrie du milieu fracturé (beta=3 dans le cas d’un ensemble de fractures orthogonales régulièrement espacées),

\gamma_{w} : facteur empirique égal à 0,4.


4.2. Interface

4.2.1. Préférences

Le menu Préférences permet d’accéder aux choix généraux de configuration sauvegardés :

  • dans le fichier .thyrsis.ini du répertoire de projet - celui de la base de données de calcul,

  • dans le fichier thyrsis.ini du répertoire $HOME/.thyrsis.

À la première utilisation du plugin, un dossier $HOME/.thyrsis est créé et un fichier de configuration .thyrsis.ini est créé avec valeurs par défaut. La fenêtre de Préférences est ouverte et doit être renseignée (cf. infra).

Lorsqu’un projet est ouvert à nouveau, ce sont les données du fichier .thyrsis.ini du répertoire de la base de données qui sont prises en compte. Cela permet de définir des préférences pour chaque projet.

4.2.1.1. Installation

_images/Preferences_installation.png

Figure 4.2.1 Menu Préférences, fenêtre Installation

Les préférences d’installation permettent de définir les emplacements des principaux fichiers et répertoires nécessaires au fonctionnement du plugin, à savoir :

  • le répertoire contenant les fichiers .vrt des fonds de carte d’intérêt général,

  • le fichier de configuration MPI, indiquant les ordinateurs à utiliser et le nombre de processeurs pour chacun d’eux, sous la forme :

    tata:8
    titi:8
    toto:4
    

De plus, il est aussi possible de préciser :

  • le protocole MPI à utiliser, selon les exécutables mpiexec trouvés (MPICH, OpenMPI),

  • le nombre de processeurs à utiliser pour la parallélisation des calculs,

  • le nombre maximum de colonnes 1D verticales à afficher.

Enfin, deux cases à cocher permettent de préciser :

  • si les informations d’exécution sont à afficher dans la console,

  • si une impression détaillée est souhaitée (mode verbeux).

4.2.1.2. Variables

_images/Preferences_variables.png

Figure 4.2.2 Menu Préférences, fenêtre Variables

Les préférences de variables permettent de spécifier les grandeurs à évaluer et stocker, parmi :

  • potentiel,

  • vitesse de Darcy,

  • concentration,

  • activité,

  • saturation,

et les paramètres d’affichage, en définissant :

  • l’unité,

  • l’échelle,

  • le nombre de classes.

L’échelle définit le rapport de la valeur minimale à afficher, à la valeur maximale de la grandeur considérée, telle qu’obtenue par la simulation numérique. Cette échelle est de 0.001 par défaut, mais une valeur inférieure permet de mieux visualiser l’extension d’un panache.

Le nombre de classes définit le nombre de codes de couleur à utiliser pour l’échantillonnage de la grandeur considérée.

Cette fenêtre de préférences permet également de définir l’unité de masse pour l’affichage du bilan de masse et de cocher une case évitant l’affichage des unités, à des fins de communication.

4.2.1.3. Animation

_images/Preferences_animation.png

Figure 4.2.3 Menu Préférences, fenêtre Animation

Cette fenêtre permet seulement de définir le nombre d’images par secondes, utilisé dans la construction d’une vidéo.

4.2.1.4. Matplotlib

_images/Preferences_matplotlib.png

Figure 4.2.4 Menu Préférences, fenêtre Matplotlib

Cette fenêtre de préférences permet de configurer certains paramètres d’affichage de matplotlib :

  • taille des étiquettes de graduation,

  • taille de la police du titre des ordonnées,

  • taille de la police de la légende.

4.2.1.5. Base de données

_images/Preference_database.png

Figure 4.2.5 Menu Préférences, fenêtre base de données

Cette fenêtre de préférences permet de définir une connexion à une base de données expérimentales.

Le bouton Synchroniser la base expérimentale avec la base site permet de charger dans la table de mesures de la base sites.sqlite les forages et leurs caractéristiques, ainsi que les points d’intérêt et les mesures de niveau piézométrique et de concentration disponibles en ces points.

4.2.4. Fenêtres

4.2.4.1. Fenêtre 2D

_images/Thyrsis_2D.png

Figure 4.2.20 Exemple de fenêtre 2D, avec affichage de résultats de simulation

La fenêtre 2D est la fenêtre centrale de QGIS. En interaction avec la fenêtre « Couches », elle permet de représenter en 2D, sur des fonds cartographiques variés, les grandeurs caractéristiques du modèle hydrogéologique :

  • noeuds du maillage,

  • maillage,

  • points d’intérêt,

  • forages,

  • contours,

  • potentiel (niveau piézométrique),

  • perméabilité,

  • altitude topographique (MNT),

  • altitude du mur de l’aquifère,

  • vitesse de Darcy,

  • épaisseur de la zone non saturée,

  • épaisseur de la nappe (en régime permanent),

  • potentiel de référence, qui est un champ de potentiel obtenu par interpolation de données piézométriques, et qui a pu servir pour l’élaboration du modèle hydrogéologique, par inversion.

Les zones d’injection, définies dans l” Onglet Thyrsis, s’affichent dans la fenêtre 2D.

À l’issue d’un calcul, les résultats s’affichent également, la date d’affichage et la variable à afficher étant contrôlées par la Barre de menu.

4.2.4.2. Onglet THYRSIS

_images/Thyrsis_Injection_defaut.png

Figure 4.2.21 Exemple de fenêtre Thyrsis, permettant de spécifier et caractériser les zones d’injection

L’onglet THYRSIS permet de spécifier et caractériser les zones d’injection.

Les premières grandeurs à renseigner sont :

  • le nom de la simulation,

  • l’élément chimique à considérer, accessible par un menu déroulant,

  • le coefficient de rétention (ou de partage) et, dans le cas d’une injection de masse, la limite de solubilité,

  • la date de début de la simulation, au format JJ/MM/AAAA [hh:mm:ss],

  • un ensemble de couples (durée, pas de temps), définissant les dates de sortie des résultats.

Puis le type d’injection est à sélectionner en cliquant sur le bouton adapté :

_images/Thyrsis_Flux.png

Figure 4.2.22 Exemple de fenêtre THYRSIS, permettant de définir un flux sur une zone d’injection

Selon le bouton sélectionné, les champs à renseigner diffèrent, comme indiqué à la section injection. Un volume d’eau non nul correspond à une fuite et induit une simulation d’écoulement en régime transitoire.

Il est possible d’ajouter autant d’injections que souhaité en appuyant à nouveau sur le bouton sélectionné, mais il n’est pas possible de mélanger plusieurs types d’injection au sein d’une même simulation.

Les coordonnées du centre de la zone d’injection peuvent être entrée manuellement ou en cliquant sur {\odot} et en désignant le point avec la souris.

De même, la surface peut être définie manuellement dans le champ Surface, ou calculée automatiquement en cliquant sur draw et en dessinant la zone concernée directement dans la fenêtre 2D.

En bas de l’onglet THYRSIS, trois boutons permettent d’annuler ou d’enregistrer les modifications, et de lancer les calculs :

  • Le bouton « Annuler » permet d’annuler les modifications en cours et de recharger les informations telles qu’elles sont enregistrées dans la base de calcul.

  • Le bouton « Enregistrer » permet de sauvegarder les modifications des injections (données et géométries) dans la base de calcul.

  • le bouton run_simulation permet de lancer les simulations.

Note

Une fois les injections renseignées, il est important de cliquer sur le bouton Enregistrer avant de lancer les calculs en cliquant sur le bouton run_simulation .

4.2.4.3. Forage

_images/Thyrsis_Forage.png

Figure 4.2.23 Exemple de log stratigraphique s’affichant dans la fenêtre de forage

Lorque les informations de stratigraphie et de lithologie sont renseignées dans la base sites.sqlite, le log stratigraphique peut être affiché dans la fenêtre Forage, en cliquant sur le bouton forage de la barre de menu, et en sélectionnant directement dans la fenêtre 2D le forage d’intérêt. Si le taux de fracturation est connu, celui est representé en correspondance du log stratigraphique.

Cette représentation graphique est fondée sur différentes codifications présentées en annexe Logs stratigraphiques :

  • la codification de l’échelle des temps géologiques du BRGM,

  • le code colorimétrique RGB de la Commission Mondiale des Cartes Géologiques (CGMW),

  • la codification USGS des figurés.

4.2.4.4. Fenêtre 3D

_images/Thyrsis_3D.png

Figure 4.2.24 Exemple de fenêtre 3D

La fenêtre 3D permet une représentation en trois dimensions des trois niveaux suivants :

  • altitude du mur de l’aquifère,

  • le potentiel (niveau piézométrique),

  • l’altitude topographique (MNT).

Si des résultats de simulation sont disponibles, ils s’affichent sur la couche potentiel, avec le code de couleur défini en 2D.

Cette fenêtre est contrôlée via les options de la fenêtre « Paramètres 3D » :

  • le curseur permet d’ajuster l’échelle verticale,

  • des cases à cocher permettent d’afficher ou non :

    • la texture,

    • contours,

    • forages,

    • les points de calcul.

La couleur du terrain (MNT) et des contours peut être modifiée.

4.2.4.5. Zone non saturée (ZNS)

_images/Thyrsis_ZNS.png

Figure 4.2.25 Exemple de résultats s’affichant dans la fenêtre dédiée à la zone non saturée

La fenêtre ZNS offre une représentation de l’évolution temporelle des variables simulées, dans les colonnes de zone non saturée modélisées.

Ces variables et leurs unités doivent être sélectionnées dans les menus déroulants de la barre de menu de la fenêtre.

Quelques options sont proposées, relatives à la légende :

  • Mise à jour automatique de la légende : la légende s’adapte aux valeurs selon la date courante. Sinon, la légende est calculée sur l’ensemble des dates simulées.

  • Légende : cette action ouvre une fenêtre permettant de personnaliser la légende,

  • Position légende : permet de positionner la légende à gauche, à droite ou sous les colonnes.

4.2.4.6. Fenêtre 1D

Les courbes d’évolution temporelle s’obtiennent à l’aide des boutons plot et plot_bilan de la Barre de menu, et sont tracées dans une fenêtre ancrable :

  • le bouton plot_bilan trace l’évolution temporelle du bilan de masse (s’il existe).

  • le bouton plot trace l’évolution temporelle de la variable sélectionnée dans le menu déroulant de la Barre de menu, pour les points sélectionnés à l’aide de la souris dans la fenêtre 2D de QGIS.

_images/Thyrsis_1D_bilan.png

Figure 4.2.26 Exemple de représentation 1D de l’évolution temporelle du bilan de masse

_images/Thyrsis_1D_potentiel.png

Figure 4.2.27 Exemple de représentation 1D de l’évolution temporelle du potentiel, avec affichage des points de mesure


4.3. Construction de modèle

Un modèle hydrogéologique complet peut être construit avec THYRSIS, en deux étapes :

  • définition d’un domaine d’étude et maillage à l’aide du mailleur GMSH [Geuzaine2009] ,

  • définition ou calcul d’un champ de perméabilité et calcul de l’ensemble des champs paramètriques du modèle.

4.3.1. Maillage

4.3.1.1. Principe

La création d’un maillage est fondée sur l’utilisation du logiciel GMSH [Geuzaine2009] . Elle consiste à définir les contours du domaine et des sous-domaines à modéliser, en indiquant pour chacun la taille caractéristique de la maille. Il est possible de spécifier des lignes et des points fixes, i.e. des éléments à intégrer dans le maillage.

Pour chaque élément de contour, il est possible de préciser s’il constitue une limite à potentiel imposé, de manière à identifier les noeuds du maillage correspondant à ces conditions aux limites. Par défaut, la valeur de potentiel imposé est prise égale à la valeur de l’altitude topographique (MNT), ce qui correspond à des affleurements ou des rivières.

La construction d’un maillage nécessite les deux couches raster :

  • MNT, modèle numérique de terrain,

  • altitude du mur de l’aquifère,

Une fois le maillage réalisé, il est nécessaire de renseigner les différents champs des tables noeuds et mailles afin de définir un modèle hydrogéologique. Cela peut être fait manuellement ou par la procédure d’inversion décrite au chapitre suivant.

4.3.1.2. Mise en oeuvre

4.3.1.2.1. Création d’un nouveau projet de maillage

Le projet maillage sera créé selon la projection géographique courante, visible dans le coin inférieur droit de l’interface QGIS (Figure 4.3.1).

_images/qgis_srid.png

Figure 4.3.1 QGIS SRID

La projection souhaitée doit être définie avant la création du projet.

Pour créer un nouveau maillage, utiliser le menu Thyrsis>Nouveau>Maillage… (Figure 4.3.2).

_images/mesh_creation.png

Figure 4.3.2 Création d’un nouveau maillage

Puis entrer le nom du projet maillage, e.g. SACLAY_TEST. Le nom du fichier doit:

  • commencer par le nom du site (warning Attention à la casse),

  • être suivi d’un complément de nom commençant par _ et désignant le nouveau modèle.

Une base de données Spatialite SACLAY_TEST.mesh.sqlite est créée, associée à un projet SACLAY_TEST.mesh.qgs, qui est ouvert dans QGIS (Figure 4.3.3).

_images/mesh_NewProject.png

Figure 4.3.3 Projet maillage nouvellement créé

4.3.1.2.2. Définition des couches MNT et MUR

Il est impératif de disposer d’une couche MNT et d’une couche MUR, de préférences sous la forme de fichiers mnt.tif et mur.tif respectivement. Ces couches doivent être ouvertes dans le projet QGIS (Figure 4.3.4).

Il est possible d’utiliser le script python xyz_to_tif pour transformer un fichier file.xyz au format (x,y,z) en un fichier file.tif au format tif :

python -m thyrsis.utilities.xyz_to_tif file.xyz

Ajouter autant de couches vecteur et raster utiles à la définition du maillage (e.g. orthophoto, bâti, contour du site).

_images/mesh_layerOpening.png

Figure 4.3.4 Ouverture des couches raster MNT et MUR.

Zoomer sur l’emprise d’une des couches raster (Figure 4.3.5).

_images/mesh_mntLayer.png

Figure 4.3.5 Couche MNT ouverte dans QGIS, après zoom sur la couche.

4.3.1.2.3. Création des éléments de contour

Afin de définir les contours du modèle, il peut être utile d’importer une couche de contours déjà existante (Figure 4.3.6). Les contours peuvent alors être définis directement dans QGIS.

_images/mesh_contoursAdding.png

Figure 4.3.6 Ajout d’une couche contour contenant les contours du site et du domaine à mailler (s’ils existent).

Sélectionner la couche contours et configurer l’accrochage aux sommets dans le menu Préférences de QGIS (Figure 4.3.7 et Figure 4.3.8).

_images/mesh_snappingSelection.png

Figure 4.3.7 Sélection du menu des options d’accrochage

_images/mesh_snappingOptions.png

Figure 4.3.8 Menu des options d’accrochage. Accrochage aux sommets avec un précision de 10 pixels. L’édition topologique permet d’améliorer l’édition et le maintien des limites communes dans les couches de polygones.

Passer la couche contours en mode édition, puis ajouter des contours, soit par numérisation directe, soit par copie de contours existants :

  • Des contours existants peuvent être copiés dans la couche contours par simple « copier-coller »,

  • Des morceaux de contour peuvent être définis en sélectionnant un contour et en le coupant avec l’outil « Éditer > Séparer les entités »,

  • Des morceaux de contour peuvent être fusionnés en les sélectionnant et en utilisant l’outil « Éditer > Fusionner les entités sélectionnées ».

Il est impératif de définir une longeur d’élement sur chaque élément du contour, en ouvrant la table d’attribut de la couche contours. Si l’élément est à potentiel imposé, spécifier la valeur 1. Dans ce cas, le potentiel sera déduit de la couche MNT (Figure 4.3.9).

Lorsque tous les éléments du contour sont définis, sortir du mode édition et enregistrer les modifications.

_images/mesh_contoursAttribute.png

Figure 4.3.9 Spécifier pour chaque élément du contour, sa longueur (en mètres) et s’il s’agit d’un élément à potentiel imposé (=1).

Après enregistrement des modifications, les couches domaines et extremites sont automatiquement mise à jour. Elles permettent de vérifier la cohérence topologique du réseau de contour (Figure 4.3.10).

_images/mesh_domain.png

Figure 4.3.10 Surface après l’enregistrement de la couche contours définissant un domaine fermé.

Note

  • Une extrémité au milieu d’un contour est souvent liée à un accrochage mal configuré,

  • QGIS ne permet pas l’accrochage d’une entité sur elle même lors de la création de l’entité. Pour définir un contour fermé d’un seul tenant, créer un contour presque fermé, renseigner la longueur élémentaire puis utiliser l’outil de noeud pour déplacer le dernier point sur le premier (avec accrochage),

  • Les contours ouverts à l’intérieur d’un domaine sont acceptés et considérés comme des lignes fixes du maillage.

4.3.1.2.4. Définition des points fixes

Il est aussi possible de spécifier des points fixes qui seront des noeuds du maillage. Le maillage au voisinage des points fixes est spécifié par l’attribut longueur_element. Les points fixes peuvent être copiés d’une autre couche par copier-coller (Figure 4.3.11).

warning Attention: la longeur des éléments est requise pour tous les points fixes.

_images/mesh_fixedPoints.png

Figure 4.3.11 Ajout de points fixes.

4.3.1.2.5. Génération du maillage

Une fois les domaines et les points fixes définis, cliquer sur l’icône maillage pour générer le maillage (Figure 4.3.12). Dans la fenêtre de dialogue, choisir les couches correspondant au terrain et au mur, par défaut les couches raster mnt et mur. Si elle est disponible, spécifier la couche potentiel. THYRSIS va générer plusieurs couches (Figure 4.3.13) :

  • maillage, avec les triangles correspondant au maillage,

  • noeuds, avec les noeuds du maillage,

  • altitude, couche donnant l’altitude aux noeuds du maillage, selon la couche mnt,

  • altitude_mur, couche donnant l’altitude du mur aux noeuds du maillage, selon la couche mur.

  • potentiel_reference, donnant la valeur du potentiel au noeuds du maillage, si la couche potentiel a été spécifiée.

_images/mesh_meshDialog.png

Figure 4.3.12 Fenêtre de dialogue pour la construction du maillage, avec sélection des couches mnt, mur et potentiel.

_images/mesh_meshResult.png

Figure 4.3.13 Maillage final avec transparence.

4.3.2. Définition des paramètres

La définition du modèle commence en renseignant les valeurs des paramètres scalaires de la table parametres (Figure 4.3.14).

_images/parametersTable.png

Figure 4.3.14 Table parametres à renseigner.

Puis le champ de perméabilité doit être défini en cliquant sur le bouton inversion qui propose 3 choix (Figure 4.3.15) :

  • Créer un modèle avec une valeur constante de perméabilité : cela crée un modèle hydrogéologique fondé sur un champ de perméabilité uniforme, dont la valeur doit être renseignée dans le dialogue,

  • Créer un modèle à partir d’un champ de perméabilité donné : cela crée un modèle hydrogéologique fondé sur un champ de perméabilité fourni sous la forme d’un fichier externe .tif, qui doit être sélectionné dans le dialogue,

  • Créer un modèle par inversion : cela lance le processus d’inversion, fondé sur des mesures de niveau piézométrique, cf. paragraphe Inversion.

_images/modelDialog.png

Figure 4.3.15 Dialogue du bouton Modèle


4.3.3. Inversion

4.3.3.1. Principe

Le principe de l’inversion est de déterminer un champ de perméabilité tel qu’un calcul d’écoulement restitue les données piézométriques fournies en entrée de la procédure.

Ces données piézométriques peuvent être :

  • des valeurs fournies en des points donnés, dénommés « points pilotes »,

  • des valeurs fournies sur l’ensemble du domaine, au travers d’une carte piézométrique, dénommée « potentiel de référence ». Cette carte est généralement obtenue par des méthodes géostatistiques à partir de mesures ponctuelles.

La procédure d’inversion intégrée dans le plugin est limitée au régime permanent (i.e. infiltration constante) et fondée sur la méthode des points pilotes [Renard2008], [Renard2016].

Le principe est d’ajuster les perméabilités de plusieurs « zones pilotes », par un processus itératif visant à minimiser un critère d’erreur mesurant l’écart des valeurs piézométriques calculées à celles mesurées :

e_{i}=\frac{1}{n}\sum_{k=1}^{n}\left|h_{k}^{i}-h_{k}^{m}\right|

où :

  • n désigne le nombre total de points pilotes,

  • h_{k}^{i} désigne le niveau piézométrique calculé au point k à l’itération i,

  • h_{k}^{m} désigne le niveau piézométrique mesuré au point k.

À chaque itération, les perméabilités de chaque zone pilote sont ajustées de la manière suivante :

K_{j}^{i+1}={\displaystyle (1+\alpha \frac{\delta_{j}^{i}}{\delta_{max}^{i}}) K_{j}^{i}}

où :

\delta_{j}^{i}=\frac{1}{n_{j}}\sum_{k=1}^{n_{j}}\left(h_{k}^{i}-h_{k}^{m}\right)

où :

  • \alpha est compris strictement entre 0 et 1,

  • K_{j}^{i} désigne la perméabilité de la zone j à l’itération i,

  • n_{j} désigne le nombre de points pilotes de la zone j.

  • \delta_{max}^{i} désigne la valeur maximale des |\delta_{j}^{i}| à l’itération i.

Le paramètre \alpha est initialisé à 0.5, valeur qui semble un bon compromis entre la précision et la vitesse de convergence. Lorsque l’erreur augmente dans une proportion trop importante, ce paramètre \alpha est diminué d’un facteur deux et une nouvelle itération reprend à partir de l’avant dernière itération.

Pour chaque zone de perméabilité, la perméabilité est contrainte par des valeurs minimale et maximale :

\forall i,j\;\;\;K_{j}^{min}\leq K_{j}^{i}\leq K_{j}^{max}

Le processus itératif est stoppé dans plusieurs cas :

  • lorsque le nombre maximal d’itérations est atteint,

  • lorsque l’erreur devient inférieure à une valeur limite e_{max} : e_{i}\leq e_{max},

  • lorsque le paramètre \alpha devient inférieur à une valeur minimale : \alpha\leq \alpha_{min},

  • lorsque le nombre de tentatives de diminution du paramètre \alpha atteint une valeur maximale.

4.3.3.2. Mise en oeuvre

Commencer par spécifier les points pilotes dans la couche points_pilote, en indiquant obligatoirement leur zone d’appartenance et le niveau piézométrique mesuré (altitude_piezo_mesuree). Les zones doivent être numérotées à partir de 1 et sans trou. Plusieurs points pilotes peuvent appartenir à une même zone.

Il est possible d’importer des fichiers texte (menu QGIS Couche>Ajouter une couche>Ajouter une couche de texte délimité) et de procéder par copier-coller entre la couche importée et la couche points_pilote. Afin de faciliter le copier-coller, il est conseillé de nommer les colonnes du fichier importé selon les noms utilisés dans la table points_pilote (nom, zone, altitude_piezo_mesuree) (Figure 4.3.16).

_images/inversion_pilotPointsTable.png

Figure 4.3.16 Spécification des points pilotes

Puis spécifier les valeurs des différents paramètres de la table hynverse_parametres (Figure 4.3.17) :

  • infiltration : valeur de l’infiltration moyenne annuelle en m/s. Si l’infiltration est hétérogène, indiquer une valeur nulle et fournir un fichier u_infiltration.node.sat or u_infiltration.elem.sat .

  • icalc : type de calcul (3 par défaut),

  • niter : nombre d’itérations (20 par défaut, mais des valeurs plus élevées sont souvent nécessaires pour une bonne convergence),

  • errlim : valeur objectif du critère d’erreur : le calcul s’interrompt lorsque l’erreur est inférieure à errlim (0.1 m par défaut),

  • alfmin : valeur minimale du paramètre \alpha : le calcul s’interrompt lorsque \alpha devient inférieur à alfmin (10^{-5} par défaut),

  • alfa : valeur initiale du paramètre \alpha (0,5 par défaut),

  • terr : valeur initiale du taux d’accroissement maximal admissible de l’erreur (1.2 par défaut) : si le taux d’accroissement de l’erreur est supérieur à ce taux, la dernière itération n’est pas prise en compte et une nouvelle itération est réalisée, en diminuant le paramètre \alpha d’un facteur 2. Cette procédure peut être renouvelée un nombre de fois inférieur ou égal à nessaismax (voir ci-dessous),

  • nessaismax : nombre maximal d’itérations possibles en réduisant le paramètre \alpha d’un facteur 2 (10 par défaut),

  • permini : valeur initiale de la perméabilité (2.10^{-5} par défaut),

  • permin : valeur minimale de la perméabilité (2.10^{-7} par défaut),

  • permax : valeur maximale de la perméabilité (2.10^{-4} par défaut),

  • nv_npp : nombre de noeuds les plus proches des points pilotes, pour le calcul du potentiel aux points pilotes (4 par défaut),

  • nv_ppm : nombre de points pilotes les plus proches des centres de mailles, pour le calcul du champ de perméabilité aux mailles (10 par défaut),

  • dv_pp : rayon (en mètres) autour des points pilotes pour lisser la perméabilité par moyenne mobile (300 m par défaut),

  • d_mesh : distance minimale d’un centre de maille à un noeud à potentiel imposé, pour ajouter le centre de maille comme point pilote (dans le cas d’un potentiel de référence externe) (100 m par défaut).

_images/inversion_parametersTable.png

Figure 4.3.17 Table des paramètres d’inversion

L’inversion est déclenchée en cliquant sur le bouton inversion, qui ouvre le dialogue de la Figure 4.3.15.

Sélectionner le premier item pour lancer l’inversion.

L’inversion fait apparaître une fenêtre ancrable continuant deux courbes (Figure 4.3.18) :

  • la première montre l’évolution de l’erreur à chaque itération,

  • la seconde montre l’évolution de la corrélation entre les valeurs piézométriques mesurées et calculées aux différents points pilotes, organisés par groupes.

La carte de perméabilités est également mise à jour à chaque itération, et s’affiche sous réserve qu’elle a été sélectionnée avant le début du calcul.

_images/inversion_canvas.png

Figure 4.3.18 Fenêtres QGIS au cours de l’inversion

À noter que, dans la (Figure 4.3.18), les noeuds à potentiel imposé sont mis en évidence. Pour cela, il suffit de faire appel au Gestionnaire de base de données (menu QGIS Database>DBManager…), de sélectionner la base de calcul courante et d’effectuer la requête SQL :

select * from noeuds, potentiel_impose where noeuds.OGC_FID=potentiel_impose.nid

Il faut également sélectionner Charger en tant que nouvelle couche, en spécifiant GEOMETRY pour la colonne de géométrie, et attribuer un nom à la couche :

_images/noeuds_potentiel_impose.png

4.4. Bases de données Spatialite

Ce chapitre décrit les trois types de base de données manipulées par le plugin THYRSIS.

4.4.1. Base sites.sqlite

La base sites.sqlite, définie dans les Préférences d’installation, contient différents types de tables, caractérisant les éléments chimiques utilisables, les sites étudiés et les simulations de référence.

4.4.1.1. Table elements_chimiques

La table elements_chimiques contient les principales caractéristiques des éléments chimiques et de leurs isotopes : numéro et masse atomiques, activité spécifique, décroissance radioactive.

4.4.1.2. Tables caractérisant les sites d’étude

  • sites : cette table associe à chaque site un identifiant numérique.

  • points_interet : cette table regroupe tous les points d’intérêt pour chaque site étudié, en leur associant un nom et un groupe d’appartenance.

  • mesures : cette table regroupe toutes les mesures associées aux points d’intérêt, avec la date, l’identifiant de l’élément chimique, la concentration et son incertitude, le niveau piézométrique et son incertitude.

  • forages : cette table regroupe les caractéristiques générales des forages dont la stratigraphie est connue (nom, type, date de réalisation, profondeur, hauteur du tube par rapport au sol).

  • lithologies : cette table fournit pour chaque forage le type de roche et son code USGS en fonction de la profondeur.

  • stratigraphies : cette table fournit pour chaque forage la formation géologique et son code BRGM en fonction de la profondeur.

  • fracturations : cette table fournit pour chaque forage les taux de fracturation en fonction de la profondeur.

4.4.1.3. Tables caractérisant les simulations de référence

Les simulations peuvent être stockées dans la base sites.sqlite (cf. Export, § Template), et peuvent servir de point de départ pour de nouvelles simulations. Plusieurs tables servent à stocker les informations permettant de les caractériser :

  • simulations : cette table fait référence à un site et à un modèle hydrogéologique donnés, et définit certains paramètres comme :

    • nombre_de_simulations désigne le nombre de simulations à réaliser, supérieur à 1 dans le cas de calculs d’incertitudes.

    • coef_maillage désigne le rapport entre l’épaisseur de la maille au milieu de la colonne et celle de la première maille en surface, égal par défaut à 5.

    • pas_echant_zns désigne le pas d’échantillonnage des colonnes, dans le cas du regroupement des colonnes par taille. Il définit la taille des colonnes d’un même groupe. Ainsi, un pas de 5 m définit des groupes de colonnes de taille [0,5], [5,10], [10,15], etc. Le nombre de groupes est d’autant plus réduit que le pas est élevé.

    • rapport_max_permeabilite désigne le rapport maximal de perméabilité qui peut exister entre les perméabilités (à saturation) de deux colonnes d’un même groupe. Il est égal à 10 par défaut.

    • permeabilite_zns_uniforme désigne une valeur de perméabilité à saturation qui, si elle n’est pas nulle et si le fichier u_permeabilite_zns.node.sat or u_permeabilite_zns.elem.sat est absent, est affectée à chaque colonne non saturée. Cette valeur est nulle par défaut.

    • type_injection définit le type d’injection, et peut prendre la valeur “aucune” (défaut), “flux”, “concentration” ou “masse”.

    • type_infiltration définit le type d’infiltration, et peut prendre la valeur “permanente” (défaut) ou “transitoire”.

    • insature prend la valeur “oui” (défaut) ou “non” et indique si la zone non saturée doit être modélisée.

  • parametres : cette table fait référence à la table simulations, et définit les valeurs de chaque paramètre pour la simulation considérée :

    • nom est le nom du pramètre, parmi:

      • WC, porosité cinématique,

      • VGA, Alpha van Genuchten (m^{-1}),

      • VGN, n van Genuchten,

      • VGR, Saturation résiduelle,

      • VGS, Saturation maximale,

      • VGE, Pression d’entrée (m),

      • WT, Porosité totale,

      • VM, Masse volumique (kg/m³),

      • DK, Coefficient de partage (m³/kg),

      • SL, Limite de solubilité (kg/m³),

      • DLZNS, Dispersivité longitudinale ZNS (m),

      • DLZS, Dispersivité longitudinale ZS (m),

      • WM, Porosité matrice

    • valeur désigne la valeur du paramètre lorsque nombre_de_simulations = 1,

    • valeur_min désigne la valeur minimale du paramètre dans le cadre de l”Hypercube Latin,

    • valeur_max désigne la valeur maximale du paramètre dans le cadre de l”Hypercube Latin,

    • loi_de_variation désigne la loi de probabilité du paramètre dans le cadre de l”Hypercube Latin. Elle peut prendre comme valeur “constant” (défaut), “normal”, “lognormal”, “uniform” ou “loguniform”.

    Les paramètres VGA, VGN, VGR, VGS, VGE ne sont autres que les coefficients \alpha, n, \theta_{r}, \theta_{s}, h_{e} de la formulation d’Ippisch & Vogel (ZNS).

    Dans le cas d’un modèle double-milieu, les paramètres ci-dessus sont dupliqués, avec un suffixe 2 désignant le second milieu, et quatre paramètres d’interaction sont ajoutés :

    • PL, perméabilité de liaison (m/s),

    • ASHAPE, facteur représentant la demi-distance moyenne entre deux fractures,

    • BSHAPE, facteur dépendant de la géométrie de la fracturation (une valeur de 3 correspond à des fractures orthogonales régulièrement espacées),

    • CSHAPE, coefficient empirique, égal généralement à 0,4.

    Ces paramètres PL, ASHAPE, BSHAPE et CSHAPE correspondent respectivement aux coefficients K_{a}, a, \beta et \gamma_{w} du modèle Double-milieu.

  • openfoam_options : cette table, qui fait référence à la table simulations, regroupe toutes les options du code OPENFOAM. Les valeurs par défaut qui sont attribuées permettent de couvrir la quasi-totalité des cas. Des modifications peuvent être cependant nécessaires pour traiter certains cas particulièrement difficiles numériquement. Ces options sont définies succinctement ci-après, avec, entre parenthèses, la valeur par défaut.

    Paramètres numériques :

    • picard_tolerance: tolérance pour l’algorithme de Picard en transitoire (10).

    • picard_maxiter: nombre maximal d’itérations pour l’algorithme de Picard en transitoire (20).

    • newton_tolerance: tolérance pour l’algorithme de Newton en transitoire (1.e-10).

    • newton_maxiter: nombre maximal d’itérations pour l’algorithme de Newton en transitoire (20).

    • h_tolerance: tolérance pour le solveur ZNS « h » (1.e-12).

    • h_residualControl: contrôle du résidu pour le solveur ZNS stationnaire « h » (1.e-10).

    • h_relaxationFactor: facteur de relaxation pour le solveur ZNS stationnaire « h » (0,01).

    • potential_tolerance: tolérance pour le solveur ZS « potential » (1.e-8).

    • potential_tolerance_relative: tolérance relative pour le solveur ZS transitoire « potential » (0,1).

    • potential_residualControl: contrôle du résidu pour le solveur ZS stationnaire « potential » (1.e-6).

    • potential_relaxationFactor: facteur de relaxation pour le solveur ZS stationnaire « potential » (0,5).

    Gestion du pas de temps :

    • delta_time_init: pas de temps initial (10).

    • dtfact_decrease: taux de décroissance du pas de temps si l’algorithme de Picard ou de Newton n’a pas convergé (0,8).

    • truncationError: erreur de troncation du schéma temporel pour le calcul du pas de temps (0,01).

    Propriétés :

    • fluid_density: densité du fluide [kg/m3] (1.e3).

    • dynamic_viscosity: viscosité dynamique du fluide [Pa.s] (1.e-3).

    • molecular_diffusion: diffusion moléculaire [m/s2] (0).

    • tortuosity: tortuosité [-] (1).

    • specific_storage: coefficient d’emmagasinement [-] (0).

    • hwatermin: épaisseur minimale de zone saturée pour le solveur ZS « potential » (0,1 m).

  • metis_options : cette table, qui fait référence à la table simulations, regroupe toutes les options du code METIS. Les valeurs par défaut qui sont attribuées permettent de couvrir la quasi-totalité des cas. Des modifications peuvent être cependant nécessaires pour traiter certains cas particulièrement difficiles numériquement. Ces options sont définies succinctement ci-après, avec, entre parenthèses, la valeur par défaut.

    • niter_gc_zns: nombre maximum d’itérations ZNS pour le gradient conjugué (100).

    • niter_gc_zs: nombre maximum d’itérations ZS pour le gradient conjugué (100).

    Les options suivantes concernent la résolution de l’écoulement en régime permanent dans la ZNS :

    • saturation_initiale: valeur de la saturation initiale pour le calcul d’écoulement ZNS en régime permanent (0.8),

    • rmult_cormax: coefficient multiplicateur de la dimension maximale, définissant la variation maximale de la charge hydraulique (0.1),

    • c_pstep: valeur initiale du fractionnement de la solution (0.1),

    • c_ps_inc: valeur initiale de l’incrément (0.1),

    • c_ps_tol: tolérance sur le paramètre de parameter stepping: on considère qu’on a convergé quand c_pstep est plus grand que 1 - c_ps_tol (permet d’abréger une convergence laborieuse où on tend vers 1 sans jamais exactement l’atteindre) (1.e-5),

    • ratio_max_res: comparaison de deux modes de calcul des résidus. Permet de détecter plus précisément la convergence locale dans des cas où les résidus oscillent un peu (1.e-6),

    • critereres : critère de convergence des résidus. Le calcul converge quand c_pstep vaut 1 et redres < critereres (1.e-5),

    • niterns: nombre d’itérations pour le calcul d’écoulement ZNS en régime permanent (1000).

    • courant: égal à “oui” ou “non”. Le nombre de Courant est calculé à partir d’une pseudo-vitesse du front de saturation. Si courant = “oui”, le pas de temps sera ajusté pour que le front ne franchisse pas plus d’un élément par pas. Utile en 1D pour des fronts très abrupts. (“oui”).

    • emmagasinement: emmagasinement spécifique (m^{-1}), utilisé pour gérer les fuites importantes avec l’option sat_nonsat = on, associée à courant = “oui” (1.e-3).

    • kdecoup_delt_zns: pas de temps initial ZNS (10).

    • kdecoup_dmin_zns: pas de temps minimal ZNS (1).

    • kdecoup_delt_zs: pas de temps initial ZS (100).

    • kdecoup_dmin_zs: pas de temps minimal ZS (1).

    • force_fin_phase: égal à “oui” ou “non”, force la fin de phase avec un grand pas de temps lorsque le pas de temps devient trop petit (“oui”).

    • max_iter: nombre maximal d’itérations pour le calcul phréatique (200),

    • relax_phreat: coefficient de relaxation (poids attribué à la dernière itération) (0.5).

    • critere_pot: critère de convergence sur le potentiel (0.1 m),

    • phrea_min: epaisseur_mouillee_mini (1.0 m).

  • injections : cette table, qui fait référence à la table simulations, définit les caractéristiques des injections:

    • profondeur: profondeur de l’injection (m)

    • debut: date de début d’injection, au format JJ/MM/AAAA

    • duree: durée d’injection, en unité “jour”, “mois” ou “an”

    • nom: nom de l’injection

    • volume_eau: volume d’eau injecté, en m³

    • coefficient_surface: rapport de la surface réelle d’injection à la surface des noeuds (cas d’une injection en puits, où la surface réelle d’injection est limitée à la surface des puits, très inférieure à la surface d’influence des noeuds du maillage) ;

    • coefficient_injection: rapport de la quantité réellement injectée à la quantité injectable en terme de solubilité (permet de ne prendre en compte qu’une partie de la masse totale, pour une durée d’injection calculée à partir de la masse totale - intéressant seulement dans le cas d’une injection en masse. Dans le cas d’une injection en concentration ou flux, c’est seulement un coefficient multiplicatif de la concentration ou du flux) ;

    • permeabilite: valeur de la perméabilité à saturation, déduite automatiquement du champ de perméabilité de la zone saturée, ou d’un fichier u_permeabilite_zns.node.sat or u_permeabilite_zns.elem.sat s’il existe, ou égale à la valeur de permeabilite_zns_uniforme de la table simulations, si elle n’est pas nulle.

    • infiltration: valeur d’infiltration en haut de la colonne non saturée, déduite automatiquement du modèle hydrogéologique.

    • epaisseur: épaisseur de la colonne ZNS, déduite automatiquement du modèle hydrogéologique.

    • altitude: altitude du haut de la colonne ZNS, déduite automatiquement du modèle hydrogéologique.

  • dates_resultats : cette table fait référence à la table simulations et définit les dates de sortie des résultats, en spécifiant autant de fois que nécessaire :

    • duree: une durée, exprimée en unité “jour”, “mois” ou “an”,

    • pas_de_temps: un pas de temps, qui échantillonne la durée, exprimé en unité “jour”, “mois” ou “an”.

4.4.2. Bases de données de modèle

Les modèles hydrogéologiques sont stockés dans des bases Spatialite indépendantes, placées dans le répertoire des modèles défini dans les Préférences d’installation. Chacune de ces bases contient les tables définissant le maillage 2D horizontal et les caractéristiques du modèle hydrogéologique, ainsi, le cas échéant, que les paramétrages utilisés pour l’inversion.

4.4.2.1. Tables de maillage

Les tables suivantes permettent de définir et construire le maillage. Seules les tables contours et points_fixes sont réellement définies par l’utilisateur. Les autres tables sont créées automatiquement et secondaires.

  • bords: table secondaire utilisée par la procédure de maillage,

  • contours : cette table contient la définition des différentes parties du contour du domaine, indiquant les champs suivants :

    • groupe: définit l’appartenance à une catégorie de contour (site, rivière, etc.) (champ non utilisé actuellement),

    • nom: définit le nom de l’élément de contour,

    • longueur_element: définit, en mètres, la distance entre deux noeuds le long de l’élément de contour considéré (permet de contraindre la taille du maillage),

    • potentiel_impose: égal à 1 si l’élément de contour considéré définit un contour à potentiel imposé, égal à NULL ou 0 sinon.

  • domaines: table secondaire définissant les différents domaines à mailler, selon les contours créés,

  • extremites: table secondaire contenant les extrémités des différents éléments de contour,

  • points_fixes : table définissant les points à intégrer dans le maillage, avec leur distance de noeuds caractéristique :

    • nom: nom du point fixe,

    • groupe: nom du groupe associé au point fixe,

    • longueur_element: distance, en mètres, entre deux noeuds à proximité du point fixe.

_images/table_contours.png

Figure 4.4.1 Exemple de table de contours

_images/table_points_fixes.png

Figure 4.4.2 Exemple de table de points fixes

4.4.2.2. Tables pour l’inversion

Les tables suivantes permettent de définir les paramètres du calcul d’inversion, les options du code METIS utilisées pour l’inversion, et les points pilotes à prendre en compte dans l’inversion (cf. Inversion) :

  • hynverse_parametres : paramètres de l’inversion (cf. Inversion),

  • openfoam_hynverse_options : OPENFOAM options :

    • fluid_density: densité du fluide [kg/m3] (1.e3).

    • dynamic_viscosity: viscosité dynamique du fluide [Pa.s] (1.e-3).

    • potential_tolerance: tolérance pour le solveur ZS « potential » (1.e-8).

    • potential_tolerance_relative: tolérance relative pour le solveur ZS transitoire « potential » (0,1).

    • potential_residualControl: contrôle du résidu pour le solveur ZS stationnaire « potential » (1.e-6).

    • potential_relaxationFactor: facteur de relaxation pour le solveur ZS stationnaire « potential » (0,5).

    • phrea_min: epaisseur_mouillee_mini (1.0 m).

  • metis_hynverse_options : METIS options :

    • niter_gc_zs: nombre maximum d’itérations ZS pour le gradient conjugué (100),

    • max_iter: nombre maximal d’itérations pour le calcul phréatique (200),

    • relax_phreat: coefficient de relaxation (poids attribué à la dernière itération) (0.5).

    • critere_pot: critère de convergence sur le potentiel (0.1 m),

    • phrea_min: epaisseur_mouillee_mini (1.0 m).

  • points_pilote : points pilotes à prendre en compte dans l’inversion :

    • nom : nom du point pilote,

    • groupe : groupe du point pilote, utilisé pour le graphique de corrélation,

    • zone : zone du point pilote,

    • altitude_piezo_mesuree : niveau piézométrique mesuré (m), à renseigner avant l’inversion,

    • altitude_piezo_calculee : niveau piézométrique calculé (m), valeur mise à jour par le calcul d’inversion,

    • difference_calcul_mesure : différence entre les niveaux piézométriques calculé et mesuré (m), valeur mise à jour par le calcul d’inversion

  • zones : perméabilité de chaque zone, ainsi que les valeurs de perméabilité minimale et maximale autorisées pour l’inversion.

4.4.2.3. Tables du modèle

Les tables suivantes définissent le maillage et les caractéristiques du modèle hydrogéologique :

  • mailles : cette table définit chaque maille du maillage, par une liste ordonnée de trois (triangle) ou quatre (quadrangle) numéros de noeuds, ainsi que les champs :

    • surface: surface de la maille (m^{2}),

    • altitude: altitude topographique (m),

    • altitude_mur: altitude du mur de l’aquifère (m),

    • infiltration: valeur de l’infiltration (m/s),

    • epaisseur_zns: épaisseur de la zone non saturée (m),

    • potentiel_reference: niveau piézométrique de référence (m, donnée facultative),

    • potentiel: niveau piézométrique (m),

    • flux_eau: terme de suintement (m/s),

    • epaisseur_zs : épaisseur de la nappe (zone saturée) (m),

    • epaisseur_zns : épaisseur de la zone non saturée (m),

    • permeabilite_zns: perméabilité de la zone non saturée (m/s),

    • permeabilite_x : perméabilité selon x (m/s)

    • permeabilite_y: perméabilité selon y (m/s)

    • permeabilite_z: perméabilité selon z (m/s) (inutilisé),

    • v_x: vitesse de Darcy selon x (m/s),

    • v_y: vitesse de Darcy selon y (m/s),

    • v_z: vitesse de Darcy selon z (m/s) (inutilisé),

    • v_norme : norme de la vitesse de Darcy (m/s),

  • noeuds : cette table contient les mêmes champs que la table mailles, mais calculés en chaque noeud.

  • noeuds_contour : table contenant les numéros des noeuds du contour.

  • parametres : table définissant les paramètres associés au modèle hydrogéologiques (cf. Tables caractérisant les simulations de référence).

  • potentiel_impose : table indiquant les numéros des noeuds à potentiel imposé et la valeur de ce potentiel.

4.4.3. Base de calcul

Pour chaque projet, une base de calcul est créée de la manière suivante :

  • par copie de la base du modèle spécifié (depuis le répertoire mesh),

  • par création des tables de la base sites.sqlite et copie des lignes faisant référence au site considéré,

  • par création des tables de résultats.

La base de calcul ainsi créée contient donc les tables suivantes :

  • en provenance de la base de modèle :

    • bords

    • contours

    • domaines

    • extremites

    • hynverse_parametres

    • mailles

    • metis_hynverse_options

    • noeuds

    • noeuds_contour

    • openfoam_hynverse_options

    • parametres

    • points_fixes

    • points_pilote

    • potentiel_impose

    • zones

  • en provenance de la base sites pour le site considéré :

    • dates_resultats

    • elements_chimiques

    • forages

    • fracturations

    • injections

    • lithologies

    • mesures

    • metis_options

    • openfoam_options

    • points_interet

    • simulations

    • sites

    • stratigraphies

  • par création des tables de résultats :

    • bilan_masse

    • dates_simulation

    • isovaleur

    • mailles_zns

    • noeuds_zns

    • noeuds_injections

    • parametres_simulation


4.5. Références

Goblet1989(1,2)

Goblet, P., Programme METIS. Simulation d’écoulement et de transport miscible en milieu poreux et fracturé. Notice de conception. ENSMP/CIG, 1989

Renard2008(1,2,3,4)

Renard, F.; Jeannée, N. Estimating transmissivity fields and their influence on flow and transport: the case of Champagne mounts. Water Resources Research, 2008 , 44, W11414, doi:10.1029/2008WR007033

Renard2016(1,2,3,4)

Renard, F.; Tognelli, A. A new quasi-3D unsaturated-saturated hydrogeologic model of the Plateau de Saclay (France). Journal of Hydrology, 2016, 535, 495-508, doi:10.1016/j.jhydrol.2016.02.014

Horgue2015a(1,2)

Horgue, P.; Soulaine, C.; Franc, J.; Guibert, R.; Debenest, G., An open-source toolbox for multiphase flow in porous media. Computer Physics Communications, 2015, 187, 217-226

Horgue2015b(1,2)

Horgue, P.; Franc, J.; Guibert, R.; Debenest, G., An extension of the open-source porousMultiphaseFoam toolbox dedicated to groundwater flows solving the Richards’ equation. , 2015, Archives ouvertes HAL, hal-01206922

Gerke1993(1,2)

Gerke, H. H.; Van Genuchten, M. T. A Dual-Porosity Model For Simulating The Preferential Movement Of Water And Solutes In Structured Porous-Media. Water Resources Research, 1993, 29, 305-319 doi:doi.org/10.1029/92WR02339

Geuzaine2009(1,2,3,4)

Geuzaine, C.; Remacle, J. F. Gmsh: A 3-D finite element mesh generator with built-in pre- and post-processing facilities. International Journal For Numerical Methods In Engineering, 2009, 79, 1309-1331, doi:doi.org/10.1002/nme.2579

Genuchten1980

Van Genuchten, M.T. A closed-form equation for predicting the hydraulic conductivity of unsaturated soils. Soil Sci. Soc. Am. J., 1980, 44, 892-898 doi:10.2136/sssaj1980.03615995004400050002x

Ippisch2006

Ippisch, O. and Vogel, H. J. and Bastian, P. Validity limits for the van Genuchten-Mualem model and implications for parameter estimation and numerical simulation. Advances In Water Resources, 2006, 29, 1780-1789, doi:doi.org/10.1016/j.advwatres.2005.12.011


4.6. Annexes

4.6.1. Hypercube Latin

L’Hypercube Latin est une technique d’échantillonnage adaptée au calcul d’incertitude, permettant de réduire le nombre d’échantillons par rapport à une technique de Monte Carlo. Il est désigné par LHS pour Latin Hypercube Sampling.

Les principes sont les suivants :
  • diviser l’intervalle de variation de chaque paramètre en un nombre égal n de sous-intervalles équiprobables,

  • sélectionner aléatoirement une valeur dans chacun de ces sous-intervalles,

  • construire n échantillons par permutation aléatoire de manière que chaque sous-intervalle de chaque paramètre soit représenté une et une seule fois. La Figure 4.6.1 propose une représentation schématique de cet échantillonnage dans le cas de deux paramètres et de 5 échantillons.

_images/lhs1.png

Figure 4.6.1 Représentation bidimensionnelle d’un échantillonnage par Hypercube Latin dans le cas de deux paramètres et de 5 échantillons (n=5 ). X1 a une distribution normale entre A1 et B1, X2 une distribution uniforme entre A2 et B2.

Pour définir les n sous-intervalles équiprobables de chaque densité de probabilité, il suffit de diviser l’image de la fonction de répartition correspondante en autant d’intervalles réguliers, puis d’inverser la fonction de répartition.

4.6.1.1. Loi uniforme ou log-uniforme

Dans le cas d’une loi uniforme ou log-uniforme dans l’intervalle [A,B], l’inversion est immédiate :

\begin{cases}
X=A+r\left(B-A\right)\\
\ln X=\ln A+r\left(\ln B-\ln A\right)
\end{cases}

où r désigne un nombre généré aléatoirement dans chacun des n intervalles réguliers échantillonnant [0,1].

Un exemple est fourni Figure 4.6.2, dans le cas de 5 échantillons et d’une distribution uniforme entre A2 et B2.

_images/lhs2.png

Figure 4.6.2 Correspondance entre les intervalles échantillonnés d’une part, la densité de probabilité et la fonction de répartition d’autre part. Exemple avec n=5 , distribution uniforme entre A2 et B2.

4.6.1.2. Loi normale ou log-normale

Dans le cas d’une loi normale (ou log-normale), l’inversion est plus complexe et utilise la fonction erreur définie par :

erf\left(x\right)=\frac{2}{\sqrt{\pi}}\int_{0}^{x}e^{-t^{2}}dt

qui est classiquement tabulée et disponible dans des librairies informatiques.

En effet, la fonction de répartition d’une distribution normale de moyenne mu et d’écart-type sigma s’écrit :

F_{\mu,\sigma}\left(x\right)=\frac{1}{\sigma\sqrt{2\pi}}\int_{-\infty}^{x}e^{-\frac{\left(t-\mu\right)^{2}}{2\sigma^{2}}}=\frac{1}{2}\left[1+erf\left(\frac{x-\mu}{\sigma\sqrt{2}}\right)\right]

où :

x=\mu+\sigma\sqrt{2}\: erf^{-1}\left(2z-1\right)

où z désigne une valeur tirée aléatoirement dans chacun des sous-intervalles décomposant l’image de la fonction de répartition.

Dans la pratique, plutôt que de préciser les paramètres \mu et \sigma de la loi normale, on préfère souvent imposer les bornes A et B de l’intervalle de variation du paramètre, définies comme les quantiles 0,001 et 0,999 respectivement. On a ainsi :

B=\mu+\sigma\sqrt{2}\: erf^{-1}\left(0,998\right)=\mu+3,09\:\sigma

puis, comme \mu=\frac{A+B}{2} :

\sigma=\frac{B-A}{2\sqrt{2}\: erf^{-1}\left(0,998\right)}=\frac{B-A}{6,18}

Un exemple est fourni Figure 4.6.3, dans le cas de 5 échantillons et d’une distribution normale entre A1 et B1.

_images/lhs3.png

Figure 4.6.3 Correspondance entre les intervalles échantillonnés d’une part, la densité de probabilité et la fonction de répartition d’autre part. Exemple avec n=5 , distribution normale entre A1 et B1.


4.6.2. Logs stratigraphiques

Cette annexe présente les différentes codifications utilisées pour la représentation graphique des logs stratigraphiques :

_images/BRGM_temps_geologiques.png

Figure 4.6.4 Codification BRGM de l’échelle des temps géologiques.

_images/RGB.png

Figure 4.6.5 Codification colorimétrique RGB de l’échelle des temps géologiques, selon CGMW.

_images/USGS1.png

Figure 4.6.6 Codification des figurés lithologiques, selon USGS (1).

_images/USGS2.png

Figure 4.6.7 Codification des figurés lithologiques, selon USGS (2).

_images/USGS3.png

Figure 4.6.8 Codification des figurés lithologiques, selon USGS (3).


4.6.3. Fichiers utilisateurs

Cette annexe présente les formats des fichiers externes utilisés par le plugin THYRSIS pour modifier certaines données du modèle hydrogéologique. Leur format est indépendant du code d’hydrogéologie utilisé. Les unités sont des unités SI, à savoir : dates en secondes, longueurs en m, valeurs d’infiltration et de perméabilité en m/s, masses en kg.

4.6.3.1. u_epaisseur_zns.node.sat ou u_epaisseur_zns.elem.sat

Ces fichiers spécifient la hauteur de zone non saturée à prendre en compte au droit de chaque noeud ou élément du maillage 2D. Utiles lorsqu’on souhaite imposer une épaisseur de ZNS différente de celle du modèle.

Ils contiennent autant de lignes que de noeuds ou d’éléments de maillage (selon l’extension « .node » ou « .elem »), avec une valeur d’épaisseur (m) sur chaque ligne, ordonnées par numéro de noeud ou d’élément.

Exemple:

27.6423
27.6636
27.6938
27.7452
27.7969
27.8473
27.9090
...

4.6.3.2. u_permeabilite_zns.node.sat ou u_permeabilite_zns.elem.sat

Ces fichiers spécifient la perméabilité en zone non saturée, au droit de chaque noeud ou élément du maillage 2D. Utiles lorsqu’on souhaite imposer une perméabilité en ZNS spécifique, alors que le modèle attribue à la ZNS la perméabilité en zone saturée calculée au droit de la colonne ZNS considérée.

Ils contiennent autant de lignes que de noeuds ou d’éléments de maillage (selon l’extension « .node » ou « .elem »), avec une valeur de perméabilité (m/s) sur chaque ligne, ordonnées par numéro de noeud ou d’élément.

Exemple:

0.10062337E-04
0.10151087E-04
0.10006153E-04
0.10216447E-04
0.10134652E-04
0.98510526E-05
0.10076285E-04
...

4.6.3.3. u_infiltration.node.sat ou u_infiltration.elem.sat

Ces fichiers spécifient l’infiltration en régime permanent à prendre en compte au droit de chaque noeud ou élément du maillage 2D. C’est une option à utiliser avec circonspection, car elle conduit à une incohérence entre l’infiltration simulée et celle de modèle. Elle est surtout utile pour tester l’influence d’une infitration spatiale hétérogène.

Ils contiennent autant de lignes que de noeuds ou d’éléments de maillage (selon l’extension « .node » ou « .elem »), avec une valeur d’infiltration (m/s) sur chaque ligne, ordonnées par numéro de noeud ou d’élément.

Exemple:

2.98e-09
2.98e-09
2.98e-09
2.98e-09
2.98e-09
2.98e-09
...

4.6.3.4. u_infiltration_transitoire.sat et u_infiltration_transitoire.insat

Ces fichiers spécifient l’infiltration en régime transitoire, dépendant du temps mais spatialement homogène. Ces fichiers sont requis dans les cas de simulations d’écoulement en régime transitoire, avec l’extension « .insat » si la zone non saturée est prise en compte, « .sat » sinon. Pour que le calcul soit pertinent, il faut s’assurer que l’infiltration moyenne reste égale à l’infiltration moyenne du régime permanent.

Le format de fichier est présenté dans l’exemple ci-dessous. La date est renseignée à droite de la chaîne de caractères « date », et l’infiltration est renseignée à la ligne suivante, avec le signe négatif correspondant à un flux entrant. La valeur 0 en seconde colonne n’est pas utilisée mais doit être renseignée.

Exemple:

date  0.0000000E+00
-0.6498923E-08 0
date  0.2629800E+07
-0.1411746E-07 0
date  0.5259600E+07
-0.9015090E-08 0
...

4.6.3.5. u_debit_entrant.sat

Ce fichier spécifie un flux de matière injecté directement en nappe. Il écrase le fichier « debit_entrant.sat » généré automatiquement par le plugin.

La date est renseignée à droite de la chaîne de caractères « date », et le flux de soluté (kg/s) est renseigné aux lignes suivantes, avec le signe négatif correspondant à un flux entrant et un format dépendant du logiciel d’hydrogéologie :

  • OpenFOAM : Les valeurs de flux de soluté sont données pour chaque cellule d’injection, précédées des coordonnées de la cellule.

  • METIS : Les valeurs de flux de soluté sont données pour chaque noeud d’injection, précédées du numéro de noeud.

Exemple OpenFOAM:

date  3.155760e+05
637111.521 6847271.833 100 -2.514596e-16
637118.458 6847275.000 100 -3.023174e-16
637122.708 6847281.833 100 -1.394043e-17
637107.625 6847288.833 100 -8.280920e-19
637117.125 6847265.000 100 -2.757591e-17
...
date  6.311520e+05
637111.521 6847271.833 100 -2.859856e-16
637118.458 6847275.000 100 -3.438263e-16
637122.708 6847281.833 100 -1.585449e-17
637107.625 6847288.833 100 -9.417912e-19
637117.125 6847265.000 100 -3.136215e-17
...
date  9.467280e+05
637111.521 6847271.833 100 -2.860335e-16
637118.458 6847275.000 100 -3.438840e-16
637122.708 6847281.833 100 -1.585715e-17
637107.625 6847288.833 100 -9.419490e-19
637117.125 6847265.000 100 -3.136741e-17
...

Exemple METIS:

date  3.155760e+05
17320  -4.832293e-16
11843  -2.915937e-16
1107  -5.763685e-16
17315  -5.149194e-16
...
date  6.311520e+05
17320  -5.993523e-16
11843  -3.616655e-16
1107  -7.148734e-16
17315  -6.386578e-16
...
date  9.467280e+05
17320  -5.992676e-16
11843  -3.616144e-16
1107  -7.147724e-16
17315  -6.385675e-16
...

4.6.3.6. u_debit_entrant.insat*

Ces fichiers, dont le nom se termine par le numéro de la colonne ZNS, spécifient le flux de matière à considérer dans la ZNS. Ils écrasent les fichiers « debit_entrant*.insat » générés automatiquement par le plugin.

La date est renseignée à droite de la chaîne de caractères « date », et le flux de soluté (kg/s) est renseigné à la ligne suivante, avec le signe négatif correspondant à un flux entrant et un format dépendant du logiciel d’hydrogéologie :

  • OpenFOAM : La valeur de flux de soluté est précédée des coordonnées de la cellule dans le cas d’une injection en profondeur, de « top » dans le cas d’une injection au sommet de la colonne insaturée.

  • METIS : La valeur de flux de soluté est précédée du numéro de noeud du maillage de la colonne insaturée.

Exemple OpenFOAM (injection en surface):

date 0.000000e+00
top -2.314815e-15
date 7.862400e+06
top -2.314815e-15
...

Exemple OpenFOAM (injection en profondeur):

date 0.000000e+00
0.5 0.5 146.675 -2.314815e-15
date 7.862400e+06
0.5 0.5 146.675 -2.314815e-15
...

Exemple METIS:

date   0.0000000E+00
625   2.3148148E-15
date   7.8624000E+06
625   2.3148148E-15
...

4.6.3.7. u_debit_eau_entrant.sat

Ce fichier spécifie l’infiltration injectée directement dans la nappe. Il écrase le fichier « debit_eau_entrant.sat » généré automatiquement par THYRSIS.

La date est renseignée à droite de la chaîne de caractères « date », et les flux d’eau sont renseignés aux lignes suivantes, avec le signe négatif correspondant à un flux entrant et un format dépendant du logiciel d’hydrogéologie :

  • OpenFOAM : Les flux d’eau sont renseignés en (m3/s) pour chaque cellule d’injection et précédés des coordonnées de la cellule.

  • METIS : Les flux d’eau sont renseignés en (m/s) pour chaque noeud d’injection et précédés du numéro de noeud.

Exemple OpenFOAM:

date 3.155760e+05
637111.521 6847271.833 100 -1.021677e-03
637118.458 6847275.000 100 -1.228312e-03
637122.708 6847281.833 100 -5.663981e-05
637107.625 6847288.833 100 -3.364528e-06
637117.125 6847265.000 100 -1.120406e-04
...
date 6.311520e+05
637111.521 6847271.833 100 -1.021858e-03
637118.458 6847275.000 100 -1.228529e-03
637122.708 6847281.833 100 -5.664982e-05
637107.625 6847288.833 100 -3.365123e-06
637117.125 6847265.000 100 -1.120604e-04
...
date 9.467280e+05
637111.521 6847271.833 100 -1.021913e-03
637118.458 6847275.000 100 -1.228596e-03
637122.708 6847281.833 100 -5.665289e-05
637107.625 6847288.833 100 -3.365305e-06
637117.125 6847265.000 100 -1.120665e-04
...

Exemple METIS:

date 3.155760e+05
17320 -3.487842e-05 0
11843 -2.104659e-05 0
1107 -4.160100e-05 0
17315 -3.716574e-05 0
...
date 6.311520e+05
17320 -3.488461e-05 0
11843 -2.105032e-05 0
1107 -4.160838e-05 0
17315 -3.717234e-05 0
...
date 9.467280e+05
17320 -3.488655e-05 0
11843 -2.105150e-05 0
1107 -4.161070e-05 0
17315 -3.717441e-05 0
...

5. Traduction

5.1. Traduction de la documentation

La documentation de Thyrsis est basée sur sphinx, un générateur de documentation écrit en python. Les fichiers sources sont situés dans le dossier doc/source :

  • conf.py est le script python qui définit la configuration de la documentation sphinx (modèles, langues, etc.).

  • les fichiers *.rst sont des fichiers texte qui suivent la syntaxe reStructuredText. Ils doivent être édités directement pour mettre à jour la version anglaise de la documentation.

  • le dossier images contient les images utilisées dans la documentation.

  • le dossier locale contient les traductions dans les autres langues, organisées avec un sous-dossier par langue.

Pour traduire la documentation de THYRSIS dans une autre langue, suivre les trois étapes suivantes :

  • dans le dossier doc, utiliser le Makefile avec la commande suivante pour créer les fichiers de références :

    make gettext
    

Les fichiers de référence seront créés dans le dossier build/locale.

  • pour initier une nouvelle traduction ou mettre à jour les fichiers de traductions, utiliser la commande suivante :

    sphinx-intl update -p build/locale/ -l fr
    

où “fr” est le code ISO 639-1 de la langue souhaitée.

Les fichiers .po seront créés dans le dossier source/locale/fr/LC_MESSAGES.

  • Ouvrir les fichiers .po avec QtLinguist pour traduire chaque phrase (Figure 5.1.1).

    _images/qt_linguist.png

    Figure 5.1.1 Exemple de fichier .po ouvert avec QtLinguist

Pousser les fichiers .po dans le dépôt gitlab. La documentation en ligne sera mise à jour après que le commit aura été intégré à la branche master. Pour les installations locales linux, réinstaller THYRSIS en utilisant le module package.py.

Pour exporter la documentation en pdf, utiliser la commande suivante dans le dossier doc :

make latexpdf

Vous pourriez avoir besoin d’installer le paquet latexmk pour produire le fichier.

Le fichier pdf est créé dans le répertoire doc/build/latex.

5.2. Traduction de l’interface

Pour corriger et traduire l’interface du plugin THYRSIS, utiliser les fonctionnalités de traduction de qt. Les chaînes de caractères à traduire sont les suivantes :

  • les chaînes de caractères depuis les fichiers *.ui (dans le dossier gui)

  • les chaînes de caractères identifiées par la fonction tr dans les fichiers *.py

Tous ces fichiers sont listés dans le fichier i18n/thyrsis.pro. Les fichiers *.ts sont des modèles utilisés pour gérer les traductions. Pour mettre à jour les fichiers modèles, utiliser la commande :

pylupdate5 thyrsis.pro

Ouvrir ensuite les fichiers thyrsis_xx.ts avec le logiciel QtLinguist pour traduire chacune des chaînes de caractères. Lorsque la traduction est réalisée, utiliser soit la fonctionnalité de publication de QtLinguist, soit la commande suivante, afin de produire le fichier *.qm :

lrelease thyrsis_xx.ts