Brevet FR2948215A1 — publié le 20110121

La présente invention concerne le domaine de l'exploration pétrolière, et plus particulièrement l'étude des écoulements de fluides au sein d'une formation souterraine. La méthode s'applique notamment à l'étude des déplacements de fluides tels que des hydrocarbures dans un gisement, ou réservoir souterrain, traversé par des failles. Ces études sont réalisées dans le cadre de modélisation de bassin, de simulation de réservoir, 15 et/ou de simulations d'injection de 002 dans une formation souterraine. La modélisation de bassin vise à reconstruire l'histoire géologique d'un bassin sédimentaire et de ses systèmes pétroliers pour aider à localiser les pièges à hydrocarbures, c'est-à-dire les réservoirs, à estimer leur quantité et qualité, et enfin, à évaluer les risques de rencontrer des excès de pression pendant les forages. La simulation de réservoir étudie 20 l'évolution au cours du temps des proportions d'eau, de gaz et de pétrole dans le réservoir afin de juger de la rentabilité, de valider ou d'optimiser la position des puits assurant le fonctionnement de l'exploitation du réservoir. Dans une époque où le développement durable et la protection d'environnement deviennent primordiaux, une troisième étude importante liée à l'exploration pétrolière est d'effectuer des simulations pour injecter du CO2 dans le milieu 25 poreux. La modélisation de bassin, la simulation de réservoir et la simulation de CO2 sont des techniques basées sur la simulation d'écoulement dans un milieu poreux. Ces simulations sont réalisées au moyen d'un système d'équations aux dérivées partielles par des méthodes de volumes finis sur un maillage décrivant la géométrie du milieu souterrain concerné. 30 Aujourd'hui, l'exploration s'intéresse aux zones à géométrie complexe où les failles sont nombreuses et leurs positions aléatoires. La construction automatique d'un maillage 3D capable de représenter cette complexité géométrique est la première étape indispensable à 1 l'élaboration du logiciel de simulation, le simulateur d'écoulement, pour un tel milieu, à partir des horizons qui délimitent les différentes couches géologiques, et des failles qui coupent les horizons. Les horizons et les failles sont fournis en tant que surfaces, triangulées à partir d'un semis de points. Ces points résultent généralement de sondages sismiques. Compte tenu des simulateurs d'écoulement utilisés dans l'industrie, il est nécessaire que le maillage comprenne le plus d'éléments hexaédriques possible pour permettre un meilleur résultat de la simulation ; et il faut mailler entre les horizons pour bien respecter l'infrastructure du milieu. État de la technique Dans le monde de l'exploration pétrolière, la plupart des simulateurs d'écoulement du milieu poreux actuels travaille sur des grilles régulières ou � Scottish cartésiennes �. Pour essayer d'adapter les maillages aux failles et à toutes formes d'hétérogénéités, en tant que support du calcul de la simulation, on connaît la technique du raffinement local des grilles, la technique des grilles CPG (décrits dans le document FR 2 747 490 par exemple), ou encore, la technique des grilles avec des noeuds dédoublés verticalement. Les maillages décrits ci-dessus sont basés sur des grilles. Ils sont quasiment structurés, c'est-à-dire que leur topologie est fixe : chaque sommet interne est incident à un nombre fixé de mailles et chaque maille est délimitée par un nombre fixé de faces et d'arêtes. Ils ne sont ainsi adaptés qu'à une géométrie relativement simple. Pour un simulateur de bassin, pour chaque âge donné, on construit un maillage par empilement des couches, représentées sur une même grille 2D (carte), reliées par des verticales. La construction du maillage est avantageusement très simple. Cependant, il est impossible de représenter des failles souvent obliques. Pour pouvoir gérer les failles, il existe des méthodes qui effectuent d'abord une décomposition manuelle par blocs suivant les failles, puis génèrent un maillage simple pour chaque bloc. Cette approche n'est pourtant pas totalement adaptée à la simulation d'écoulement dans un milieu à géométrie complexe pour deux raisons : premièrement, la qualité d'éléments n'est pas satisfaisante pour des géométries irrégulières ; deuxièmement, avec la présence nombreuse et aléatoire des failles, il est presque impossible d'effectuer la décomposition manuelle du milieu traité. Pour bien capter toute la complexité de la géométrie du milieu, il est aussi possible de construire un maillage entièrement non structuré, avec une topologie complètement arbitraire : un sommet du maillage peut appartenir à un nombre quelconque de mailles et chaque maille peut posséder un nombre quelconque d'arêtes ou de faces. On peut citer par exemple les maillages du type PErpendicular Blssector (PEBI) ou Voronoï proposés dans : Z.E. Heinemann, G.F. Heinemann et B.M. Tranta, "Modelling heavily faulted reservoirs.", Proceedings of SPE Annual Technical Conferences, pages 9-19, New Orlean, Louisiana, september 1998, SPE. Quoiqu'ils décrivent bien les géométries complexes, les maillages non structurés sont très lourds à construire, à manipuler et à stocker, au contraire de ceux structurés. Pour réconcilier entre les avantages et les inconvénients, des approches dites "hybrides" ont été proposées qui utilisent les maillages non structurés uniquement dans les zones à géométrie complexe. Néanmoins, le recollage des maillages non structurés aux ceux structurés reste une tâche difficile. Enfin, quatre grandes catégories de méthode existent pour générer d'une manière automatique des maillages hexa-dominant, elles sont : les méthodes d'octree/grille, les méthodes de plâtrage, les méthodes par bloc, les méthodes par balayage. Le principe des méthodes octree/grille consiste à emballer le domaine à mailler dans une grille, et à subdiviser ce cube d'une façon récursive jusqu'à ce que la géométrie du domaine soit bien captée, c'est-à-dire jusqu'à ce que le critère de la taille des mailles, qui dépend essentiellement de la distance minimale des points du contour et des ressources disponibles, soit rempli. Des éléments tétraédriques ou hexaédriques sont alors créés à l'intersection des surfaces du domaine en suivant certains motifs d'intersections. Les méthodes d'octree/grille sont avantageusement automatisées et applicables quelle soit la géométrie. Pourtant, le maillage généré n'est pas conforme à la forme du domaine ; de plus, lorsque le contour est irrégulier, un calcul intense d'intersections est inévitable et une explosion du nombre de mailles peut se produire pour atteindre une bonne précision d'approximation des frontières. Les méthodes de type plâtrage consistent à remplir le volume du domaine avec des éléments 3D à partir du front surfacique initial du modèle, et en avançant vers le centre en repartant du nouveau front qui vient d'être construit. La procédure se termine une fois que le front devient vide. Dans les algorithmes de plâtrage, il est difficile de déterminer les ordres d'avancée du front et de détecter et traiter les zones de collision et de divergence. Ces méthodes sont ainsi considérées comme non robustes ; surtout quand les géométries complexes sont concernées, l'obtention d'un maillage de bonne qualité n'est pas garantie. Les approches par blocs consistent à décomposer le domaine concerné en blocs grossiers ayant une topologie élémentaire (triangle, quadrangle, tétraèdre, pentaèdre, et hexaèdre), puis à mailler chaque bloc indépendamment les uns les autres par des méthodes algébriques ou par résolution d'EDP (équations aux dérivées partielles), et à recoller à la fin les blocs pour former le maillage global du domaine entier. Le grand avantage des méthodes de blocs est qu'il est trivial de mailler une fois que la partition est achevée ; de plus, il est possible de résoudre le problème en parallèle sur chaque bloc. Toutefois, la partition elle-même reste très lourde et difficilement automatisable, et l'interfaçage inter-blocs doit être soigneusement géré pour assurer la conformité du recollement final. Parfois considérées comme maillage 2.5D, les méthodes par balayage � balaient � un maillage quadrilatéral en suivant une courbe. Des couches régulières d'hexaèdres sont formées à un intervalle spécifié utilisant la même topologie que le maillage quadrilatéral. Cette technique peut être généralisée pour mailler des volumes de certaines classes par définition des surfaces de source et de cible. Les maillages générés par les méthodes de balayage sont automatiquement alignés sur les interfaces, ce qui est évidemment un grand avantage. Pourtant, ces méthodes ne sont pas bien adaptées dans le contexte de la simulation du milieu poreux, où le changement topologique peut parvenir d'une surface horizon à une autre à cause de l'intervention des failles. L'objet de l'invention concerne une méthode pour générer un maillage tridimensionnel d'un milieu souterrain, prenant en compte les déformations induites par les failles du milieu, et en s'affranchissant des problèmes précédemment mentionnés. La méthode y parvient en construisant des quadrillages réguliers pour chaque horizons géologiques, puis en les déformant conformément aux failles du milieu, puis en réalisant une correspondance entre chaque quadrillage, de façon à construire un maillage contenant un maximum de mailles hexaédriques. La méthode selon l'invention L'invention concerne une méthode pour générer un maillage d'un milieu souterrain comprenant au moins une couche sédimentaire traversée par au moins une faille, la couche étant délimitée verticalement par deux horizons géologiques discrétisés par deux surfaces tridimensionnelles triangulées. La méthode comporte les étapes suivantes : on transforme chaque surface tridimensionnelle en une surface bidimensionnelle triangulée sur laquelle on projette ladite faille, au moyen d'une technique de dépliage isométrique, la faille ainsi projetée formant des segments décrivant une courbe ouverte ; on génère un quadrillage bidimensionnel régulier pour chaque surface bidimensionnelle triangulée ; on prend en compte ladite faille au sein dudit quadrillage régulier, en déformant des quadrilatères du quadrillage intersectés par ladite courbe ; on transforme ledit quadrillage régulier ainsi déformé en une surface quadrillée tridimensionnelle, et on transforme en deux triangles chaque quadrilatère traversé par ladite faille au niveau d'une diagonale ; - on réitère les étapes précédentes pour la seconde surface tridimensionnelle triangulée en conservant un même nombre de quadrilatère dans chaque direction ; on génère ledit maillage du milieu souterrain en créant des liaisons entre les noeuds de surfaces quadrillées tridimensionnelles voisines, tout en respectant ladite faille. Selon l'invention, si le milieu comporte plus d'une couche sédimentaire, on peut construire le maillage en réitérant couche par couche. On peut générer le quadrillage régulier au moyen des étapes suivantes : on choisit quatre points sur la bordure de la surface 2D, définissant quatre courbes sur la bordure ; on choisit les dimensions du quadrillage (N, M), et l'on discrétise alternativement chacune des quatre courbes en fonction desdites dimensions; on applique la formule de Coons pour construire le quadrillage. Pour prendre en compte la faille au sein du quadrillage régulier, on peut réaliser les étapes suivantes : 5 - on détermine une première arrête dudit quadrillage intersectée par ladite courbe ouverte, en parcourant ladite courbe segment par segment et en partant d'une extrémité de ladite courbe ouverte ; on déplace l'extrémité de l'arête intersectée la plus proche du point d'intersection vers ledit point d'intersection ; Selon un mode de réalisation, avant de déplacer l'extrémité la plus proche, on vérifie que ce déplacement n'engendre pas un quadrilatère dont au moins un angle est supérieur à un seuil d'angle fixé, si c'est le cas, on déplace l'autre extrémité de l'arrête intersectée. Si le milieu comporte plusieurs failles, on peut prendre en compte les failles au sein dudit quadrillage régulier, en réalisant les étapes suivantes : on détermine une première arête dudit quadrillage intersectée par ladite courbe ouverte, en parcourant ladite courbe segment par segment et en partant d'une extrémité de ladite courbe ouverte ; - on déplace l'extrémité de l'arête la plus proche du point d'intersection vers ledit point d'intersection si ce déplacement n'engendre pas un quadrilatère dont au moins un angle est supérieur à un seuil d'angle fixé, et si cette extrémité n'a pas déjà été déplacée ; sinon - on déplace l'autre extrémité vers ledit point d'intersection si cette extrémité n'a pas déjà été déplacée ; sinon on raffine le maillage, jusqu'à ce qu'une extrémité puisse être déplacée, et on déplace cette extrémité. Selon l'invention, pour raffiner le maillage on peut utiliser les étapes suivantes : on ajoute un nouveau noeud au maillage, correspondant à un point d'intersection entre une faille et l'arête pour laquelle aucune extrémité ne peut être déplacée ; si l'arête est verticale, on dédouble la ligne complète du quadrillage contenant le point d'intersection, en ajoutant une succession d'arêtes horizontales, dans tous les quadrilatères de la ligne, la succession d'arêtes passant par le point d'intersection ; si l'arête est horizontale, on dédouble la colonne complète du quadrillage contenant le point d'intersection, en ajoutant une succession d'arêtes verticales, dans tous les quadrilatères de la colonne, la succession d'arêtes passant par le point d'intersection. On peut transformer le quadrillage régulier en une surface quadrillée à trois dimensions en réalisant les étapes suivantes : pour chaque noeud non situé sur une faille, on détermine ses coordonnées à partir de coordonnées barycentriques du noeud dans un repère défini par un triangle de la surface triangulée 2D auquel il appartient ; pour chaque noeud situé sur une faille, on détermine ses coordonnées à partir d'abscisses curvilignes mesurées sur ladite faille ; on établit des connectivités entre les noeuds de façon à maximiser un nombre de quadrilatère, seuls des quadrilatères pour lesquels une faille passe par l'une de ses diagonales, sont divisés en deux triangles. Enfin, on peut créer des liaisons entre les noeuds en reliant chaque noeud de chaque surface quadrillée tridimensionnelle ayant des mêmes coordonnées i, j, et si une faille intersecte cette liaison, on relie un noeud avec ladite faille en considérant une direction d'un noeud voisin. D'autres caractéristiques et avantages de la méthode selon l'invention, apparaîtront à la lecture de la description ci-après d'exemples non limitatifs de réalisations, en se référant aux figures annexées et décrites ci-après. Présentation succincte des figures la figure 1 montre la détection d'un quadrilatère dégénéré - la figure 4 montre le principe du raffinement la figure 2 montre un quadrillage de dimension 20 x 15 et une faille à caler - la figure 3 montre le même quadrillage après le calage avec la faille - la figure 5 montre un quadrillage de dimension 25 x 20 avec 7 failles avant le calage la figure 6 montre le même quadrillage après le calage avec ces 7 failles. La dimension est devenue 51 x 33 - les figures 7 à 11 montrent l'enchaînement des démarches de la méthodologie proposé par la présente invention, en appliquant sur un cas réel la figure 7 montre un horizon réel 3D triangulé - la figure 8 montre le même horizon déplié la figure 9 montre le quadrillage généré sur l'horizon déplié et calé avec les failles - la figure 10 montre le quadrillage après le report en horizon réel 3D la figure 11 montre le maillage hexa-dominant généré en mettant correspondance de deux horizons voisins - la figure 12 montre les 3 types d'éléments d'un quadrillage reporté en horizon 3D la figure 13 montre le principe de la mise en correspondance de deux horizons les figures 14 et 15 montrent le problème de la mise en correspondance de deux horizons en zone faillée - les figures 16 et 17 montrent la solution au problème ci-dessus. Description détaillée de la méthode L'invention concerne une méthode pour générer un maillage tridimensionnel d'un milieu souterrain, prenant en compte les déformations induites par les failles du milieu, et comportant un maximum de mailles hexaédriques. Le maillage est ainsi adapté à l'étude des écoulements au sein du milieu. Couplée à un simulateur d'écoulement, l'invention propose une technique pour évaluer, en accord avec un schéma numérique défini, des écoulements de fluides dans un milieu poreux à géométrie complexe en présence des failles. Le milieu souterrain comprend au moins une couche sédimentaire traversée par au moins une faille. Une couche sédimentaire est délimitée verticalement par deux horizons géologiques discrétisés par deux surfaces tridimensionnelles triangulées. Les figures 7 à 11 illustrent les différentes étapes de la méthode pour générer le maillage du milieu souterrain. Elle comprend les étapes suivantes : 1. on transforme chaque surface tridimensionnelle en une surface bidimensionnelle triangulée sur laquelle on projette la faille, au moyen d'une technique de dépliage isométrique, la faille ainsi projetée formant des segments décrivant une courbe ouverte ; 2. on génère un quadrillage bidimensionnel régulier pour chaque surface bidimensionnelle triangulée ; 3. on prend en compte la faille au sein du quadrillage régulier, en déformant des quadrilatères du quadrillage intersectés par la courbe ; 4. on transforme le quadrillage régulier ainsi déformé en une surface quadrillée tridimensionnelle, et on transforme en deux triangles chaque quadrilatère traversé par la faille au niveau d'une diagonale ; 5. on réitère les étapes précédentes pour la seconde surface tridimensionnelle triangulée en conservant un même nombre de quadrilatère dans chaque direction ; 6. on génère le maillage du milieu souterrain en créant des liaisons entre les noeuds de surfaces quadrillées tridimensionnelles voisines, tout en respectant la faille. 1. Étape de dépliage isométrique Cette étape consiste à déplier d'une façon isométrique les surfaces 3D triangulée de façon à obtenir une surface 2D triangulée. Cette étape permet de coudre les déchirures des failles présentes sur les surfaces 3D triangulée. 10 On appelle � dépliage � une transformation d'une surface 3D en une surface 2D (opération consistant à mettre à plat une surface). Cette transformation est � isométrique � lorsqu'elle conserve les mesures, telles que les longueurs des arêtes, et donc les surfaces telles les aires des triangles. Le spécialiste connaît des outils et des méthodes pour réaliser un dépliage isométrique 15 de surface. La méthode selon l'invention ne dépend pas du type de méthode. 2. Étape de quadrillage Cette étape consiste à générer un quadrillage 2D régulier, à partir de la bordure de la surface 2D triangulée. On appelle quadrillage, un canevas (ensemble des lignes et des 20 points principaux d'une figure) plan constitué par deux familles de droites perpendiculaires délimitant des carrés. On génère ce quadrillage régulier au moyen des étapes suivantes : on choisit quatre points sur la bordure de la surface 2D triangulée, définissant ainsi quatre courbes sur la bordure, appelées courbes frontalières, reliant ces quatre points. 25 Ces quatre points sont préférentiellement ceux au niveau desquels la bordure forme les angles les plus petits. On les appelle � coin �. on choisit les dimensions du quadrillage (deux entiers notés N et M), et l'on discrétise alternativement chacune des quatre courbes en fonction de ces dimensions. Pour tous les quadrillages, on met en correspondance un coin et on oriente les 30 courbes frontalières de telle manière que le domaine se trouve à gauche. Le domaine est ici un terme mathématique, c'est la forme géométrique qu'on veut mailler. Cette étape sert à orienter tous les horizons de la même façon pour faciliter l'étape finale : la mise en correspondance des horizons. Puis, on subdivise les courbes frontalières en N ou M segments de longueur constante, N et M étant les mêmes que le quadrillage en dessous.5 on applique la version discrétisée la formule de Coons pour construire le quadrillage régulier s'appuyant sur l'horizon déplié (surface 2D triangulée). On rappelle la formule de Coons : Étant donné quatre courbes paramétriques Mu), f2(u), gl(v), g2(v) (0 On peut alors obtenir un maillage régulier NxM de cette surface par simple échantillonnage en prenant pour sommets les points S(i,j) correspondant aux ui = iI(N-1), vj = j/(M-1), i=0 à N-1, j=0 à M-1. La formule restreinte aux points du maillage devient: S(i, j) = (1 ù )gl(>) + g2(J) + (1ù )fi(i) + f2(i) Nù1 Nù1 Mù1 Mù1 ù [(1ù )(1ù )P(0,0) + (1ù I ) J P(0,1) Nù1 Mù1 Nù1 Mù1 + Nt 1(1 ù M 1)P(1,0) + Nl 1 M 1 P(1,1)] 3. Étape de calaqe des failles sur le quadrillage 20 La prise en compte d'une faille consiste à déformer le maillage de façon à ce qu'il soit conforme à la réalité du milieu souterrain à mailler. En effet, si une faille traverse un milieu, généralement les couches sédimentaires de ce milieu sont cassées et déformées. Le maillage doit donc rendre compte de ces déformations induites par les failles. Cas d'une faille unique 25 Au cours de cette étape, on prend en compte la faille au sein du quadrillage régulier, en réalisant les étapes suivantes : - on détermine une première arête du quadrillage intersectée par la courbe ouverte, en parcourant cette courbe segment par segment et en partant de l'une de ses extrémités ;15 on déplace l'extrémité de l'arête intersectée la plus proche du point d'intersection vers le point d'intersection. Une difficulté peut apparaître du fait que l'on puisse produire des quadrilatères dégénérés en faisant bouger cette extrémité. Ce problème est illustré sur la figure 1 : Soient trois noeuds tels que : - (i2, j2) le noeud à faire bouger - (il, j1) le noeud bougé juste avant (i2, j2) - (i0, j0) le noeud bougé juste avant (il, j1) Si (i0 = il ou j0 = j1) alors (i0, j0) et (il, j1) forment une arête (deux noeuds bougés successivement forment soit une diagonale, soit une arête d'un quadrilatère). De même, (il, j1) et (i2, j2) forment une deuxième arête si on a (il = i2 ou j1 = j2). Par conséquent, ces deux arêtes construites seront dans le même quadrilatère si Ii0 û i21 = 1 et Ij0 û j2l 1 et seront considérées comme alignées si l'angle entre elles dépasse un certain seuil d'alignement. Cette situation n'est pas acceptable car les hexaèdres ayant ce quadrilatère comme face seront torsadés. Pour surmonter cette difficulté, avant de déplacer l'extrémité la plus proche, on vérifie que ce déplacement n'engendre pas un quadrilatère dégénéré. On qualifie de dégénéré un quadrilatère dont au moins un angle est supérieur à un seuil d'angle fixé. Si effectivement, le fait de déplacer l'extrémité la plus proche engendre un tel quadrilatère, alors on déplace l'autre extrémité de l'arête intersectée. Selon l'exemple de la figure 1, on bouge l'autre extrémité de l'arête intersectée par la faille au lieu de (i2, j2). La méthode étant mise en oeuvre par un ordinateur on décrit l'algorithme relatif à cette étape. L'algorithme démarre par l'identification du quadrilatère qui contient le premier point de la faille. Puis, l'intersection entre le premier segment de la faille et les arêtes de ce quadrilatère est calculée. Si aucune intersection n'est détectée, on passe au segment suivant de la faille et on boucle jusqu'à ce qu'une intersection soit trouvée. Ensuite, on bouge l'extrémité de l'arête intersectée la plus proche du point d'intersection vers celui-ci. S'il en résulte la formation d'un quadrilatère dégénéré, c'est l'autre extrémité de l'arête qui est bougée. Pour calculer l'intersection suivante, on avance dans les quadrilatères ayant le dernier noeud épousé en commun, en excluant ceux qui ont les deux derniers noeuds épousés comme une diagonale ou une arête. S'il n'y a plus d'intersection entre le segment courant et les quadrilatères à visiter, on réaffecte les quadrilatères à visiter avec ce qui contient le bout du segment courant, et on passe au segment suivant pour calculer 5 10 15 20 25 30 l'intersection, et ainsi de suite. A la fin, on cale les deux bouts de la faille avec les noeuds les plus proches. A titre d'illustration, l'algorithme peut ainsi être décrit : SegmentFaille F- 0 ; q E- le quadrilatère conteneur du premier point de la faille ; quadsAVisiter iù q ; quadsAExclure E- nul ; tant que segmentFaille épouser le premier point de la faille avec le coin le plus proche de q ; pour chaque quadrilatère dans quadsAVisiter faire si le dernier point de la faille est dans quadrilatère alors épouser le dernier point de la faille avec le coin le plus proche du quadrilatère ; retourner ; fin si fin pour Les deux figures 2 et 3 montrent un quadrillage avant et après la prise en compte d'une faille unique. La ligne droite noire est la courbe ouverte représentant la faille. Elle ne fait pas partie du maillage. 35 Cas de failles multiples En présence de failles multiples, tous les noeuds du quadrillage ne sont pas libres de bouger, car un noeud qui a déjà été déplacé pour prendre en compte une première faille, ne doit pas être modifié pour prendre en compte une deuxième faille. L'algorithme de calage doit donc tenir compte de ce nouveau contexte plus contraignant, et une procédure de raffinement est à effectuer éventuellement pour se délibérer de cette contrainte. Selon l'invention, on prend en compte de multiples failles au sein du quadrillage régulier, en réalisant les étapes suivantes : on détermine une première arête dudit quadrillage intersectée par ladite ligne ouverte, en parcourant ladite ligne segment par segment et en partant d'une extrémité de ladite ligne ouverte ; on déplace l'extrémité de l'arête la plus proche du point d'intersection vers ledit point d'intersection si ce déplacement n'engendre pas un quadrilatère dont au moins un angle est supérieur à un seuil d'angle fixé, et si cette extrémité n'a pas déjà été déplacée ; sinon on déplace l'autre extrémité vers ledit point d'intersection si cette extrémité n'a pas déjà été déplacée ; sinon on raffine le maillage, jusqu'à ce qu'une extrémité puisse être déplacée, et on déplace cette extrémité. Le raffinement du maillage peut être réalisé au moyen des étapes suivantes : on ajoute un nouveau noeud au maillage, correspondant à un point d'intersection entre une faille et l'arête pour laquelle aucune extrémité ne peut être déplacée ; si l'arête est verticale, on dédouble la ligne complète du quadrillage contenant le point d'intersection, en ajoutant une succession d'arêtes horizontales, dans tous les quadrilatères de la ligne, la succession d'arêtes passant par le point d'intersection ; si l'arête est horizontale, on dédouble la colonne complète du quadrillage contenant le point d'intersection, en ajoutant une succession d'arêtes verticales, dans tous les quadrilatères de la colonne, la succession d'arêtes passant par le point d'intersection. 13 Ce raffinement est également appliqué à tous les horizons situés plus bas, si l'on traite les horizons du plus bas vers le plus haut. La méthode étant mise en oeuvre par un ordinateur on décrit l'algorithme relatif à cette étape. Pour décrire si un noeud est contraint par une ou plusieurs failles, deux notions sont introduites : la première dite � Degré faillé d'un noeud � et la deuxième dite � Failles passantes d'un noeud �. Degré faillé d'un noeud : Un noeud S est dit de degré faillé n s'il est le point d'intersection de n failles. Si n est nul, alors aucune faille ne passe par ce noeud. On suppose ci-après � df � le foncteur qui retourne le degré faillé d'un noeud. Les degrés faillés des noeuds sont stockés comme une propriété du quadrillage, utiles pour la phase de prise en compte des failles, pour vérifier si un noeud est contraint par des failles, pour la phase d'optimisation du quadrillage (df = 0 : bouger librement le noeud ; df = 1 : projeter sur la faille passante ; df >= 2 : ne pas bouger), et enfin, pour la phase de report en 3D du quadrillage, pour décider quand et comment un noeud est dédoublé. Failles passantes d'un noeud : c'est la liste de failles qui passent par un noeud. On suppose ci-après � faillesPassantes � le foncteur pour récupérer les failles qui passent par un noeud. Le processus global du calage des failles multiples itère de bas en haut sur tous les horizons, pour générer des quadrillages réguliers et y caler les failles. Pour chaque horizon, on génère d'abord un quadrillage de la même dimension que ceux situés plus bas (géologiquement plus anciens), puis on cale tous les points d'intersection entre les failles et les extrémités des failles. On itère ensuite sur toutes les failles pour les prendre en compte dans le maillage. Lorsqu'un raffinement est nécessaire sur un quadrillage d'un horizon pour épouser une faille, les quadrillages des horizons déjà traités subissent de manière exhaustive le même raffinement, pour garder une seule dimension pour tous les quadrillages. Concernant les structures des données, compte tenu du fait que le nombre des noeuds d'un quadrillage sur un horizon peux augmenter suite à un raffinement, une liste chaînée est utilisée pour représenter le quadrillage, afin de faciliter l'ajout d'un nouveau noeud à une position quelconque. Aussi, les noeuds traversés par une faille (nommé � noeudsEpousés �) sont enregistrés dans une liste chaînée pour permettre une insertion rapide. Pour caler une faille donnée, on cherche, segment par segment, les points d'intersection entre la faille et le quadrillage, et on décide les noeuds à bouger jusqu'à ces points d'intersection. Un point d'intersection est calculé de la façon suivante : on commence par le premier noeud dans noeudsEpousés qui représente le début du premier segment de la faille, on récupère les quatre cellules voisines de ce noeud dit � noeud courant �, et on cherche l'intersection du premier segment appelé � segment courant � avec ces quatre cellules. Si une intersection est trouvée, on choisit une extrémité de l'arête intersectée pour la bouger jusqu'au point d'intersection. Les cellules voisines du noeud représentant cette intersection deviennent les cellules à visiter pour calculer l'intersection suivante avec le même segment de faille, à l'exclusion de celles qui ont comme arête ou diagonale le nouveau noeud épousé et celui d'avant. S'il n'y a plus d'intersection entre le segment courant et les cellules à visiter, on réaffecte les cellules à visiter avec celle qui contient le bout du segment courant, et on passe au segment suivant pour calculer l'intersection, ainsi de suite. Au cours du parcours de la faille, on peut rencontrer des points déjà épousés qui représentent par exemple les intersections de la faille avec autres failles présentes sur le même horizon. Il faut donc vérifier pour le noeud dernièrement épousé, s'il existe un noeud en avant dans noeudsEpousés. Si oui, si les deux noeuds forment une arête ou une diagonale d'un quadrilatère, le noeud en avant devient le noeud courant pour calculer les cellules à visiter, et on passe au segment faille qui correspond à ce noeud pour continuer le calcul d'intersection. A titre d'illustration, l'algorithme peut ainsi être décrit : segmentFaille tant que vrai faire noeudEnAvant é- le noeud qui suit noeudCourant dans noeudsEpousées si il existe, -1 sinon ; si noeudCourant et noeudEnAvant forment une arête ou une diagonale alors si noeudEnAvant est le dernier dans noeudsEpousées alors retourner ; fin si n f- noeudEnAvant ; segmentFaille 4ù le segment de faille où se trouve n; sinon calculer l'intersection du segmentFaille avec les quadsAVisiter en excluant les quadsAExclure ; n F- la bonne extrémité de l'arête intersectée ; fin si si n 1= -1 alors cellulesAExclure4- les cellules ayant n et noeudCourant comme arête ou diagonale ; noeudCourant f- n ; cellulesAVisiter La numérotation locale des noeuds et des arêtes du quadrilatère est aussi indiquée dans le schéma. Avec cette notion des cellules pseudo-quadrilatère, le quadrillage reporté en horizon réel 3D reste une surface IJ. Une "SpllitedGrid" est décrite par : - nx et ny : nombre de colonnes et de lignes - nodes : liste des noeuds (I, J) ; cells : liste des cellules Pour un noeud (I, J), sont stockées les informations suivantes : nombre des noeuds dédoublés triangle conteneur et les coordonnées barycentriques dans le triangle, si le noeud n'est pas dédoublé ; pour chaque noeud dédoublé : numéro de faille, référence du côté de la faille, numéro du segment de la faille et abscisse curviligne du noeud sur ce segment. Quand le noeud représente une intersection entre des failles, les informations stockées sont plutôt le numéro du noeud dans la triangulation, la référence du côté d'une faille, l'autre référence du côté de l'autre faille. pour chaque noeud dédoublé : coordonnées x, y, z Pour une cellule pseudo-quadrilatère, sont stockées les informations suivantes : type de la cellule nombre de sommets tableau de sommets L'algorithme démarre par un parcours des noeuds du quadrillage régulier 2D épousé avec les failles. Pour chaque noeud (I, J), leurs failles passantes sont d'abord récupérées. S'il n'y a pas de failles passantes, un triangle conteneur du noeud dans la triangulation dépliée est localisé, le noeud correspondant sur l'horizon réel 3D est calculé en utilisant les 15 coordonnées barycentriques du triangle du même numéro sur la triangulation originale 3D. Si le noeud (I, J) se trouve sur une seule faille, est d'abord récupéré le segment de la faille où se trouve ce noeud en espace déplié. L'abscisse curviligne du noeud sur ce segment est ensuite calculée. Puis, les deux noeuds correspondants dédoublés sont calculés en utilisant cette abscisse curviligne sur le même segment en deux côtés de la faille en espace réel. 20 Pour un noeud se situant à l'intersection des failles, son numéro dans la triangulation est récupéré, les références des côtés de failles qui s'y intersectent sont enregistrées. A part les coordonnées, les informations concernant les failles ou le triangle conteneur sont stockées pour faciliter la génération du maillage volumique par la mise à correspondance des horizons. 25 Une fois que les noeuds du quadrillage déplié sont reportés en horizon réel, la connectivité entre ces noeuds est établie en formant des cellules pseudo-quadrilatères. Ces cellules sont construites une par une en parcourant d'abord la direction I puis J. Le type de la cellule courante est d'abord déterminé. Pour ce faire, il faut juste vérifier s'il y a une faille passante sur l'une de deux diagonales du quadrilatère en quadrillage déplié. Si oui, le type 30 est 1 ou 2, si non, le type est O. Le nombre de sommets pour la cellule courante est alors obtenu en fonction de son type, ainsi que l'indice (I, J) de chaque sommet. Avec cet indice, on vérifie si un sommet est dédoublé ou pas, en examinant la liste de noeuds (I, J) préalablement remplis. Si tous les sommets sont dédoublés, on ajoute la cellule courante 10 dans une liste temporaire, qui sauvegarde les cellules avec tous ses sommets dédoublés pour traiter à la fin, et on passe à la cellule suivante. Sinon, le noeud IJ non dédoublé est tout de suite reporté, car il y a un seul noeud 3D correspondant. Pour chaque noeud de la cellule courante déjà reporté, les noeuds adjacents et opposés dédoublés dans la cellule sont calculés de la façon suivante : si le noeud non dédoublé et celui adjacent est sur la même faille, on choisit le noeud de même côté de la faille ; sinon, on prend le centième point sur l'arête constituée par le noeud non dédoublé et celui adjacent, on le localise dans la triangulation dépliée, on le reporte en triangulation réelle en utilisant le même triangle et les mêmes coordonnées barycentriques. On calcule ensuite la distance entre le point reporté et tous les noeuds dédoublés du noeud IJ adjacent, on choisit le noeud le plus proche comme le sommet correspondant de la cellule courante. Pour le noeud opposé au noeud courant (déjà reporté) de la diagonale, on choisit le noeud dédoublé sur l'autre côté de la faille. Cette procédure reboucle jusqu'à ce que tous les sommets soient reportés. Pour une cellule avec tous ses sommets dédoublés, pour chacune de ses arêtes, l'arête en face dans la cellule voisine est repérée, la référence de la faille où se trouve cette arête en face est récupérée, l'arête courante est donc sur l'autre côté de la faille avec une référence différente. Les noeuds dédoublés correspondants sont ainsi déterminés selon cette référence. La figure 10 montre le quadrillage de la figure 9 reporté en horizon réel 3D. 5. Étape d'itération Les étapes 1 à 4 sont réitérées pour chaque surface tridimensionnelle triangulée, en conservant un même nombre de quadrilatère dans chaque direction. 6. Étape de mise en correspondance de deux horizons Cette étape consiste à construire un maillage tridimensionnel du milieu, en reliant directement les noeuds ayant les mêmes coordonnées I, J sur deux horizons voisins de façon à former des mailles tridimensionnelles, et à découper éventuellement ces mailles si elles sont traversées par la faille : si une faille intersecte cette liaison on relie un noeud avec la faille en considérant une direction d'un noeud voisin. Ceci est illustré sur la figure 13. Quand un quadrilatère sur l'un de deux horizons est dédoublé en deux triangles via une faille qui passe par la diagonale, le quadrilatère correspondant sur l'autre horizon est aussi virtuellement découpé de la même manière et deux prismes seront formés. Pourtant, un des deux prismes est torsadé et l'interface de la faille n'est pas respectée. Dans la figure 14, les segments dessinés en gras sont sur la même surface de faille, on voit que le quadrilatère en bas à gauche de la faille rejoint deux triangles en haut à gauche et à droite de la faille. Une configuration problématique est produite quand les horizons sur les deux côtés de la faille glissent sur celle-ci, comme l'illustre la figure 15 : des éléments sont incorrectement construits en dehors de la couche formée entre les horizons HO et H1 en reliant les mêmes i et j. La malformation des éléments correspondants aux deux configurations ci-dessus, est due à un choix incorrect de la direction de lien entre deux horizons. La solution réside ainsi dans la détection et la correction des mauvaises directions. Pour détecter la présence d'une mauvaise direction pendant la création d'un élément 3D, on vérifie d'abord s'il existe un segment reliant les même I, J qui traverse une faille. Si oui, l'élément 3D comprend effectivement des directions à corriger et il doit être remplacé par deux éléments 3D qui suivent les directions corrigées. Sinon, on vérifie de plus s'il existe une faille qui passe par deux arêtes de l'élément 3D, une sur l'horizon en haut et une autre sur celui en bas. Si oui et si les indices locaux de ces deux arêtes sont différents, l'élément est aussi à corriger. Soit E l'élément 3D en question, F la faille traversante, E1 E2 les deux éléments 3D à créer pour remplacer E. Les bonnes directions sont calculées de la façon suivante : on parcourt d'abord tous les noeuds de E en HO pour trouver les noeuds sur une faille F. Soit PO un tel noeud. II existe donc un autre noeud ayant le même IJ qui se trouve sur l'autre côté de cette faille en HO, soit P0'. Soit P1 le noeud en H1 lié à PO dans E. Au lieu de lier PO à pi, on lie P0' à pi, PO à lui même et on associe PO'P1 à E1, PO à E2. E2 est réduit à un tétraèdre (si E est un prisme) ou un prisme (si E est un hexaèdre). On enregistre PO'P1 en tant qu'une bonne direction de E1. On répète cette procédure sur H1 pour retrouver de bonnes directions d'E2. - s'il n'y a aucun noeud sur la faille F en HO, on cherche un élément 3D voisin de E par un noeud de E en HO. soit E' l'élément 3D voisin choisi, P2 le noeud en commun, et P2' le noeud en H1 relié à P2 dans E'. On relie P2 à P2' dans E2 et on enregistre P2P2' en tant qu'une bonne direction de E2. De même on calcule la bonne direction de El quand aucun noeud en faille F ne se trouve en H1. En suivant les directions corrigées en E2, tous les noeuds en HO non encore traités sont projetés sur la surface de faille et liés à ses images correspondantes. Et tous les noeuds en H1 non encore traités sont projetés sur la surface de faille en suivant les directions corrigées en E1, comme l'illustre les figures 16 et 17. La figure 11 illustre le résultat final d'une mise en correspondance à partir du quadrillage de la figure 10. Un maillage construit selon l'invention est particulièrement adapté pour simuler les écoulements au sein d'un milieu souterrain en zone à géométrie complexe. L'invention fournit ainsi un outil précis pour réaliser une modélisation de bassin, une simulation de réservoir, ou des simulations d'injection de CO2 dans une formation souterraine. Une méthode pour simuler les écoulements au sein d'un milieu souterrain en zone à géométrie complexe, comprend la génération d'un maillage hexa-dominant à partir de la méthode selon l'invention, puis la réalisation de simulations au moyen d'un logiciel adapté (simulateur de bassin ou simulateur de réservoir) s'appuyant sur le maillage ainsi généré. Ces simulations permettent aux spécialistes d'optimiser l'exploration de champ pétrolier, l'exploration ou l'exploitation de réservoir souterrain, ou l'injection de gaz dans des milieux souterrains. REVENDICATIONS1. Méthode pour générer un maillage d'un milieu souterrain comprenant au moins une couche sédimentaire traversée par au moins une faille, ladite couche étant délimitée verticalement par deux horizons géologiques discrétisés par deux surfaces tridimensionnelles triangulées, caractérisée en ce que : on transforme chaque surface tridimensionnelle triangulée en une surface bidimensionnelle triangulée sur laquelle on projette ladite faille, au moyen d'une technique de dépliage isométrique, la faille ainsi projetée formant des segments décrivant une courbe ouverte ; on génère un quadrillage bidimensionnel régulier pour chaque surface bidimensionnelle triangulée ; on prend en compte ladite faille au sein dudit quadrillage régulier, en déformant des quadrilatères du quadrillage intersectés par ladite courbe ; on transforme ledit quadrillage régulier ainsi déformé en une surface quadrillée tridimensionnelle, et on transforme en deux triangles chaque quadrilatère traversé par ladite faille au niveau d'une diagonale ; on réitère les étapes précédentes pour la seconde surface tridimensionnelle triangulée en conservant un même nombre de quadrilatère dans chaque direction ; on génère ledit maillage du milieu souterrain en créant des liaisons entre chaque noeud des deux surfaces quadrillées tridimensionnelles, tout en respectant ladite faille. 2. Méthode selon la revendication 1, dans laquelle ledit milieu comporte plus d'une couche sédimentaire, on construit ledit maillage en réitérant couche par couche. 3. Méthode selon la revendication 1, dans laquelle on génère ledit quadrillage régulier au moyen des étapes suivantes : on choisit quatre points sur la bordure de la surface bidimensionnelle, définissant quatre courbes sur la bordure ; - on choisit les dimensions du quadrillage (N, M), et l'on discrétise alternativement chacune des quatre courbes en fonction desdites dimensions; on applique la formule de Coons pour construire le quadrillage. 4. Méthode selon la revendication 1, dans laquelle on prend en compte la faille au sein dudit quadrillage régulier, en réalisant les étapes suivantes : on détermine une première arrête dudit quadrillage intersectée par ladite courbe ouverte, en parcourant ladite courbe segment par segment et en partant d'une extrémité de ladite courbe ouverte ; - on déplace l'extrémité de l'arête intersectée la plus proche du point d'intersection vers ledit point d'intersection ; 5. Méthode selon la revendication 4, dans laquelle avant de déplacer ladite extrémité la plus proche, on vérifie que ce déplacement n'engendre pas un quadrilatère dont au moins un angle est supérieur à un seuil d'angle fixé, si c'est le cas, on déplace l'autre extrémité de l'arrête intersectée. 6. Méthode selon la revendication 1, dans laquelle ledit milieu comporte plusieurs failles, on prend en compte les failles au sein dudit quadrillage régulier, en réalisant les étapes suivantes : on détermine une première arête dudit quadrillage intersectée par ladite courbe ouverte, en parcourant ladite courbe segment par segment et en partant d'une extrémité de ladite courbe ouverte ; on déplace l'extrémité de l'arête la plus proche du point d'intersection vers ledit point d'intersection si ce déplacement n'engendre pas un quadrilatère dont au moins un angle est supérieur à un seuil d'angle fixé, et si cette extrémité n'a pas déjà été déplacée ; sinon on déplace l'autre extrémité vers ledit point d'intersection si cette extrémité n'a pas déjà été déplacée ; sinon on raffine le maillage, jusqu'à ce qu'une extrémité puisse être déplacée, et on déplace cette extrémité. 7. Méthode selon la revendication 6, dans laquelle on raffine le maillage au moyen des étapes suivantes : on ajoute un nouveau noeud au maillage, correspondant à un point d'intersection entre une faille et l'arête pour laquelle aucune extrémité ne peut être déplacée ; si l'arête est verticale, on dédouble la ligne complète du quadrillage contenant le point d'intersection, en ajoutant une succession d'arêtes horizontales, dans tous les quadrilatères de la ligne, la succession d'arêtes passant par le point d'intersection ;si l'arête est horizontale, on dédouble la colonne complète du quadrillage contenant le point d'intersection, en ajoutant une succession d'arêtes verticales, dans tous les quadrilatères de la colonne, la succession d'arêtes passant par le point d'intersection. 8. Méthode selon l'une des revendications précédentes, dans laquelle on transforme ledit quadrillage régulier en une surface quadrillée à trois dimensions en réalisant les étapes suivantes : pour chaque noeud non situé sur une faille, on détermine ses coordonnées à partir de coordonnées barycentriques du noeud dans un repère défini par un triangle de la surface triangulée 2D auquel il appartient ; pour chaque noeud situé sur une faille, on détermine ses coordonnées à partir d'abscisses curvilignes mesurées sur ladite faille ; - on établit des connectivités entre les noeuds de façon à maximiser un nombre de quadrilatères, seuls des quadrilatères pour lesquels une faille passe par l'une de ses diagonales sont divisés en deux triangles. 9. Méthode selon la revendication 8, dans laquelle on crée des liaisons entre les noeuds en reliant chaque noeud de chaque surface quadrillée tridimensionnelle ayant des mêmes coordonnées i, j, et si une faille intersecte cette liaison, on relie un noeud avec ladite faille en considérant une direction d'un noeud voisin.