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
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
+
+manipulation des vues dans SALOME
+====================================
+
+Zoom
+----
+
+Ctrl + clic gauche
+
+Le zoom est centré par défaut.
+Activation avec la molette de la souris : pour pouvoir activer le zoom avec la molette de la souris :
+file / preferences (sélectionner le module SALOME) / 3D viewer / zooming style / relative au curser
+Un zoom relatif au curseur est centré sur la partie au tour de la position du curseur
+alors qu’un zoom centré prend en compte toute la zone.
+
+Pour zoomer sur une donnée de l’arbre :
+
+Sélectionner la donnée de l’arbre.
+Dans la barre d’outils en haut choisir « Fit All »
+
+Rotation
+-----------
+
+Ctrl + clic droit
+
+Translation
+-----------
+
+Ctrl + molette
+
+Affichage des données dans les fenêtres
+---------------------------------------
+
+Par un clic sur le petit œil à côté de la couche d’intérêt dans la fenêtre Object Browser
+Par un clic droit dans l’arbre de gauche (dans la fenêtre Object Browser) sur la couche d’intérêt
+utiliser les différentes possibilités ::
+
+ /show/ show only / hide / hide only / hide all /
+
+Viewers
+-------
+
+SALOME propose différents viewers :
+
+VTK pour les vues 3D (module MESH) et OCC pour les vues 2D (pour la géométrie).
+On les retrouve via les onglets qui apparaissent à l’écran.
+
+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 : pour dessiner la CAO
+
+ * MESH
+
+ * HYDRO SOLVER ???
+
+ * PARAVIS
+
+Fonctionnement :
+
+ * on crée ou importe des lignes de contour d'objets naturels (rivières, iles...)
+ et artificiels (digues, canaux, obstacles...),
+
+ * on importe des champs de bathymétrie / altimétrie, ou des séries de profils de rivière,
+
+ * on constitue des objets,
+
+ * 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),
+
+ * on exporte le cas vers GEOM,
+
+ * on ajuste le cas dans GEOM,
+
+ * on maille dans SMESH,
+
+ * on calcule l'interpolation en Z,
+
+ * on définit le paramétrage physico numérique du calcul (fichier cas),
+
+ * on exécute le calcul,
+
+ * 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 (cf. chapitre 9).
+
+ * 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 (cf. chapitre 10)
+
+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.
+
+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
+
+Import de Bathymetries
+=======================
+
+renvoi vers tutoriel
+
+visualisation : si Z < 0: caché par cartes. inverser la vue, ou decaler Z pour avoir des valeurs positives.
+
+
+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.
+
+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 ??
+
+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 (voirFigure 13).
+
+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 (voirFigure 10)
+
+Pour un canal, même démarche, mais remplacer ligne de crête par axe hydraulique.
+
+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)
+
+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.
+
+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 » (à préciser) : Plus tard ???
+
+ * 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 HYDRO_Case_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 séparer 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
+===================
+
+En hydrodynamique il est primordial de connaître la valeur de la bathymétrie en chaque nœud de calcul.
+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.
+Donc si on ne dispose que d’un seul fichier de bathymétrie on conseille d’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).
+A terme Il faudrait améliorer le script (traduire l’algorithme de TELEMAC3D je le ferai qd j’aurais un peu de temps).
+
+Interpolation avec le Script actuel :
+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(NomGroupeDeNoeuds1 = 'Case_1_Region1',
+ NomGroupeDeNoeuds2 = 'Case_1_Region2',
+ ….
+ )
+
+Dans l’optique d’utiliser Homard (disponible dans Salomé) à fin de raffiner le maillage selon
+le gradient de bathymétrie, il y a un deuxième script qui crée un champ Z,
+mais Homard casse le lien entre la géométrie et le maillage et ça devient compliquer de redéfinir les conditions aux limites.
+
+Remarque :
+
+Si on veut donner la bathymétrie dans le fichier de maillage il faut utiliser le deuxième script
+tout en changeant le nom de Z pour que l’information soit compréhensible pour TELEMAC3D
+(TELEMAC3D s’attend à un champ avec un nom appartenant à une liste prédéfinie).
+
+
+ :ref:`ref_notionsPrealables`