Salome HOME
Merge branch 'master' into BR_quadtree
[modules/hydro.git] / doc / salome / tutorial / preliminaires.rst
index 527143947237456cefbe298e40cd5283866f1a6b..4ea39a81cd3e2fa9e2d0d284fb195a9d982c2031 100644 (file)
@@ -17,7 +17,7 @@
    along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
 
 #########################################
-Notions préliminaires
+Notions préliminaires 
 #########################################
 
  * **Géoréférencement** : Le système de projection à utiliser dépend de 
@@ -34,5 +34,571 @@ Notions préliminaires
    Pour améliorer la précision numérique dans les différentes étapes de
    l'étude (géométrie, maillage, calcul...),
    **il est très fortement recommandé de prendre un repère local**.
+
+ * **ligne de contrainte** Ligne sur laquelle le maillage va s'appuyer.
+   Dans SALOME, ces lignes sont définies dans la Géométrie (module GEOM) en tant que "edge".
+   Toutes les lignes que l'on construit dans le module HYDRO ne sont pas forcément gardées dans la géométrie.
+
+ * **axe hydraulique** Ligne d'écoulement d'une rivière.
+   Souvent obtenue en reliant les points bas d'une succession de profils en travers.
+
+ * **ligne de crête** Ligne reliant les points les plus haut d'une digue.
+
+ * **partition** Zones et Régions
+   
+
+################################################
+Principales étapes d'une étude avec SALOME-HYDRO
+################################################
+
+SALOME contient l’ensemble des modules nécessaires au lancement d’une étude Telemac.
+
+L’application SALOME-HYDRO concentre les modules HYDRO et HYDRO-SOLVER au sein de la plate-forme SALOME      
+et intègre le système Telemac2D.
+
+La figure ci-dessous résume les étapes générales et les outils utilisés au sein de la plate-forme SALOME : 
+lien image
+
+Figure 1 : Etapes d’une étude hydraulique avec la plate-forme Salomé 
+
+L’étude se déroulera en passant par les différents modules de SALOME :
+
+ * HYDRO
+
+ * GEOM
+
+ * MESH
+
+ * HYDROSOLVER
+
+ * PARAVIS
+
+Fonctionnement :
+
+ * HYDRO : on importe des images et/ou des plans
+
+ * HYDRO : on crée ou importe des lignes de contour d'objets naturels (rivières, iles...) 
+   et artificiels (digues, canaux, obstacles...), 
+
+ * HYDRO : on importe des champs de bathymétrie / altimétrie, ou des séries de profils de rivière, 
+
+ * HYDRO : on constitue des objets, 
+
+ * HYDRO : on constitue des cas de calculs en choisissant les objets utiles au cas, 
+   on regroupe les zones en régions (= faces de la géométrie finale),
+
+ * HYDRO : on exporte le cas vers GEOM,
+
+ * GEOM : on reprend le cas dans GEOM, pour completer l'identification des groupes liés aux différentes zones du domaine 
+   et des conditions limites,
+
+ * SMESH : choix algorithmes et hypothèses de maillage, maillage et exportation fichier MED,
+
+ * HYDRO : on calcule l'interpolation en Z, a partir du fichier MED et du cas de calcul, 
+
+ * HYDROSOLVEUR : on définit le paramétrage physico numérique du calcul (fichier cas), 
+
+ * HYDROSOLVEUR : on exécute le calcul,
+
+ * PARAVIS : on dépouille les résultats
+
+Dans le module HYDRO lui-même, la logique d’enchaînement des étapes est la suivante 
+(voir les différents types d’objets manipulés dans l’arbre de gauche) :
+
+ * IMAGES : 
+
+L’idée est de partir d’images satellitaires et/ou de cartes de la zone à mailler 
+pour situer les différents éléments de l’étude., Ces images devront être géoréférencées 
+dans le même système de coordonnées que l’ensemble des données (Lambert93 par exemple). 
+Il peut s’agir de capture d’écran du géoportail par exemple. (cf chapitre 6)
+
+ * BATHYMETRIE :
+
+Les bathymétries constituées de nuages de points et/ ou de profils qui constituent le modèle de terrain 
+sur lequel va s’appuyer le maillage sont importées dans le projet (cf chapitre 7).
+
+ * POLYLINES :
+
+Les polylines (importées et/ou construites dans SALOME) permettent de définir les contours pour 
+le futur maillage et des différents éléments qui seront à prendre en compte. 
+Les poylignes splines permettent de définir des contours sans que le maillage qui 
+s’y appuiera ne doive utiliser strictement les points de la ligne. Seule la forme générale compte. 
+On peut tracer les lignes de contrainte à la souris ou les importer à partir d’un fichier (cf chapitre 8).
+
+ * NATURAL OBJECTS :
+
+Il s’agit des éléments constitués par exemple de l’emprise d’un domaine, d’îles, ….. 
+ou une région du domaine étudié à laquelle on associe une bathymétrie
+
+A compléter
+
+La création d’objets "naturels" et "artificiels" permet de définir les zones à mailler 
+et les bathymétries à y associer.
+
+ * ARTIFICIAL OBJECTS :
+
+Il s’agit de construire des éléments tels que des digues ou des canaux de géométrie connue.
+
+ * CALCULATION CASES :
+
+Lors de la définition du cas de calcul on sélectionne les objets à mailler et on résout les conflits 
+de recouvrement des bathymétries.
+
+Il s’agit ici de la description d’un déroulement type, des allers-retours entre les différentes étapes
+sont tout à fait possibles et se produiront certainement.
+
+données préalables
+==================
+
+* Pour les fichiers image : disposer de fichiers images des fonds carto ou photo et avoir repéré dans le système de travail 
+  (les coordonnées de 2 ou 3 points) bien répartis sur l’image (proches des coins de préférences).
+  Avec trois points, on peut faire une transformation affine de l'iamge, si celle-ci n'est pas correctement orientée.
+* Disposer des données de bathy au format ascii.
+Pour l’instant ces fichiers doivent porter l’extension .xyz (3 colonnes x,y,z) ou .asc (renvoi aux formats)
+
+Import d'images
+================
+
+Il est possible d’importer des plans, cartes, et photos dans le module Hydro dans le dossier Images de l’arbre objet.
+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)
+Il est possible de récupérer l’intersection de deux images, de les fusionner, de restreindre une image à partir d’une polyline.
+
+lien vers tutoriel
+
+Il est possible de fusionner les images ce qui crée un nouvel objet « Fuse_N »
+
+Autres options de traitement d'images
+
+Choix d'un repère local
+=======================
+
+Il est vivement conseillé de changer l’origine du système de coordonnées local 
+pour éviter de manipuler de très grands nombres et  avoir plus de précisions dans les différents calculs notamment pour le maillage. 
+Pour cela il faut :
+
+  Clic sur Hydro/change local CS
+  Renseigner les coordonnées de la nouvelle origine
+
+Import de Bathymetries
+=======================
+
+renvoi vers tutoriel
+
+visualisation : si Z < 0: caché par cartes. inverser la vue, ou decaler Z pour avoir des valeurs positives.
+
+Récupération de données de bathymetrie d'un ancien maillage 
+-----------------------------------------------------------
+
+Il est possible de récupérer un ancien maillage d’un cas d’étude, en le transformant  avec un convertisseur 
+intégré dans SALOME-HYDRO du format selafin (.slf) au format .med (format dédié pour la plate-forme Salomé en général).
+
+ * Mode opératoire ??
+
+A partir de l’ancien maillage, il peut être nécessaire d’appliquer une translation (par exemple +2 000 000) 
+à la position y des nœuds pour passer en système de géoréférencement connu (par exemple LambertIIEtendu). 
+
+ * Mode opératoire ??
+
+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 
+(position x du nœud, position y du nœud, Champ Z associé). 
+Ce fichier .xyz est converti en Lambert93 grâce au logiciel libre Circé .
+
+ * Mode opératoire ??
+
+Ensuite les positions des nœuds des bords sont récupérées à l’aide d’un script Python qui parcourt les nœuds,
+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
+dans le module HYDRO (la mise en forme est celle du type polyligne, voir paragraphe 8). 
+On peut isoler de cette façon le contour de l’emprise, des piles de ponts, et les îles éventuelles.
+
+ * Mode opératoire ??
+ 
+
+
+Import d'objets de type lignes
+==================================
+
+polylignes
+-----------
+
+définition : lignes dans le plan XY, généralement utilisées pour définir des contours, des zones.
+Il est possible d’importer des polylines au format sinusX dans le dossier Polylines de l’arbre objet du module Hydro.
+
+lien Format sinusX
+
+profils
+----------
+
+Deux types de profils : géoréférencés ou non: 
+les profils géo sont définis dans XYZ, les autres dans XZ (XY)
+Utilité : section de digue, de canal, de rivière
+Une seule section pour un canal ou une digue, une série de profils pour une rivière.
+La valeur Z=0 correspond à la ligne de crête.
+On considère uniquement des profils symétriques (par rapport à la ligne de crête).
+
+Il est également possible d’importer des profils au format sinusX dans le dossier Profils de l’arbre objet du module Hydro
+
+lien Format sinusX
+
+Streams
+--------
+
+rivière décrite par une succession de profils en travers, ordonnés via une ligne amont-aval qui passe par ces profils.
+Cette ligne peut être l'axe hydraulique, mais ce n'est pas obligatoire.
+
+Dessin de lignes
+=================
+
+Afin de mettre en place notre modèle de terrain, le module Hydro nous permet de définir des contours, des zones.
+
+Les contours types polylines sont nécessaires à la création de la géométrie. 
+Ils permettent la construction de l’emprise du modèle, des îles, du lit mineur d’un fleuve...
+On peut superposer les contours à la bathymétrie ou aux cartes pour s’aider, visualiser. 
+
+On peut créer des digues ou des routes dans le modèle à l’aide de polylines.
+
+polylines
+---------
+
+Dans SALOME les polylignes sont des polylignes (séries de segments, 
+pour décrire un objet géométrique) ou des splines (suite d’arcs, lissé, 
+pour décrire une courbure naturelle, qui s’adaptera à la finesse de la discrétisation).
+L’utilisation de splines permet de définir des contours sans que le maillage qui s’y appuie 
+ne s’accroche à tous les points de la ligne : seule la forme générale compte.
+On choisit l’un des deux modes au départ. 
+Puis la création du contour se fait par clic directement dans l’IHM. 
+Il est possible d’éditer le contour par la suite et de déplacer un ou plusieurs points 
+ou bien d’en ajouter. On peut également changer après coup le type d’une ligne : polyligne simple ou spline.
+
+On peut tracer les lignes de contrainte à la souris, ou les importer à partir d’un fichier.
+
+Pour créer une polyligne :
+
+Dans le module HYDRO :
+
+ * Clic droit sur POLYLINES / Create polyline
+
+ * (ou MenuHYDRO, Create polyline)
+
+On peut définir des « sections », i.e. des portions de polylignes, 
+ce qui peut être utile pour gérer des connexions de polylignes.
+Créer une polyligne de type spline fermée pour délimiter la zone à mailler par exemple.
+
+Dans la partie droite de l’écran une fenêtre apparaît :
+
+ * Saisir le nom de la ligne (par défaut le premier nom est «  Polyline_1 »)
+
+ * Cliquer sur le bouton ‘Insert section’
+
+En bas, à droite de l’écran, apparaît une zone de saisie : « Add element »
+
+ * Saisir le nom de la section
+
+ * Choisir le type (polyline ou spline)
+
+ * Cocher ou décocher : ‘Closed’
+
+ * En haut de la zone section, cliquer sur le bouton « Addition Mode »
+
+ * Cliquer les points de la ligne dans la zone principale de l’écran, sur la carte (onglet OCC Viewer)
+
+ * Terminer la ligne par un double-clic
+
+En recliquant sur « Addition Mode », on peut ajouter des points à la polyligne
+En cliquant sur « Modification mode », on peut sélectionner les points :
+les coordonnées des points apparaissent alors en bas à droite sous forme de table.
+Il est possible d’en modifier les valeurs de X et/ou de Y, ou de déplacer les points sur la vue OCC.
+
+Le clic sur « Apply » ferme la fenêtre de polyline. Pour la  modifier :        
+
+ * clic droit sur le nom de la polyline dans la colonne de gauche et « Edit Polyline ».
+
+« Detection Mode » : permet de sélectionner toute la ligne en cliquant dessus.
+
+L’action « Remove » permet de supprimer une section d’une courbe qui en comporte déjà plusieurs.
+Le bouton « join selected sections » est actif quand deux sections de la même courbe 
+sont sélectionnées (à éviter avec des courbes fermées). 
+Il relie le dernier point de la première courbe sélectionnée au premier point de la deuxième courbe sélectionnée.
+
+Pour transformer une section ouverte en section fermée (ou inversement) après saisie : 
+
+ * sélectionner le mode modification 
+
+ * clic droit sur le nom de la sélection
+
+ * set closed (ou set open) 
+
+profils de digue ou canal
+--------------------------
+
+dessin ou import
+dessin grossier de la forme, selection des points, affichage du tableau de coordonnées et modification
+
+profils de riviere
+------------------
+
+import seulement
+
+Création d'objets "naturels" type "zone immersible"
+===================================================
+
+distinguer les iles du reste.
+
+Bathymétrie associée.
+
+Créer une zone immersible consiste à créer une face géométrique à partir d’un des contours dessinés précédemment. 
+On renseigne donc pour cela la polyline (obligatoire) sur laquelle va reposer la face et la bathymétrie (facultative) 
+que l’on souhaite associer à cette zone géographique.
+
+Couleur  éditable.
+
+Remarque : la bathymétrie est facultative dans la création d’une zone immersible car on n’a pas forcément
+d’altitudes associées à chaque zone construite mais on souhaite tout de même que les contours de ces zones 
+soient pris en compte pour la partition qui va créer notre modèle plus tard. 
+
+Par exemple, le cas des îles est typique : nous n’avons pas de topographie associée à l’île de la centrale nucléaire 
+mais nous souhaitons que le contour soit inscrit dans le modèle numérique de terrain.
+
+Il est également possible de changer l’ordre d’affichage des différentes zones pour une meilleure 
+visibilité du futur modèle (renvoi figure).
+
+Caractère submersible ou non
+
+Création d'objets "naturels" type "stream"
+==========================================
+
+Il faut, soit l'axe hydraulique, soit une ligne reliant les profils pour les ordonner.
+
+Les profils sont importés.
+
+Création d'objet "artificiel" type digue ou canal
+=================================================
+
+Le module Hydro permet la création de d’objets digues dans le dossier Artificial Objects de l’arbre objet du module Hydro.
+Une digue se crée en 5 étapes : 
+
+ * D’abord, il faut créer l’axe de la digue en tant que polyline  (XY, en vue de dessus),
+
+ * Ensuite, il faut créer la ligne de crête de la digue en tant que profil
+   ((XZ, XY, altitude en fonction de l'abcisse curviligne sur l'axe) 
+
+ * Ainsi que la section de la digue en tant que profil également (XZ, ligne brisée),
+
+ * Puis, il faut créer une polyline3D dans le dossier de même nom dans Hydro. 
+   Cela permet d’associer l’axe de la digue avec le profil d’altitude,
+
+ * Enfin, il faut créer un objet digue dans le dossier Artificial Objects, 
+   en associant la polyline3D avec le profil de section de la digue (images et renvoi tutoriel)
+
+Pour un canal, même démarche, mais remplacer ligne de crête par axe hydraulique.
+
+Detailler le principe du calcul de l'altitude en tout point de la digue ou du canal : 
+la ligne de crête ou l'axe hydraulique correspondent à la côte 0 de la section (dessin).
+
+Vérifier effet géoréférencement
+
+Obstacles
+============
+
+objets géométriques complexes (bâtiments...) importés depuis GEOM, 
+pour constituer des zones non submersibles ("iles" ou assimilés)
+
+exemple ?
+
+
+Tables de coefficients de Strickler
+===================================
+
+a compléter
+
+Land Cover maps
+===============
+
+a compléter
+
+Constitution d'un cas de calcul
+================================
+
+Pour démarrer un nouveau cas de calcul :
+
+ * clic droit sur le dossier CALCULATION CASE de l’arbre objet du module HYDRO
+
+ * create Calculation case
+
+Première étape d’un cas de calcul, l’utilisateur choisit les différents objets métiers créés précédemment 
+qui vont participer au modèle de terrain qu’il souhaite générer.
+A reprendre : décrire les principes : selection des objets, partition : zonesàpar type de calcul de la bathy...
+Images de principe, renvoi au tutoriel pour étapes.
+
+::
+
+  Figure 14 : Création d’un cas de calcul
+  Dans cette étape, on sélectionne les objets à mailler.
+  Dans la deuxième étape, HYDRO propose une série de segments 
+  (contours des différents objets choisis précédemment « nomObjet_outer »). 
+  L’utilisateur sélectionne ceux qui sont pertinents pour son calcul (ils seront visibles dans le module géométrie). 
+  Le choix des contours à considérer permet de définir des régions homogènes et s’affranchir de contraintes 
+  supplémentaires dans le maillage.
+  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.
+
+  Première étape d’un cas de calcul, l’utilisateur choisit les différents objets métiers créés précédemment 
+  qui vont participer au modèle de terrain qu’il souhaite générer.
+
+  etc.
+
+  Notion de partition : le decoupage en faces élémentaires ou zones : dessin explicatif
+On peut regrouper des zones en régions homogènes dans la structure du maillage visée, 
+pour s’affranchir des contours que l'on ne veut pas garder en tant que lignes de contraintes.
+
+SALOME indique les zones de recouvrement des différents objets pour lesquelles il faut choisir une bathymétrie 
+(si plusieurs bathymétries existent sur une même zone). 
+Il est possible de sélectionner une des bathymétries 
+(par exemple la campagne de bathymétrie la plus récente, ou le min ou le max des bathy). 
+
+Il faut ensuite exporter le cas de calcul en tant que « géométrie SALOME ».
+
+ * Clic droit sur Calculation case
+
+ * Export calculation case   = fabrique une entrée dans GEOMETRY
+
+Géométrie: Module GEOM
+======================
+
+Une fois le cas de calcul terminé et exporté il apparait dans le module GEOM.
+
+Il faut se déplacer vers ce module pour pouvoir le visualiser et le modifier.
+Dans GEOM, on voit notre cas de calcul sous le nom <nom de cas>_N auquel est attaché le (ou les) contour(s) 
+choisis au moment au moment de la définition du cas de calcul.
+
+Il se peut qu’on ait besoin de identifier certaines parties :
+
+ * Faces : pour mailler de façon différentes certaines zones
+
+ * Segments : pour définir les conditions aux limites.
+
+Pour cela on crée des groupes à partir de l’entité géométrique initiale soit par un clic droit 
+sur cette entité ensuite create groupe soit en allant sur New Entity / Group / Create group. 
+Lorsque la fenêtre de dialogue s’ouvre on vérifie bien que le nom de l’entité figure dans Main Shape, 
+ensuite on choisit le type de groupe que l’on souhaite créer (groupe de points, de segments, de faces ou d’objet 3D). 
+Après on sélectionne les parties qui nous intéressent une à une en cliquant à chaque fois sur Add.
+Dans ce module, on peut aussi définir des points fixes de notre maillage 
+(qui vont par exemple correspondre à des points de mesure). 
+Ceci doit être fait avant la définition des groupes. 
+En effet, on  commence par créer nos points (New Entity /Basic /Point en donnant leur coordonnées dans le bon système), 
+ensuite on fusionne ces points avec notre objet de départ en utilisant La fonction Operations / Partion   
+et en sélectionnant les objets à fusionner 
+(il faut maintenir la touche Ctrl enfoncée et cliquer sur les objets dans l’arbre à gauche). 
+Une fois la partition créée on commence la définition des groupes qui nous intéressent 
+(y compris les points qu’on vient de créer). Ces manipulations peuvent paraître redondantes mais elles sont primordiales. 
+On effet la partition permet de créer un lien entre l’entité géométrique de base et les objets qu’on ajoute. 
+Ces liens seront aussi visibles par le mailleur qui va les considérer comme des points fixe du maillage. 
+La définition des différents groupes va nous permettre d’isoler les nœuds qui appartiennent à ces groupes 
+à fin de pouvoir les manipuler de façon différente plus tard.
    
+Maillage: Module SMESH
+=======================
+
+Cf. tutoriel
+
+Contrôle des lignes de contrainte, des tailles de mailles.
+
+Sous maillage /groupe géometrique.
+
+Maillage d'une digue, d'un canal.
+
+Maillage d'une riviere (lit mineur).
+
+Maillage des autres régions.
+
+Interpolation en Z
+===================
+
+principes
+---------
+
+En hydrodynamique il est primordial de connaître la valeur de la bathymétrie en chaque nœud de calcul.
+
+Rappeler le principe de calcul de la BATHY: découpage en régions (faces géométriques)
+qui contiennent des zones (mode de calcul de la Bathy).
+Différents modes de calcul de la bathymetrie: 
+à partir des nuages de points
+à partir des profils de rivière
+à partir de l'axe et de la section des digues et canaux
+à partir de la CAO des obstacles
+
+Pour les nuages de points, pour le moment on dispose d’un premier script qui permet d’interpoler la bathymétrie sur le maillage. 
+Ce script utilise un algorithme qui prend juste la valeur du Z du point le plus proche. 
+
+Plusieurs approches possibles, quand la bathymétrie n'est pas assez dense par rapport au maillage :
+
+ * densifier artificiellement la bathymétrie (interpolation linéaire, outils et scripts à proposer)
+ * utiliser TELEMAC avec les restrictions ci -dessous.
+
+Si on ne dispose que d’un seul fichier de bathymétrie on peut utiliser l’algorithme de TELEMAC3D 
+qui fait une interpolation linéaire sur le quadrangle le plus proche en donnant juste le nom du fichier (XYZ) 
+avec le mot clé  FICHIER DES FONDS.
+
+Ceci dit TELEMAC n’accepte pas plusieurs fichiers. (il n’aime pas quand on a plusieurs valeurs pour le même point).
+  
+L'amélioration du script est prévue en 2016.
+
+Utilisation du script d'interpolation 
+-------------------------------------
+
+D’abord exporter le maillage en MED (il faut que des groupes de nœuds soit créés pour chaque région)
+
+Modifier l’entête du script, en indiquant le nom du cas de calcul, 
+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 
+(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::
+
+  nomCas = 'Nom du cas Case 1'
+  fichierMaillage = 'chemin absolu du fichier Mesh.med'
+  dicoGroupeRegion= dict(NomGroupeMaillage1 = 'Case_1_Region1',
+                         NomGroupeMaillage2 = 'Case_1_Region2',
+                         ….
+                         )
+
+Il est prévu de permettre un raffinement de maillage avec Homard (disponible dans Salomé)
+en s'appuyant sur le gradient de bathymétrie.
+
+Le script d'interpolation en Z produit un maillage avec un champ aux noeuds contenant l'altitude,
+utilisable tel que par TELEMAC, ainsi qu'un maillage avec la cote Z modifiée, pour un contrôle visuel 
+dans le mailleur, et enfin un fichier .xyz des noeuds du maillage.
+ 
+  :ref:`ref_notionsPrealables`
+
+Mise en données Physico-numérique pour TELEMAC
+===============================================
+
+description des conditions limites
+----------------------------------
+
+Décrire le type de condition limite associé à chaque groupe d'edges du maillage.
+Eficas ou editeur texte.
+
+edition du fichier Cas
+----------------------
+
+A l'éditeur texte.
+
+inventaire des fichiers utilisés
+--------------------------------
+
+Eficas
+
+Lancement et suivi du calcul
+============================
+
+Lancement TELEMAC sur le poste de travail.
+
+Lancement sur Cluster, études paramétriques... A détailler.
+
+Dépouillement des résultats
+===========================
 
+Utilisation de PARAVIS.
\ No newline at end of file