2 Copyright (C) 2015-2016 EDF
4 This file is part of SALOME HYDRO module.
6 SALOME HYDRO module is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 SALOME HYDRO module is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with SALOME HYDRO module. If not, see <http://www.gnu.org/licenses/>.
19 #########################################
21 #########################################
23 * **Géoréférencement** : Le système de projection à utiliser dépend de
24 la localisation géographique de l'étude et doit être choisi et noté
25 pour faciliter la reprise de l'étude. En France métropolitaine, la
26 projection de référence est Lambert 93.
28 * **Repère Local** : Les coordonnées planes, **toujours exprimées en mètres**,
29 dans la projection utilisée correspondent souvent à des grands nombres.
30 Par exemple, les coordonnées en Lambert 93 d'un point du territoire
31 métropolitain sont par exemple de l'ordre de (400 000, 6 500 000).
32 Le repère local consiste en un simple décalage de l'origine, permettant
33 de manipuler de plus petits nombres.
34 Pour améliorer la précision numérique dans les différentes étapes de
35 l'étude (géométrie, maillage, calcul...),
36 **il est très fortement recommandé de prendre un repère local**.
38 * **ligne de contrainte** Ligne sur laquelle le maillage va s'appuyer.
39 Dans SALOME, ces lignes sont définies dans la Géométrie (module GEOM) en tant que "edge".
40 Toutes les lignes que l'on construit dans le module HYDRO ne sont pas forcément gardées dans la géométrie.
42 * **axe hydraulique** Ligne d'écoulement d'une rivière.
43 Souvent obtenue en reliant les points bas d'une succession de profils en travers.
45 * **ligne de crête** Ligne reliant les points les plus haut d'une digue.
47 * **partition** Zones et Régions
50 ################################################
51 Principales étapes d'une étude avec SALOME-HYDRO
52 ################################################
54 SALOME contient l’ensemble des modules nécessaires au lancement d’une étude Telemac.
56 L’application SALOME-HYDRO concentre les modules HYDRO et HYDRO-SOLVER au sein de la plate-forme SALOME
57 et intègre le système Telemac2D.
59 La figure ci-dessous résume les étapes générales et les outils utilisés au sein de la plate-forme SALOME :
63 Figure 1 : Etapes d’une étude hydraulique avec la plate-forme Salomé
65 L’étude se déroulera en passant par les différents modules de SALOME :
79 * HYDRO : on importe des images et/ou des plans
81 * HYDRO : on crée ou importe des lignes de contour d'objets naturels (rivières, iles...)
82 et artificiels (digues, canaux, obstacles...),
84 * HYDRO : on importe des champs de bathymétrie / altimétrie, ou des séries de profils de rivière,
86 * HYDRO : on constitue des objets,
88 * HYDRO : on constitue des cas de calculs en choisissant les objets utiles au cas,
89 on regroupe les zones en régions (= faces de la géométrie finale),
91 * HYDRO : on exporte le cas vers GEOM,
93 * GEOM : on reprend le cas dans GEOM, pour compléter l'identification des groupes liés aux différentes zones du domaine
94 et des conditions limites,
96 * SMESH : choix algorithmes et hypothèses de maillage, maillage et exportation fichier MED,
98 * HYDRO : on calcule l'interpolation en Z, a partir du fichier MED et du cas de calcul,
100 * HYDROSOLVEUR : on définit le paramétrage physico numérique du calcul (fichier cas),
102 * HYDROSOLVEUR : on exécute le calcul,
104 * PARAVIS : on dépouille les résultats
106 Dans le module HYDRO lui-même, la logique d’enchaînement des étapes est la suivante
107 (voir les différents types d’objets manipulés dans l’arbre de gauche) :
111 L’idée est de partir d’images satellitaires et/ou de cartes de la zone à mailler
112 pour situer les différents éléments de l’étude., Ces images devront être géoréférencées
113 dans le même système de coordonnées que l’ensemble des données (Lambert93 par exemple).
114 Il peut s’agir de capture d’écran du géoportail par exemple. (cf chapitre 6)
118 Les bathymétries constituées de nuages de points et/ ou de profils qui constituent le modèle de terrain
119 sur lequel va s’appuyer le maillage sont importées dans le projet (cf chapitre 7).
123 Les polylines (importées et/ou construites dans SALOME) permettent de définir les contours pour
124 le futur maillage et des différents éléments qui seront à prendre en compte.
125 Les poylignes splines permettent de définir des contours sans que le maillage qui
126 s’y appuiera ne doive utiliser strictement les points de la ligne. Seule la forme générale compte.
127 On peut tracer les lignes de contrainte à la souris ou les importer à partir d’un fichier (cf chapitre 8).
131 Il s’agit des éléments constitués par exemple de l’emprise d’un domaine, d’îles, …..
132 ou une région du domaine étudié à laquelle on associe une bathymétrie
136 La création d’objets "naturels" et "artificiels" permet de définir les zones à mailler
137 et les bathymétries à y associer.
139 * ARTIFICIAL OBJECTS :
141 Il s’agit de construire des éléments tels que des digues ou des canaux de géométrie connue.
143 * CALCULATION CASES :
145 Lors de la définition du cas de calcul on sélectionne les objets à mailler et on résout les conflits
146 de recouvrement des bathymétries.
148 Il s’agit ici de la description d’un déroulement type, des allers-retours entre les différentes étapes
149 sont tout à fait possibles et se produiront certainement.
154 * Pour les fichiers image : disposer de fichiers images des fonds carto ou photo et avoir repéré dans le système de travail
155 (les coordonnées de 2 ou 3 points) bien répartis sur l’image (proches des coins de préférences).
156 Avec trois points, on peut faire une transformation affine de l'image, si celle-ci n'est pas correctement orientée.
158 * Disposer des données de bathy au format ASCII.
160 Pour l’instant ces fichiers doivent porter l’extension .xyz (3 colonnes x,y,z) ou .asc (renvoi aux formats)
165 Il est possible d’importer des plans, cartes, et photos dans le module Hydro dans le dossier Images de l’arbre objet.
166 L’idée est de partir d’images satellitaires et/ou de cartes de la zone à mailler,
167 géoréférencées dans le même système de coordonnées que l’ensemble des données (Lambert93 par exemple). (cf chapitre 6)
168 Il est possible de récupérer l’intersection de deux images, de les fusionner, de restreindre une image à partir d’une polyline.
172 Il est possible de fusionner les images ce qui crée un nouvel objet « Fuse_N »
174 Autres options de traitement d'images
176 Choix d'un repère local
177 =======================
179 Il est vivement conseillé de changer l’origine du système de coordonnées local
180 pour éviter de manipuler de très grands nombres et avoir plus de précisions dans les différents calculs notamment pour le maillage.
183 Clic sur Hydro/change local CS
184 Renseigner les coordonnées de la nouvelle origine
186 Import de Bathymetries
187 =======================
191 visualisation : si Z < 0: caché par cartes. inverser la vue, ou décaler Z pour avoir des valeurs positives.
193 Récupération de données de bathymetrie d'un ancien maillage
194 -----------------------------------------------------------
196 Il est possible de récupérer un ancien maillage d’un cas d’étude, en le transformant avec un convertisseur
197 intégré dans SALOME-HYDRO du format selafin (.slf) au format .med (format dédié pour la plate-forme Salomé en général).
201 A partir de l’ancien maillage, il peut être nécessaire d’appliquer une translation (par exemple +2 000 000)
202 à la position y des nœuds pour passer en système de géoréférencement connu (par exemple LambertIIEtendu).
206 Puis la bathymétrie (champ de fond Z) est récupérée à l’aide d’un script Python qui crée un fichier .xyz
207 (position x du nœud, position y du nœud, Champ Z associé).
208 Ce fichier .xyz est converti en Lambert93 grâce au logiciel libre Circé .
212 Ensuite les positions des nœuds des bords sont récupérées à l’aide d’un script Python qui parcourt les nœuds,
213 constate si ils sont au bord et crée un fichier dans lequel chaque bord récupéré est mis en forme pour un import direct
214 dans le module HYDRO (la mise en forme est celle du type polyligne, voir paragraphe 8).
215 On peut isoler de cette façon le contour de l’emprise, des piles de ponts, et les îles éventuelles.
221 Import d'objets de type lignes
222 ==================================
227 définition : lignes dans le plan XY, généralement utilisées pour définir des contours, des zones.
228 Il est possible d’importer des polylines au format sinusX dans le dossier Polylines de l’arbre objet du module Hydro.
235 Deux types de profils : géoréférencés ou non:
236 les profils géo sont définis dans XYZ, les autres dans XZ (XY)
237 Utilité : section de digue, de canal, de rivière
238 Une seule section pour un canal ou une digue, une série de profils pour une rivière.
239 La valeur Z=0 correspond à la ligne de crête.
240 On considère uniquement des profils symétriques (par rapport à la ligne de crête).
242 Il est également possible d’importer des profils au format sinusX dans le dossier Profils de l’arbre objet du module Hydro
249 rivière décrite par une succession de profils en travers, ordonnés via une ligne amont-aval qui passe par ces profils.
250 Cette ligne peut être l'axe hydraulique, mais ce n'est pas obligatoire.
255 Afin de mettre en place notre modèle de terrain, le module Hydro nous permet de définir des contours, des zones.
257 Les contours types polylines sont nécessaires à la création de la géométrie.
258 Ils permettent la construction de l’emprise du modèle, des îles, du lit mineur d’un fleuve...
260 On peut superposer les contours à la bathymétrie ou aux cartes pour s’aider, visualiser.
262 On peut créer des digues ou des routes dans le modèle à l’aide de polylines.
267 Dans SALOME les polylignes sont des polylignes (séries de segments,
268 pour décrire un objet géométrique) ou des splines (suite d’arcs, lissé,
269 pour décrire une courbure naturelle, qui s’adaptera à la finesse de la discrétisation).
270 L’utilisation de splines permet de définir des contours sans que le maillage qui s’y appuie
271 ne s’accroche à tous les points de la ligne : seule la forme générale compte.
272 On choisit l’un des deux modes au départ.
273 Puis la création du contour se fait par clic directement dans l’IHM.
274 Il est possible d’éditer le contour par la suite et de déplacer un ou plusieurs points
275 ou bien d’en ajouter. On peut également changer après coup le type d’une ligne : polyligne simple ou spline.
277 On peut tracer les lignes de contrainte à la souris, ou les importer à partir d’un fichier.
279 Pour créer une polyligne :
281 Dans le module HYDRO :
283 * Clic droit sur POLYLINES / Create polyline
285 * (ou MenuHYDRO, Create polyline)
287 On peut définir des « sections », i.e. des portions de polylignes,
288 ce qui peut être utile pour gérer des connexions de polylignes.
289 Créer une polyligne de type spline fermée pour délimiter la zone à mailler par exemple.
291 Dans la partie droite de l’écran une fenêtre apparaît :
293 * Saisir le nom de la ligne (par défaut le premier nom est « Polyline_1 »)
295 * Cliquer sur le bouton ‘Insert section’
297 En bas, à droite de l’écran, apparaît une zone de saisie : « Add element »
299 * Saisir le nom de la section
301 * Choisir le type (polyline ou spline)
303 * Cocher ou décocher : ‘Closed’
305 * En haut de la zone section, cliquer sur le bouton « Addition Mode »
307 * Cliquer les points de la ligne dans la zone principale de l’écran, sur la carte (onglet OCC Viewer)
309 * Terminer la ligne par un double-clic
311 En recliquant sur « Addition Mode », on peut ajouter des points à la polyligne
312 En cliquant sur « Modification mode », on peut sélectionner les points :
313 les coordonnées des points apparaissent alors en bas à droite sous forme de table.
314 Il est possible d’en modifier les valeurs de X et/ou de Y, ou de déplacer les points sur la vue OCC.
316 Le clic sur « Apply » ferme la fenêtre de polyline. Pour la modifier :
318 * clic droit sur le nom de la polyline dans la colonne de gauche et « Edit Polyline ».
320 « Detection Mode » : permet de sélectionner toute la ligne en cliquant dessus.
322 L’action « Remove » permet de supprimer une section d’une courbe qui en comporte déjà plusieurs.
323 Le bouton « join selected sections » est actif quand deux sections de la même courbe
324 sont sélectionnées (à éviter avec des courbes fermées).
325 Il relie le dernier point de la première courbe sélectionnée au premier point de la deuxième courbe sélectionnée.
327 Pour transformer une section ouverte en section fermée (ou inversement) après saisie :
329 * sélectionner le mode modification
331 * clic droit sur le nom de la sélection
333 * set closed (ou set open)
335 profils de digue ou canal
336 --------------------------
339 dessin grossier de la forme, sélection des points, affichage du tableau de coordonnées et modification
346 Création d'objets "naturels" type "zone immersible"
347 ===================================================
349 distinguer les îles du reste.
351 Bathymétrie associée.
353 Créer une zone immersible consiste à créer une face géométrique à partir d’un des contours dessinés précédemment.
354 On renseigne donc pour cela la polyline (obligatoire) sur laquelle va reposer la face et la bathymétrie (facultative)
355 que l’on souhaite associer à cette zone géographique.
359 Remarque : la bathymétrie est facultative dans la création d’une zone immersible car on n’a pas forcément
360 d’altitudes associées à chaque zone construite mais on souhaite tout de même que les contours de ces zones
361 soient pris en compte pour la partition qui va créer notre modèle plus tard.
363 Par exemple, le cas des îles est typique : nous n’avons pas de topographie associée à l’île de la centrale nucléaire
364 mais nous souhaitons que le contour soit inscrit dans le modèle numérique de terrain.
366 Il est également possible de changer l’ordre d’affichage des différentes zones pour une meilleure
367 visibilité du futur modèle (renvoi figure).
369 Caractère submersible ou non
371 Création d'objets "naturels" type "stream"
372 ==========================================
374 Il faut, soit l'axe hydraulique, soit une ligne reliant les profils pour les ordonner.
376 Les profils sont importés.
378 Création d'objet "artificiel" type digue ou canal
379 =================================================
381 Le module Hydro permet la création de d’objets digues dans le dossier Artificial Objects de l’arbre objet du module Hydro.
382 Une digue se crée en 5 étapes :
384 * D’abord, il faut créer l’axe de la digue en tant que polyline (XY, en vue de dessus),
386 * Ensuite, il faut créer la ligne de crête de la digue en tant que profil
387 ((XZ, XY, altitude en fonction de l'abcisse curviligne sur l'axe)
389 * Ainsi que la section de la digue en tant que profil également (XZ, ligne brisée),
391 * Puis, il faut créer une polyline3D dans le dossier de même nom dans Hydro.
392 Cela permet d’associer l’axe de la digue avec le profil d’altitude,
394 * Enfin, il faut créer un objet digue dans le dossier Artificial Objects,
395 en associant la polyline3D avec le profil de section de la digue (images et renvoi tutoriel)
397 Pour un canal, même démarche, mais remplacer ligne de crête par axe hydraulique.
399 Détailler le principe du calcul de l'altitude en tout point de la digue ou du canal :
400 la ligne de crête ou l'axe hydraulique correspondent à la côte 0 de la section (dessin).
402 Vérifier effet géoréférencement
407 objets géométriques complexes (bâtiments...) importés depuis GEOM,
408 pour constituer des zones non submersibles ("iles" ou assimilés)
413 Tables de coefficients de Strickler
414 ===================================
423 Constitution d'un cas de calcul
424 ================================
426 Pour démarrer un nouveau cas de calcul :
428 * clic droit sur le dossier CALCULATION CASE de l’arbre objet du module HYDRO
430 * create Calculation case
432 Première étape d’un cas de calcul, l’utilisateur choisit les différents objets métiers créés précédemment
433 qui vont participer au modèle de terrain qu’il souhaite générer.
435 A reprendre : décrire les principes : sélection des objets, partition : zones par type de calcul de la bathy...
436 Images de principe, renvoi au tutoriel pour étapes.
440 Figure 14 : Création d’un cas de calcul
441 Dans cette étape, on sélectionne les objets à mailler.
442 Dans la deuxième étape, HYDRO propose une série de segments
443 (contours des différents objets choisis précédemment « nomObjet_outer »).
444 L’utilisateur sélectionne ceux qui sont pertinents pour son calcul (ils seront visibles dans le module géométrie).
445 Le choix des contours à considérer permet de définir des régions homogènes et s’affranchir de contraintes
446 supplémentaires dans le maillage.
447 En créant le cas de calcul, HYDRO crée une série de groupes de segments qui peuvent être utiles à l’utilisateur pour son calcul.
449 Première étape d’un cas de calcul, l’utilisateur choisit les différents objets métiers créés précédemment
450 qui vont participer au modèle de terrain qu’il souhaite générer.
454 Notion de partition : le découpage en faces élémentaires ou zones : dessin explicatif
456 On peut regrouper des zones en régions homogènes dans la structure du maillage visée,
457 pour s’affranchir des contours que l'on ne veut pas garder en tant que lignes de contraintes.
459 SALOME indique les zones de recouvrement des différents objets pour lesquelles il faut choisir une bathymétrie
460 (si plusieurs bathymétries existent sur une même zone).
461 Il est possible de sélectionner une des bathymétries
462 (par exemple la campagne de bathymétrie la plus récente, ou le min ou le max des bathy).
464 Il faut ensuite exporter le cas de calcul en tant que « géométrie SALOME ».
466 * Clic droit sur Calculation case
468 * Export calculation case = fabrique une entrée dans GEOMETRY
470 Géométrie: Module GEOM
471 ======================
473 Une fois le cas de calcul terminé et exporté il apparaît dans le module GEOM.
475 Il faut se déplacer vers ce module pour pouvoir le visualiser et le modifier.
476 Dans GEOM, on voit notre cas de calcul sous le nom <nom de cas>_N auquel est attaché le (ou les) contour(s)
477 choisis au moment au moment de la définition du cas de calcul.
479 Il se peut qu’on ait besoin de identifier certaines parties :
481 * Faces : pour mailler de façon différentes certaines zones
483 * Segments : pour définir les conditions aux limites.
485 Pour cela on crée des groupes à partir de l’entité géométrique initiale soit par un clic droit
486 sur cette entité ensuite create groupe soit en allant sur New Entity / Group / Create group.
487 Lorsque la fenêtre de dialogue s’ouvre on vérifie bien que le nom de l’entité figure dans Main Shape,
488 ensuite on choisit le type de groupe que l’on souhaite créer (groupe de points, de segments, de faces ou d’objet 3D).
489 Après on sélectionne les parties qui nous intéressent une à une en cliquant à chaque fois sur Add.
491 Dans ce module, on peut aussi définir des points fixes de notre maillage
492 (qui vont par exemple correspondre à des points de mesure).
493 Ceci doit être fait avant la définition des groupes.
494 En effet, on commence par créer nos points (New Entity /Basic /Point en donnant leur coordonnées dans le bon système),
495 ensuite on fusionne ces points avec notre objet de départ en utilisant La fonction Operations / Partition
496 et en sélectionnant les objets à fusionner
497 (il faut maintenir la touche Ctrl enfoncée et cliquer sur les objets dans l’arbre à gauche).
498 Une fois la partition créée on commence la définition des groupes qui nous intéressent
499 (y compris les points qu’on vient de créer). Ces manipulations peuvent paraître redondantes mais elles sont primordiales.
500 On effet la partition permet de créer un lien entre l’entité géométrique de base et les objets qu’on ajoute.
501 Ces liens seront aussi visibles par le mailleur qui va les considérer comme des points fixe du maillage.
502 La définition des différents groupes va nous permettre d’isoler les nœuds qui appartiennent à ces groupes
503 à fin de pouvoir les manipuler de façon différente plus tard.
505 Maillage: Module SMESH
506 =======================
510 Contrôle des lignes de contrainte, des tailles de mailles.
512 Sous maillage /groupe géometrique.
514 Maillage d'une digue, d'un canal.
516 Maillage d'une rivière (lit mineur).
518 Maillage des autres régions.
526 En hydrodynamique il est primordial de connaître la valeur de la bathymétrie en chaque nœud de calcul.
528 Rappeler le principe de calcul de la BATHY: découpage en régions (faces géométriques)
529 qui contiennent des zones (mode de calcul de la Bathy).
530 Différents modes de calcul de la bathymetrie:
531 à partir des nuages de points
532 à partir des profils de rivière
533 à partir de l'axe et de la section des digues et canaux
534 à partir de la CAO des obstacles
536 Pour les nuages de points, pour le moment on dispose d’un premier script qui permet d’interpoler la bathymétrie sur le maillage.
537 Ce script utilise un algorithme qui prend juste la valeur du Z du point le plus proche.
539 Plusieurs approches possibles, quand la bathymétrie n'est pas assez dense par rapport au maillage :
541 * densifier artificiellement la bathymétrie (interpolation linéaire, outils et scripts à proposer)
542 * utiliser TELEMAC avec les restrictions ci -dessous.
544 Si on ne dispose que d’un seul fichier de bathymétrie on peut utiliser l’algorithme de TELEMAC3D
545 qui fait une interpolation linéaire sur le quadrangle le plus proche en donnant juste le nom du fichier (XYZ)
546 avec le mot clé FICHIER DES FONDS.
548 Ceci dit TELEMAC n’accepte pas plusieurs fichiers. (il n’aime pas quand on a plusieurs valeurs pour le même point).
550 L'amélioration du script est prévue en 2016.
552 Utilisation du script d'interpolation
553 -------------------------------------
555 D’abord exporter le maillage en MED (il faut que des groupes de nœuds soit créés pour chaque région)
557 Modifier l’entête du script, en indiquant le nom du cas de calcul,
558 le fichier du maillage MED et la correspondance entre les groupes de nœuds et les régions définies dans le cas de calcul
559 (rappelant que c’est à ce niveau qu’on définit la bathymétrie de chaque région) Pour lui dire où lire la bathymétrie::
561 nomCas = 'Nom du cas Case 1'
562 fichierMaillage = 'chemin absolu du fichier Mesh.med'
563 dicoGroupeRegion= dict(NomGroupeMaillage1 = 'Case_1_Region1',
564 NomGroupeMaillage2 = 'Case_1_Region2',
568 Il est prévu de permettre un raffinement de maillage avec Homard (disponible dans Salomé)
569 en s'appuyant sur le gradient de bathymétrie.
571 Le script d'interpolation en Z produit un maillage avec un champ aux noeuds contenant l'altitude,
572 utilisable tel que par TELEMAC, ainsi qu'un maillage avec la cote Z modifiée, pour un contrôle visuel
573 dans le mailleur, et enfin un fichier .xyz des noeuds du maillage.
575 :ref:`ref_notionsPrealables`
577 Mise en données Physico-numérique pour TELEMAC
578 ===============================================
580 description des conditions limites
581 ----------------------------------
583 Décrire le type de condition limite associé à chaque groupe d'edges du maillage.
584 Eficas ou éditeur texte.
586 édition du fichier Cas
587 ----------------------
591 inventaire des fichiers utilisés
592 --------------------------------
596 Lancement et suivi du calcul
597 ============================
599 Lancement TELEMAC sur le poste de travail.
601 Lancement sur Cluster, études paramétriques... A détailler.
603 Dépouillement des résultats
604 ===========================
606 Utilisation de PARAVIS.