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.
159 Pour l’instant ces fichiers doivent porter l’extension .xyz (3 colonnes x,y,z) ou .asc (renvoi aux formats)
164 Il est possible d’importer des plans, cartes, et photos dans le module Hydro dans le dossier Images de l’arbre objet.
165 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)
166 Il est possible de récupérer l’intersection de deux images, de les fusionner, de restreindre une image à partir d’une polyline.
170 Il est possible de fusionner les images ce qui crée un nouvel objet « Fuse_N »
172 Autres options de traitement d'images
174 Choix d'un repère local
175 =======================
177 Il est vivement conseillé de changer l’origine du système de coordonnées local
178 pour éviter de manipuler de très grands nombres et avoir plus de précisions dans les différents calculs notamment pour le maillage.
181 Clic sur Hydro/change local CS
182 Renseigner les coordonnées de la nouvelle origine
184 Import de Bathymetries
185 =======================
189 visualisation : si Z < 0: caché par cartes. inverser la vue, ou decaler Z pour avoir des valeurs positives.
191 Récupération de données de bathymetrie d'un ancien maillage
192 -----------------------------------------------------------
194 Il est possible de récupérer un ancien maillage d’un cas d’étude, en le transformant avec un convertisseur
195 intégré dans SALOME-HYDRO du format selafin (.slf) au format .med (format dédié pour la plate-forme Salomé en général).
199 A partir de l’ancien maillage, il peut être nécessaire d’appliquer une translation (par exemple +2 000 000)
200 à la position y des nœuds pour passer en système de géoréférencement connu (par exemple LambertIIEtendu).
204 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
205 (position x du nœud, position y du nœud, Champ Z associé).
206 Ce fichier .xyz est converti en Lambert93 grâce au logiciel libre Circé .
210 Ensuite les positions des nœuds des bords sont récupérées à l’aide d’un script Python qui parcourt les nœuds,
211 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
212 dans le module HYDRO (la mise en forme est celle du type polyligne, voir paragraphe 8).
213 On peut isoler de cette façon le contour de l’emprise, des piles de ponts, et les îles éventuelles.
219 Import d'objets de type lignes
220 ==================================
225 définition : lignes dans le plan XY, généralement utilisées pour définir des contours, des zones.
226 Il est possible d’importer des polylines au format sinusX dans le dossier Polylines de l’arbre objet du module Hydro.
233 Deux types de profils : géoréférencés ou non:
234 les profils géo sont définis dans XYZ, les autres dans XZ (XY)
235 Utilité : section de digue, de canal, de rivière
236 Une seule section pour un canal ou une digue, une série de profils pour une rivière.
237 La valeur Z=0 correspond à la ligne de crête.
238 On considère uniquement des profils symétriques (par rapport à la ligne de crête).
240 Il est également possible d’importer des profils au format sinusX dans le dossier Profils de l’arbre objet du module Hydro
247 rivière décrite par une succession de profils en travers, ordonnés via une ligne amont-aval qui passe par ces profils.
248 Cette ligne peut être l'axe hydraulique, mais ce n'est pas obligatoire.
253 Afin de mettre en place notre modèle de terrain, le module Hydro nous permet de définir des contours, des zones.
255 Les contours types polylines sont nécessaires à la création de la géométrie.
256 Ils permettent la construction de l’emprise du modèle, des îles, du lit mineur d’un fleuve...
258 On peut superposer les contours à la bathymétrie ou aux cartes pour s’aider, visualiser.
260 On peut créer des digues ou des routes dans le modèle à l’aide de polylines.
265 Dans SALOME les polylignes sont des polylignes (séries de segments,
266 pour décrire un objet géométrique) ou des splines (suite d’arcs, lissé,
267 pour décrire une courbure naturelle, qui s’adaptera à la finesse de la discrétisation).
268 L’utilisation de splines permet de définir des contours sans que le maillage qui s’y appuie
269 ne s’accroche à tous les points de la ligne : seule la forme générale compte.
270 On choisit l’un des deux modes au départ.
271 Puis la création du contour se fait par clic directement dans l’IHM.
272 Il est possible d’éditer le contour par la suite et de déplacer un ou plusieurs points
273 ou bien d’en ajouter. On peut également changer après coup le type d’une ligne : polyligne simple ou spline.
275 On peut tracer les lignes de contrainte à la souris, ou les importer à partir d’un fichier.
277 Pour créer une polyligne :
279 Dans le module HYDRO :
281 * Clic droit sur POLYLINES / Create polyline
283 * (ou MenuHYDRO, Create polyline)
285 On peut définir des « sections », i.e. des portions de polylignes,
286 ce qui peut être utile pour gérer des connexions de polylignes.
287 Créer une polyligne de type spline fermée pour délimiter la zone à mailler par exemple.
289 Dans la partie droite de l’écran une fenêtre apparaît :
291 * Saisir le nom de la ligne (par défaut le premier nom est « Polyline_1 »)
293 * Cliquer sur le bouton ‘Insert section’
295 En bas, à droite de l’écran, apparaît une zone de saisie : « Add element »
297 * Saisir le nom de la section
299 * Choisir le type (polyline ou spline)
301 * Cocher ou décocher : ‘Closed’
303 * En haut de la zone section, cliquer sur le bouton « Addition Mode »
305 * Cliquer les points de la ligne dans la zone principale de l’écran, sur la carte (onglet OCC Viewer)
307 * Terminer la ligne par un double-clic
309 En recliquant sur « Addition Mode », on peut ajouter des points à la polyligne
310 En cliquant sur « Modification mode », on peut sélectionner les points :
311 les coordonnées des points apparaissent alors en bas à droite sous forme de table.
312 Il est possible d’en modifier les valeurs de X et/ou de Y, ou de déplacer les points sur la vue OCC.
314 Le clic sur « Apply » ferme la fenêtre de polyline. Pour la modifier :
316 * clic droit sur le nom de la polyline dans la colonne de gauche et « Edit Polyline ».
318 « Detection Mode » : permet de sélectionner toute la ligne en cliquant dessus.
320 L’action « Remove » permet de supprimer une section d’une courbe qui en comporte déjà plusieurs.
321 Le bouton « join selected sections » est actif quand deux sections de la même courbe
322 sont sélectionnées (à éviter avec des courbes fermées).
323 Il relie le dernier point de la première courbe sélectionnée au premier point de la deuxième courbe sélectionnée.
325 Pour transformer une section ouverte en section fermée (ou inversement) après saisie :
327 * sélectionner le mode modification
329 * clic droit sur le nom de la sélection
331 * set closed (ou set open)
333 profils de digue ou canal
334 --------------------------
337 dessin grossier de la forme, selection des points, affichage du tableau de coordonnées et modification
344 Création d'objets "naturels" type "zone immersible"
345 ===================================================
347 distinguer les iles du reste.
349 Bathymétrie associée.
351 Créer une zone immersible consiste à créer une face géométrique à partir d’un des contours dessinés précédemment.
352 On renseigne donc pour cela la polyline (obligatoire) sur laquelle va reposer la face et la bathymétrie (facultative)
353 que l’on souhaite associer à cette zone géographique.
357 Remarque : la bathymétrie est facultative dans la création d’une zone immersible car on n’a pas forcément
358 d’altitudes associées à chaque zone construite mais on souhaite tout de même que les contours de ces zones
359 soient pris en compte pour la partition qui va créer notre modèle plus tard.
361 Par exemple, le cas des îles est typique : nous n’avons pas de topographie associée à l’île de la centrale nucléaire
362 mais nous souhaitons que le contour soit inscrit dans le modèle numérique de terrain.
364 Il est également possible de changer l’ordre d’affichage des différentes zones pour une meilleure
365 visibilité du futur modèle (renvoi figure).
367 Caractère submersible ou non
369 Création d'objets "naturels" type "stream"
370 ==========================================
372 Il faut, soit l'axe hydraulique, soit une ligne reliant les profils pour les ordonner.
374 Les profils sont importés.
376 Création d'objet "artificiel" type digue ou canal
377 =================================================
379 Le module Hydro permet la création de d’objets digues dans le dossier Artificial Objects de l’arbre objet du module Hydro.
380 Une digue se crée en 5 étapes :
382 * D’abord, il faut créer l’axe de la digue en tant que polyline (XY, en vue de dessus),
384 * Ensuite, il faut créer la ligne de crête de la digue en tant que profil
385 ((XZ, XY, altitude en fonction de l'abcisse curviligne sur l'axe)
387 * Ainsi que la section de la digue en tant que profil également (XZ, ligne brisée),
389 * Puis, il faut créer une polyline3D dans le dossier de même nom dans Hydro.
390 Cela permet d’associer l’axe de la digue avec le profil d’altitude,
392 * Enfin, il faut créer un objet digue dans le dossier Artificial Objects,
393 en associant la polyline3D avec le profil de section de la digue (images et renvoi tutoriel)
395 Pour un canal, même démarche, mais remplacer ligne de crête par axe hydraulique.
397 Detailler le principe du calcul de l'altitude en tout point de la digue ou du canal :
398 la ligne de crête ou l'axe hydraulique correspondent à la côte 0 de la section (dessin).
400 Vérifier effet géoréférencement
405 objets géométriques complexes (bâtiments...) importés depuis GEOM,
406 pour constituer des zones non submersibles ("iles" ou assimilés)
411 Tables de coefficients de Strickler
412 ===================================
421 Constitution d'un cas de calcul
422 ================================
424 Pour démarrer un nouveau cas de calcul :
426 * clic droit sur le dossier CALCULATION CASE de l’arbre objet du module HYDRO
428 * create Calculation case
430 Première étape d’un cas de calcul, l’utilisateur choisit les différents objets métiers créés précédemment
431 qui vont participer au modèle de terrain qu’il souhaite générer.
433 A reprendre : décrire les principes : selection des objets, partition : zonesàpar type de calcul de la bathy...
434 Images de principe, renvoi au tutoriel pour étapes.
438 Figure 14 : Création d’un cas de calcul
439 Dans cette étape, on sélectionne les objets à mailler.
440 Dans la deuxième étape, HYDRO propose une série de segments
441 (contours des différents objets choisis précédemment « nomObjet_outer »).
442 L’utilisateur sélectionne ceux qui sont pertinents pour son calcul (ils seront visibles dans le module géométrie).
443 Le choix des contours à considérer permet de définir des régions homogènes et s’affranchir de contraintes
444 supplémentaires dans le maillage.
445 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.
447 Première étape d’un cas de calcul, l’utilisateur choisit les différents objets métiers créés précédemment
448 qui vont participer au modèle de terrain qu’il souhaite générer.
452 Notion de partition : le decoupage en faces élémentaires ou zones : dessin explicatif
454 On peut regrouper des zones en régions homogènes dans la structure du maillage visée,
455 pour s’affranchir des contours que l'on ne veut pas garder en tant que lignes de contraintes.
457 SALOME indique les zones de recouvrement des différents objets pour lesquelles il faut choisir une bathymétrie
458 (si plusieurs bathymétries existent sur une même zone).
459 Il est possible de sélectionner une des bathymétries
460 (par exemple la campagne de bathymétrie la plus récente, ou le min ou le max des bathy).
462 Il faut ensuite exporter le cas de calcul en tant que « géométrie SALOME ».
464 * Clic droit sur Calculation case
466 * Export calculation case = fabrique une entrée dans GEOMETRY
468 Géométrie: Module GEOM
469 ======================
471 Une fois le cas de calcul terminé et exporté il apparait dans le module GEOM.
473 Il faut se déplacer vers ce module pour pouvoir le visualiser et le modifier.
474 Dans GEOM, on voit notre cas de calcul sous le nom <nom de cas>_N auquel est attaché le (ou les) contour(s)
475 choisis au moment au moment de la définition du cas de calcul.
477 Il se peut qu’on ait besoin de identifier certaines parties :
479 * Faces : pour mailler de façon différentes certaines zones
481 * Segments : pour définir les conditions aux limites.
483 Pour cela on crée des groupes à partir de l’entité géométrique initiale soit par un clic droit
484 sur cette entité ensuite create groupe soit en allant sur New Entity / Group / Create group.
485 Lorsque la fenêtre de dialogue s’ouvre on vérifie bien que le nom de l’entité figure dans Main Shape,
486 ensuite on choisit le type de groupe que l’on souhaite créer (groupe de points, de segments, de faces ou d’objet 3D).
487 Après on sélectionne les parties qui nous intéressent une à une en cliquant à chaque fois sur Add.
489 Dans ce module, on peut aussi définir des points fixes de notre maillage
490 (qui vont par exemple correspondre à des points de mesure).
491 Ceci doit être fait avant la définition des groupes.
492 En effet, on commence par créer nos points (New Entity /Basic /Point en donnant leur coordonnées dans le bon système),
493 ensuite on fusionne ces points avec notre objet de départ en utilisant La fonction Operations / Partion
494 et en sélectionnant les objets à fusionner
495 (il faut maintenir la touche Ctrl enfoncée et cliquer sur les objets dans l’arbre à gauche).
496 Une fois la partition créée on commence la définition des groupes qui nous intéressent
497 (y compris les points qu’on vient de créer). Ces manipulations peuvent paraître redondantes mais elles sont primordiales.
498 On effet la partition permet de créer un lien entre l’entité géométrique de base et les objets qu’on ajoute.
499 Ces liens seront aussi visibles par le mailleur qui va les considérer comme des points fixe du maillage.
500 La définition des différents groupes va nous permettre d’isoler les nœuds qui appartiennent à ces groupes
501 à fin de pouvoir les manipuler de façon différente plus tard.
503 Maillage: Module SMESH
504 =======================
508 Contrôle des lignes de contrainte, des tailles de mailles.
510 Sous maillage /groupe géometrique.
512 Maillage d'une digue, d'un canal.
514 Maillage d'une riviere (lit mineur).
516 Maillage des autres régions.
524 En hydrodynamique il est primordial de connaître la valeur de la bathymétrie en chaque nœud de calcul.
526 Rappeler le principe de calcul de la BATHY: découpage en régions (faces géométriques)
527 qui contiennent des zones (mode de calcul de la Bathy).
528 Différents modes de calcul de la bathymetrie:
529 à partir des nuages de points
530 à partir des profils de rivière
531 à partir de l'axe et de la section des digues et canaux
532 à partir de la CAO des obstacles
534 Pour les nuages de points, pour le moment on dispose d’un premier script qui permet d’interpoler la bathymétrie sur le maillage.
535 Ce script utilise un algorithme qui prend juste la valeur du Z du point le plus proche.
537 Plusieurs approches possibles, quand la bathymétrie n'est pas assez dense par rapport au maillage :
539 * densifier artificiellement la bathymétrie (interpolation linéaire, outils et scripts à proposer)
540 * utiliser TELEMAC avec les restrictions ci -dessous.
542 Si on ne dispose que d’un seul fichier de bathymétrie on peut utiliser l’algorithme de TELEMAC3D
543 qui fait une interpolation linéaire sur le quadrangle le plus proche en donnant juste le nom du fichier (XYZ)
544 avec le mot clé FICHIER DES FONDS.
546 Ceci dit TELEMAC n’accepte pas plusieurs fichiers. (il n’aime pas quand on a plusieurs valeurs pour le même point).
548 L'amélioration du script est prévue en 2016.
550 Utilisation du script d'interpolation
551 -------------------------------------
553 D’abord exporter le maillage en MED (il faut que des groupes de nœuds soit créés pour chaque région)
555 Modifier l’entête du script, en indiquant le nom du cas de calcul,
556 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
557 (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::
559 nomCas = 'Nom du cas Case 1'
560 fichierMaillage = 'chemin absolu du fichier Mesh.med'
561 dicoGroupeRegion= dict(NomGroupeMaillage1 = 'Case_1_Region1',
562 NomGroupeMaillage2 = 'Case_1_Region2',
566 Il est prévu de permettre un raffinement de maillage avec Homard (disponible dans Salomé)
567 en s'appuyant sur le gradient de bathymétrie.
569 Le script d'interpolation en Z produit un maillage avec un champ aux noeuds contenant l'altitude,
570 utilisable tel que par TELEMAC, ainsi qu'un maillage avec la cote Z modifiée, pour un contrôle visuel
571 dans le mailleur, et enfin un fichier .xyz des noeuds du maillage.
573 :ref:`ref_notionsPrealables`
575 Mise en données Physico-numérique pour TELEMAC
576 ===============================================
578 description des conditions limites
579 ----------------------------------
581 Décrire le type de condition limite associé à chaque groupe d'edges du maillage.
582 Eficas ou editeur texte.
584 edition du fichier Cas
585 ----------------------
589 inventaire des fichiers utilisés
590 --------------------------------
594 Lancement et suivi du calcul
595 ============================
597 Lancement TELEMAC sur le poste de travail.
599 Lancement sur Cluster, études paramétriques... A détailler.
601 Dépouillement des résultats
602 ===========================
604 Utilisation de PARAVIS.