Salome HOME
Merge branch 'pre/V8_3_BR_izf' into pre/V8_3_BR
[modules/hydro.git] / doc / salome / tutorial / interpolationZ.rst
1 ..
2    Copyright (C) 2015-2016 EDF
3
4    This file is part of SALOME HYDRO module.
5
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.
10
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.
15
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/>.
18
19 #########################################
20 Interpolation en Z
21 #########################################
22
23 .. |HYDROSolver| image:: /_static/HYDROSolver.png
24    :align: middle
25    :width: 16pt
26    :height: 16pt
27
28 .. |genereInterpolz| image:: /_static/genereInterpolz.png
29    :align: middle
30    
31 .. |Bottom| image:: /_static/Bottom.png
32    :align: middle
33
34 .. |Capture_meshZ| image:: /_static/Capture_meshZ.png
35    :align: middle
36
37
38 .. |occ_view_scaling| image:: /_static/occ_view_scaling.png
39    :align: middle
40    :width: 16pt
41    :height: 16pt
42
43
44 Le maillage que nous avons généré à l'étape précédente ne contient pas d'information d'altitude.
45 Pour alimenter le code TELEMAC avec cette information, il faut rajouter au maillage un champ contenant la
46 coordonnée Z au noeuds du maillage.
47
48 Le mode de calcul de la coordonnée Z a été décrit zone par zone dans la définition du cas de calcul,
49 dans le module HYDRO.
50
51 Calcul de l'interpolation en Z aux noeuds du maillage
52 =====================================================
53
54 La constitution du champ d'altitude se fait au moyen d'un script Python, qu'il faut préparer, puis exécuter.
55
56 Le script utilise une association des régions du cas de calcul HYDRO aux groupes de faces correspondants dans le maillage.
57 Une commande du module HYDROSOLVER facilite la définition de cette association.
58
59 Il faut maintenant activer le module HYDROSOLVER, via la liste défilante des modules, ou son icône dans le bandeau : |HYDROSolver|.
60 Nous utilisons la commande *Generate interpolz.py* du menu *Hydro*.
61
62 Il faut sélectionner le cas de calcul dans la rubrique *HYDRO / CALCULATION CASE* de l'arbre d'étude.
63 Son nom apparaît dans la première ligne *Calculation cas* du dialogue.
64
65 Le chemin complet du script à créer doit être renseigné dans la rubrique *Output path* (le nom du script doit se terminer par .py).
66
67 Il faut désigner le fichier du maillage de départ construit à l'étape précédente dans rubrique *MED file*.
68
69 La valeur *Undefined Z* est utilisée quand le module HYDRO ne sait pas calculer l'altitude en un point.
70 C'est utilisé a postériori pour détecter d'éventuels problèmes de définition des zones de calcul dans le cas de calcul.
71
72 L'interpolation sur les nuages de points peut se faire de deux manières, selon que les nuages sont plus
73 denses que le maillage, ou l'inverse.
74 Pour des nuages de points très denses, il suffit de prendre l'altitude du point le plus proche du nuage.
75 Quand le maillage est plus dense que le nuage, il vaut mieux prendre l'altitude linéarisée, obtenue par
76 une triangulation préalable du nuage de points. Cette dernière méthode est plus précise
77 mais un peu plus coûteuse.
78
79 Il faut sélectionner les bons noms de régions en correspondance avec les noms des groupes de faces,
80 en laissant la sélection à *None* pour les autres groupes.
81
82   |genereInterpolz|
83
84 Le script produit plusieurs fichiers dont le nom se déduit du nom du fichier maillage d'origine
85 avec des suffixes différents, rangés dans le répertoire du fichier d'origine :
86
87 * garonne_1.med  : fichier d'origine (coordonnée z = 0)
88 * garonne_1.xyz  : fichier xyz (ASCII) des altitudes aux noeuds *(optionnel)*
89 * garonne_1F.med : coordonnée Z à sa valeur calculée, et champ "BOTTOM" avec la valeur Z aux noeuds
90
91 **Remarque** : La modification de la coordonnée Z des noeuds du maillage n'est pas nécessaire à TELEMAC,
92 mais utile pour une visualisation de contrôle du maillage.
93
94 Pour exécuter le script, il faut que le module HYDRO soit bien actif dans l'étude.
95 **Si l'on reprend une étude précédemment sauvegardée, il faut avoir activé le module HYDRO avant
96 de lancer le script** (il suffit de sélectionner HYDRO au moins une fois,
97 pour que les données stockées dans le fichier d'étude soient lues).
98 Nous exécutons le script avec la commande du menu *File / Load Script...*.
99 Le script bloque l'interface graphique le temps de son exécution qui dépend de la taille du maillage
100 et des nuages de point de bathymétrie. Il affiche une trace d'exécution dans la console
101 Python qui est affichée par défaut dans les modules GEOM et SMESH.
102
103 Il est aussi possible d'adapter manuellement le script ci-dessous :
104
105 Il faut recopier le script et l'adapter en fonction des noms de régions utilisés dans le cas de calcul
106 et des noms de groupes de faces dans le maillage.
107
108 .. literalinclude:: interpolZ.py
109     :lines: 1-
110
111 Visualisation de l'interpolation en Z aux noeuds du maillage
112 ============================================================
113
114
115 Visualisation avec le module MED
116 --------------------------------
117
118 Le module MED offre une visualisation simple des champs d'un maillage MED.
119 Il faut activer le module MED, puis utiliser le menu *File/Add Data Source* ou l'icône équivalente, et retrouver le fichier *garonne_1F.med*.
120 En dépliant l'objet *garonne_1F.med* dans l'arbre d'étude, nous trouvons le maillage *HYDRO_Garonne_1* et le champ *BOTTOM*.
121
122 Il faut sélectionner le champ et utiliser l'icone *scalar map*.
123
124 Le champ s'affiche dans la vue 3D. Le menu contextuel de la vue 3D propose la commande *Representation / Surface with Edges*
125
126   |Bottom|
127
128 Visualisation dans le module SMESH
129 ----------------------------------
130
131 A la fin de l'exécution du script d'interpolation, le maillage *HYDRO_Garonne_1* est apparu une seconde fois dans l'arbre d'étude,
132 sous la première instance, avec une icône différente. S'il n'y est pas, le menu contextuel de l'arbre d'étude propose la commande *Refresh*.
133
134 Nous affichons ce maillage dans le module SMESH, avec la commande *show*.
135 Pour mieux voir le relief, il faut modifier l'échelle en Z avec l'icône |occ_view_scaling| de la vue 3D. Ici, il suffit de prendre un facteur 3 pour Z.
136
137 *Rappel* : pour manipuler l'objet dans la vue 3D, il faut utiliser la touche <CTRL> et les boutons de la souris, ou la molette pour le zoom.
138
139 Voici la vue des groupes correspondant aux régions :
140
141   |Capture_meshZ|
142
143 .. only:: html
144
145    :ref:`ref_exempleInondation`