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 completer 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'iamge, 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, 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)
167 Il est possible de récupérer l’intersection de deux images, de les fusionner, de restreindre une image à partir d’une polyline.
171 Il est possible de fusionner les images ce qui crée un nouvel objet « Fuse_N »
173 Autres options de traitement d'images
175 Choix d'un repère local
176 =======================
178 Il est vivement conseillé de changer l’origine du système de coordonnées local
179 pour éviter de manipuler de très grands nombres et avoir plus de précisions dans les différents calculs notamment pour le maillage.
182 Clic sur Hydro/change local CS
183 Renseigner les coordonnées de la nouvelle origine
185 Import de Bathymetries
186 =======================
190 visualisation : si Z < 0: caché par cartes. inverser la vue, ou decaler Z pour avoir des valeurs positives.
192 Récupération de données de bathymetrie d'un ancien maillage
193 -----------------------------------------------------------
195 Il est possible de récupérer un ancien maillage d’un cas d’étude, en le transformant avec un convertisseur
196 intégré dans SALOME-HYDRO du format selafin (.slf) au format .med (format dédié pour la plate-forme Salomé en général).
200 A partir de l’ancien maillage, il peut être nécessaire d’appliquer une translation (par exemple +2 000 000)
201 à la position y des nœuds pour passer en système de géoréférencement connu (par exemple LambertIIEtendu).
205 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
206 (position x du nœud, position y du nœud, Champ Z associé).
207 Ce fichier .xyz est converti en Lambert93 grâce au logiciel libre Circé .
211 Ensuite les positions des nœuds des bords sont récupérées à l’aide d’un script Python qui parcourt les nœuds,
212 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
213 dans le module HYDRO (la mise en forme est celle du type polyligne, voir paragraphe 8).
214 On peut isoler de cette façon le contour de l’emprise, des piles de ponts, et les îles éventuelles.
220 Import d'objets de type lignes
221 ==================================
226 définition : lignes dans le plan XY, généralement utilisées pour définir des contours, des zones.
227 Il est possible d’importer des polylines au format sinusX dans le dossier Polylines de l’arbre objet du module Hydro.
234 Deux types de profils : géoréférencés ou non:
235 les profils géo sont définis dans XYZ, les autres dans XZ (XY)
236 Utilité : section de digue, de canal, de rivière
237 Une seule section pour un canal ou une digue, une série de profils pour une rivière.
238 La valeur Z=0 correspond à la ligne de crête.
239 On considère uniquement des profils symétriques (par rapport à la ligne de crête).
241 Il est également possible d’importer des profils au format sinusX dans le dossier Profils de l’arbre objet du module Hydro
248 rivière décrite par une succession de profils en travers, ordonnés via une ligne amont-aval qui passe par ces profils.
249 Cette ligne peut être l'axe hydraulique, mais ce n'est pas obligatoire.
254 Afin de mettre en place notre modèle de terrain, le module Hydro nous permet de définir des contours, des zones.
256 Les contours types polylines sont nécessaires à la création de la géométrie.
257 Ils permettent la construction de l’emprise du modèle, des îles, du lit mineur d’un fleuve...
259 On peut superposer les contours à la bathymétrie ou aux cartes pour s’aider, visualiser.
261 On peut créer des digues ou des routes dans le modèle à l’aide de polylines.
266 Dans SALOME les polylignes sont des polylignes (séries de segments,
267 pour décrire un objet géométrique) ou des splines (suite d’arcs, lissé,
268 pour décrire une courbure naturelle, qui s’adaptera à la finesse de la discrétisation).
269 L’utilisation de splines permet de définir des contours sans que le maillage qui s’y appuie
270 ne s’accroche à tous les points de la ligne : seule la forme générale compte.
271 On choisit l’un des deux modes au départ.
272 Puis la création du contour se fait par clic directement dans l’IHM.
273 Il est possible d’éditer le contour par la suite et de déplacer un ou plusieurs points
274 ou bien d’en ajouter. On peut également changer après coup le type d’une ligne : polyligne simple ou spline.
276 On peut tracer les lignes de contrainte à la souris, ou les importer à partir d’un fichier.
278 Pour créer une polyligne :
280 Dans le module HYDRO :
282 * Clic droit sur POLYLINES / Create polyline
284 * (ou MenuHYDRO, Create polyline)
286 On peut définir des « sections », i.e. des portions de polylignes,
287 ce qui peut être utile pour gérer des connexions de polylignes.
288 Créer une polyligne de type spline fermée pour délimiter la zone à mailler par exemple.
290 Dans la partie droite de l’écran une fenêtre apparaît :
292 * Saisir le nom de la ligne (par défaut le premier nom est « Polyline_1 »)
294 * Cliquer sur le bouton ‘Insert section’
296 En bas, à droite de l’écran, apparaît une zone de saisie : « Add element »
298 * Saisir le nom de la section
300 * Choisir le type (polyline ou spline)
302 * Cocher ou décocher : ‘Closed’
304 * En haut de la zone section, cliquer sur le bouton « Addition Mode »
306 * Cliquer les points de la ligne dans la zone principale de l’écran, sur la carte (onglet OCC Viewer)
308 * Terminer la ligne par un double-clic
310 En recliquant sur « Addition Mode », on peut ajouter des points à la polyligne
311 En cliquant sur « Modification mode », on peut sélectionner les points :
312 les coordonnées des points apparaissent alors en bas à droite sous forme de table.
313 Il est possible d’en modifier les valeurs de X et/ou de Y, ou de déplacer les points sur la vue OCC.
315 Le clic sur « Apply » ferme la fenêtre de polyline. Pour la modifier :
317 * clic droit sur le nom de la polyline dans la colonne de gauche et « Edit Polyline ».
319 « Detection Mode » : permet de sélectionner toute la ligne en cliquant dessus.
321 L’action « Remove » permet de supprimer une section d’une courbe qui en comporte déjà plusieurs.
322 Le bouton « join selected sections » est actif quand deux sections de la même courbe
323 sont sélectionnées (à éviter avec des courbes fermées).
324 Il relie le dernier point de la première courbe sélectionnée au premier point de la deuxième courbe sélectionnée.
326 Pour transformer une section ouverte en section fermée (ou inversement) après saisie :
328 * sélectionner le mode modification
330 * clic droit sur le nom de la sélection
332 * set closed (ou set open)
334 profils de digue ou canal
335 --------------------------
338 dessin grossier de la forme, selection des points, affichage du tableau de coordonnées et modification
345 Création d'objets "naturels" type "zone immersible"
346 ===================================================
348 distinguer les iles du reste.
350 Bathymétrie associée.
352 Créer une zone immersible consiste à créer une face géométrique à partir d’un des contours dessinés précédemment.
353 On renseigne donc pour cela la polyline (obligatoire) sur laquelle va reposer la face et la bathymétrie (facultative)
354 que l’on souhaite associer à cette zone géographique.
358 Remarque : la bathymétrie est facultative dans la création d’une zone immersible car on n’a pas forcément
359 d’altitudes associées à chaque zone construite mais on souhaite tout de même que les contours de ces zones
360 soient pris en compte pour la partition qui va créer notre modèle plus tard.
362 Par exemple, le cas des îles est typique : nous n’avons pas de topographie associée à l’île de la centrale nucléaire
363 mais nous souhaitons que le contour soit inscrit dans le modèle numérique de terrain.
365 Il est également possible de changer l’ordre d’affichage des différentes zones pour une meilleure
366 visibilité du futur modèle (renvoi figure).
368 Caractère submersible ou non
370 Création d'objets "naturels" type "stream"
371 ==========================================
373 Il faut, soit l'axe hydraulique, soit une ligne reliant les profils pour les ordonner.
375 Les profils sont importés.
377 Création d'objet "artificiel" type digue ou canal
378 =================================================
380 Le module Hydro permet la création de d’objets digues dans le dossier Artificial Objects de l’arbre objet du module Hydro.
381 Une digue se crée en 5 étapes :
383 * D’abord, il faut créer l’axe de la digue en tant que polyline (XY, en vue de dessus),
385 * Ensuite, il faut créer la ligne de crête de la digue en tant que profil
386 ((XZ, XY, altitude en fonction de l'abcisse curviligne sur l'axe)
388 * Ainsi que la section de la digue en tant que profil également (XZ, ligne brisée),
390 * Puis, il faut créer une polyline3D dans le dossier de même nom dans Hydro.
391 Cela permet d’associer l’axe de la digue avec le profil d’altitude,
393 * Enfin, il faut créer un objet digue dans le dossier Artificial Objects,
394 en associant la polyline3D avec le profil de section de la digue (images et renvoi tutoriel)
396 Pour un canal, même démarche, mais remplacer ligne de crête par axe hydraulique.
398 Detailler le principe du calcul de l'altitude en tout point de la digue ou du canal :
399 la ligne de crête ou l'axe hydraulique correspondent à la côte 0 de la section (dessin).
401 Vérifier effet géoréférencement
406 objets géométriques complexes (bâtiments...) importés depuis GEOM,
407 pour constituer des zones non submersibles ("iles" ou assimilés)
412 Tables de coefficients de Strickler
413 ===================================
422 Constitution d'un cas de calcul
423 ================================
425 Pour démarrer un nouveau cas de calcul :
427 * clic droit sur le dossier CALCULATION CASE de l’arbre objet du module HYDRO
429 * create Calculation case
431 Première étape d’un cas de calcul, l’utilisateur choisit les différents objets métiers créés précédemment
432 qui vont participer au modèle de terrain qu’il souhaite générer.
434 A reprendre : décrire les principes : selection des objets, partition : zonesàpar type de calcul de la bathy...
435 Images de principe, renvoi au tutoriel pour étapes.
439 Figure 14 : Création d’un cas de calcul
440 Dans cette étape, on sélectionne les objets à mailler.
441 Dans la deuxième étape, HYDRO propose une série de segments
442 (contours des différents objets choisis précédemment « nomObjet_outer »).
443 L’utilisateur sélectionne ceux qui sont pertinents pour son calcul (ils seront visibles dans le module géométrie).
444 Le choix des contours à considérer permet de définir des régions homogènes et s’affranchir de contraintes
445 supplémentaires dans le maillage.
446 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.
448 Première étape d’un cas de calcul, l’utilisateur choisit les différents objets métiers créés précédemment
449 qui vont participer au modèle de terrain qu’il souhaite générer.
453 Notion de partition : le decoupage en faces élémentaires ou zones : dessin explicatif
455 On peut regrouper des zones en régions homogènes dans la structure du maillage visée,
456 pour s’affranchir des contours que l'on ne veut pas garder en tant que lignes de contraintes.
458 SALOME indique les zones de recouvrement des différents objets pour lesquelles il faut choisir une bathymétrie
459 (si plusieurs bathymétries existent sur une même zone).
460 Il est possible de sélectionner une des bathymétries
461 (par exemple la campagne de bathymétrie la plus récente, ou le min ou le max des bathy).
463 Il faut ensuite exporter le cas de calcul en tant que « géométrie SALOME ».
465 * Clic droit sur Calculation case
467 * Export calculation case = fabrique une entrée dans GEOMETRY
469 Géométrie: Module GEOM
470 ======================
472 Une fois le cas de calcul terminé et exporté il apparait dans le module GEOM.
474 Il faut se déplacer vers ce module pour pouvoir le visualiser et le modifier.
475 Dans GEOM, on voit notre cas de calcul sous le nom <nom de cas>_N auquel est attaché le (ou les) contour(s)
476 choisis au moment au moment de la définition du cas de calcul.
478 Il se peut qu’on ait besoin de identifier certaines parties :
480 * Faces : pour mailler de façon différentes certaines zones
482 * Segments : pour définir les conditions aux limites.
484 Pour cela on crée des groupes à partir de l’entité géométrique initiale soit par un clic droit
485 sur cette entité ensuite create groupe soit en allant sur New Entity / Group / Create group.
486 Lorsque la fenêtre de dialogue s’ouvre on vérifie bien que le nom de l’entité figure dans Main Shape,
487 ensuite on choisit le type de groupe que l’on souhaite créer (groupe de points, de segments, de faces ou d’objet 3D).
488 Après on sélectionne les parties qui nous intéressent une à une en cliquant à chaque fois sur Add.
490 Dans ce module, on peut aussi définir des points fixes de notre maillage
491 (qui vont par exemple correspondre à des points de mesure).
492 Ceci doit être fait avant la définition des groupes.
493 En effet, on commence par créer nos points (New Entity /Basic /Point en donnant leur coordonnées dans le bon système),
494 ensuite on fusionne ces points avec notre objet de départ en utilisant La fonction Operations / Partion
495 et en sélectionnant les objets à fusionner
496 (il faut maintenir la touche Ctrl enfoncée et cliquer sur les objets dans l’arbre à gauche).
497 Une fois la partition créée on commence la définition des groupes qui nous intéressent
498 (y compris les points qu’on vient de créer). Ces manipulations peuvent paraître redondantes mais elles sont primordiales.
499 On effet la partition permet de créer un lien entre l’entité géométrique de base et les objets qu’on ajoute.
500 Ces liens seront aussi visibles par le mailleur qui va les considérer comme des points fixe du maillage.
501 La définition des différents groupes va nous permettre d’isoler les nœuds qui appartiennent à ces groupes
502 à fin de pouvoir les manipuler de façon différente plus tard.
504 Maillage: Module SMESH
505 =======================
509 Contrôle des lignes de contrainte, des tailles de mailles.
511 Sous maillage /groupe géometrique.
513 Maillage d'une digue, d'un canal.
515 Maillage d'une riviere (lit mineur).
517 Maillage des autres régions.
525 En hydrodynamique il est primordial de connaître la valeur de la bathymétrie en chaque nœud de calcul.
527 Rappeler le principe de calcul de la BATHY: découpage en régions (faces géométriques)
528 qui contiennent des zones (mode de calcul de la Bathy).
529 Différents modes de calcul de la bathymetrie:
530 à partir des nuages de points
531 à partir des profils de rivière
532 à partir de l'axe et de la section des digues et canaux
533 à partir de la CAO des obstacles
535 Pour les nuages de points, pour le moment on dispose d’un premier script qui permet d’interpoler la bathymétrie sur le maillage.
536 Ce script utilise un algorithme qui prend juste la valeur du Z du point le plus proche.
538 Plusieurs approches possibles, quand la bathymétrie n'est pas assez dense par rapport au maillage :
540 * densifier artificiellement la bathymétrie (interpolation linéaire, outils et scripts à proposer)
541 * utiliser TELEMAC avec les restrictions ci -dessous.
543 Si on ne dispose que d’un seul fichier de bathymétrie on peut utiliser l’algorithme de TELEMAC3D
544 qui fait une interpolation linéaire sur le quadrangle le plus proche en donnant juste le nom du fichier (XYZ)
545 avec le mot clé FICHIER DES FONDS.
547 Ceci dit TELEMAC n’accepte pas plusieurs fichiers. (il n’aime pas quand on a plusieurs valeurs pour le même point).
549 L'amélioration du script est prévue en 2016.
551 Utilisation du script d'interpolation
552 -------------------------------------
554 D’abord exporter le maillage en MED (il faut que des groupes de nœuds soit créés pour chaque région)
556 Modifier l’entête du script, en indiquant le nom du cas de calcul,
557 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
558 (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::
560 nomCas = 'Nom du cas Case 1'
561 fichierMaillage = 'chemin absolu du fichier Mesh.med'
562 dicoGroupeRegion= dict(NomGroupeMaillage1 = 'Case_1_Region1',
563 NomGroupeMaillage2 = 'Case_1_Region2',
567 Il est prévu de permettre un raffinement de maillage avec Homard (disponible dans Salomé)
568 en s'appuyant sur le gradient de bathymétrie.
570 Le script d'interpolation en Z produit un maillage avec un champ aux noeuds contenant l'altitude,
571 utilisable tel que par TELEMAC, ainsi qu'un maillage avec la cote Z modifiée, pour un contrôle visuel
572 dans le mailleur, et enfin un fichier .xyz des noeuds du maillage.
574 :ref:`ref_notionsPrealables`
576 Mise en données Physico-numérique pour TELEMAC
577 ===============================================
579 description des conditions limites
580 ----------------------------------
582 Décrire le type de condition limite associé à chaque groupe d'edges du maillage.
583 Eficas ou editeur texte.
585 edition du fichier Cas
586 ----------------------
590 inventaire des fichiers utilisés
591 --------------------------------
595 Lancement et suivi du calcul
596 ============================
598 Lancement TELEMAC sur le poste de travail.
600 Lancement sur Cluster, études paramétriques... A détailler.
602 Dépouillement des résultats
603 ===========================
605 Utilisation de PARAVIS.