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 .. |mesh_init| image:: /_static/mesh_init.png
28 .. |mesh_edit| image:: /_static/mesh_edit.png
33 .. |mesh_hypo_edit| image:: /_static/mesh_hypo_edit.png
38 .. |vtk_view_fitall| image:: /_static/vtk_view_fitall.png
43 .. |vtk_view_top| image:: /_static/vtk_view_top.png
49 .. |Capture_CreateMesh| image:: /_static/Capture_CreateMesh.png
52 .. |Capture_HypothesisConstruction| image:: /_static/Capture_HypothesisConstruction.png
55 .. |Capture_CreateSubMesh| image:: /_static/Capture_CreateSubMesh.png
58 .. |Capture_HypothesisLocalLength| image:: /_static/Capture_HypothesisLocalLength.png
61 .. |Capture_HypothesisNbSegments| image:: /_static/Capture_HypothesisNbSegments.png
64 .. |Capture_WarningOrder| image:: /_static/Capture_WarningOrder.png
67 .. |Capture_OrderingSubMeshes| image:: /_static/Capture_OrderingSubMeshes.png
70 .. |Capture_MeshComputationSucceed| image:: /_static/Capture_MeshComputationSucceed.png
73 .. |Capture_CreateGroupsFromGeometry| image:: /_static/Capture_CreateGroupsFromGeometry.png
77 Lorsque la géométrie est prête, nous activons le module de maillage, *SMESH*.
79 Introduction au fonctionnement de SMESH
80 =======================================
82 Pour spécifier le maillage, on définit en général un algorithme par défaut avec son paramétrage :
83 dans SMESH, on parle des *hypothèses* de l'algorithme.
85 Cet algorithme et ces hypothèses s'appliquent partout sauf modification portant sur une partie de
86 la géométrie (*sub shape*).
88 On peut donc créer des sous maillages sur une face ou un groupe de faces,
89 une edge ou un groupe d'edges, pour définir des algorithmes et/ou des hypothèses spécifiques.
91 Lors du maillage, la géométrie de la pièce à mailler est explorée en partant de la dimension 1 (edges),
92 puis la dimension 2 (faces), et enfin la dimension 3 (volumes). Ici nous n'avons pas de volumes.
94 Les maillages de dimension 1 sont donc prioritaires sur ceux de dimension 2 et s'imposent à eux.
96 Certains algorithmes gèrent simultanément plusieurs dimensions (dans notre cas, edges et faces).
97 Quand ces algorithmes tolèrent que l'on impose le maillage de certaines edges,
98 la définition de sous maillages de la ou des faces concernées sera prise en compte, sinon non.
99 De même, suivant l'algorithme choisi pour une face, l'onglet 1D du dialogue de maillage est actif on non.
101 Il en résulte que, dans certains cas, pour certaines *sub shapes*, plusieurs algorithmes et/ou hypothèses
102 sont définis, et il faut alors établir des priorités. Ces situations sont détectées automatiquement
103 et l'utilisateur se voit proposer des choix.
105 Algorithmes et Hypothèses de base pour la géométrie
106 ====================================================
108 Ici, nous allons spécifier un maillage triangle par défaut sur l'ensemble du domaine, et particulariser
109 le maillage du lit mineur, pour obtenir des triangles allongés dans le sens de l'écoulement.
111 Nous sélectionnons la géométrie *HYDRO_garonne_1* dans l'arbre d'étude, et lançons la définition du maillage :
112 menu *Mesh/Create Mesh* ou icône |mesh_init|.
114 Dans le dialogue *Create Mesh*, nous choisissons l'algorithme de maillage *Netgen 1D-2D* qui va s'appliquer
115 par défaut sur l'ensemble de la géométrie.
119 Il faut préciser les hypothèses de maillage :
121 Nous cliquons sur le bouton actif dans la ligne *Hypothesis* pour choisir un type d'hypothèses,
122 et choisissons *Netgen 2D Parameters*.
124 Nous prenons une taille maximum d'arète de 200 (mètres), et minimale de 50. Pour le taux de progression
125 de la taille des triangles, *Fineness*, nous prenons *Very Fine*, pour préserver la qualité des triangles.
127 |Capture_HypothesisConstruction|
129 Après avoir validé le dialogue d'hypothèses, nous validons la définition du maillage avec le bouton *Apply and Close*.
131 Le maillage apparaît sous le nom *Mesh_1* dans l'arbre avec une icône indiquant son statut : *non généré, ou incomplet*.
133 Il est possible de renommer le maillage, soit directement, soit via le dialogue d'édition, à partir du menu contextuel.
135 Toujours à partir du dialogue d'édition |mesh_edit|, il est possible changer l'algorithme,
136 ou de modifier les hypothèses : |mesh_hypo_edit|.
141 Nous sélectionnons le maillage dans l'arbre d'étude et créons un sous maillage (menu contextuel *Create Sub Mesh*).
143 Dans le dialogue qui s'affiche, il faut renseigner la géométrie, en cliquant dans l'arbre d'étude sur la face *litMineur*
144 contenue dans *HYDRO_garonne_1*. Pour cette sélection, il faut que la flèche du dialogue sur la ligne *Geometry* soit active.
145 Elle l'est par défaut.
147 Il est utile de renommer tout de suite le sous-maillage (première ligne du dialogue).
149 Nous choisissons l'algorithme *Quadrangle (Medial Axis projection)*. Cet algorithme reconstruit un axe hydraulique fictif,
150 découpe la rivière en quadrangles, normalement à l'axe hydraulique.
152 |Capture_CreateSubMesh|
154 Il reste à définir la longueur des quadrangles, leur nombre dans la section de la rivière.
155 Dans l'onglet *1D* du dialogue du sous maillage *litMineur*, nous choisissons l'algorithme *Wire Discretisation*
156 l'hypothèse *Local Length*, et prenons une longueur de 100 (mètres). Il est utile de renommer l'hypothèse à ce stade.
158 **remarque** : Les hypothèses et algorithmes peuvent être partagés entre plusieurs maillages et sous maillages,
159 ce qui permet de modifier en un seul endroit tout ce qui doit rester cohérent. du coup, **il est utile d'avoir des noms
160 significatifs pour les identifier**.
162 |Capture_HypothesisLocalLength|
164 Nous validons la définition du sous maillage avec le bouton *Apply and Close*.
166 La longueur que nous avons définie s'applique à la fois longitudinalement et transversalement. Pour contrôler le
167 nombre de mailles transversales, il faut un nouveau sous maillage, appliqué au groupe d'edges *SectionsGaronne*.
169 Nous créons donc un sous maillage sur *SectionsGaronne*, en prenant cette fois comme algorithme *Wire Discretisation*
170 et comme hypothèse *Nb. Segments*, avec 8 segments distribués régulièrement.
172 |Capture_HypothesisNbSegments|
174 Nous validons la définition du sous maillage avec le bouton *Apply and Close*.
175 Il faut établir une priorité entre deux définitions :
177 |Capture_WarningOrder| |Capture_OrderingSubMeshes|
179 Nous sélectionnons *SectionsGaronne* pour le faire remonter en tête de liste.
181 Génération du maillage
182 ======================
184 Après avoir validé, le maillage est prêt pour être généré.
185 Pour générer le maillage, il faut le sélectionner, et utiliser le menu contextuel *Compute*.
186 Une boite d'information s'affiche à la fin du calcul et donne des statistiques élémentaires.
188 |Capture_MeshComputationSucceed|
190 L'icône du maillage a changé dans l'arbre d'étude, et indique l'état *généré correctement*.
192 Le maillage n'est pas encore fini pour nos besoins, mais nous pouvons déjà le voir.
193 Pour l'afficher, *show* puis *FitAll* |vtk_view_fitall| et vue de dessus |vtk_view_top| (*-OZ*)
194 dans la barre d'icônes du viewer 3D.
196 Pour découper les quadrangles, nous utilisons le menu *Modification/Cutting of Quadrangles*.
197 Dans le dialogue, nous cochons *apply to all*, *use diagonal 1-3* puis *preview* :
198 la modification proposée apparaît,
199 il est possible de zoomer avec la molette de la souris pour vérifier.
200 Nous validons par *Apply and Close*.
205 Il faut vérifier que le maillage est conforme aux besoins de TELEMAC.
207 Orientation des mailles
208 -----------------------
210 Pour les maillages surfaciques XY, **SALOME peut orienter par défaut les triangles dans le sens contraire à ce qu'attend TELEMAC**,
211 selon le sens de saisie des différentes lignes. SALOME peut donc orienter les triangles d'une face
212 avec la normale sortante vers le bas. On peut le vérifier avec la couleur des mailles
213 (bleu plus foncé sur l'envers que sur l'endroit) ou en utilisant la commande *Orientation of Faces* du menu contextuel
214 de la vue 3D du maillage. Cette commande dessine une flèche par triangle. Sur l'envers de la face, on ne voit qu'un point.
215 Pour voir les flèches, il faut changer l'angle de vue.
217 Pour réorienter les faces, nous utilisons le menu *Modification / Orientation* et cochons l'option *Apply to All*.
218 Après validation, les faces changent de couleur (bleu plus clair).
220 Triangles surcontraints
221 -----------------------
223 Il faut éviter deux types de conditions limites différentes sur deux arêtes d'un triangle, et, plus généralement,
224 éviter que deux arêtes aient des conditions limites imposées (aucun degré de liberté sur le triangle).
226 Parfois, les mailleurs créent de tels triangles dans les coins du maillage. C'est le cas de Netgen dans les angles aigus.
227 Quand on peut, il faut éviter de créer des angles aigus aux limites du domaine.
229 Les triangles surcontraints se détectent avec la commande de menu *Controls / Face Controls / Over-constrained faces*.
230 Pour corriger cela, il faut utiliser la commande de menu *Modification / Diagonal Inversion* et sélectionner
231 l'edge interne du triangle en cause.
233 Création des groupes, Enregistrement du maillage
234 ================================================
236 Les groupes de noeuds et d'éléments sont utiles pour 'étape d'interpolation de la bathymétrie,
237 et pour la définition des conditions limites.
239 Pour définir les groupes dans le maillage, nous utilisons la commande *Create Groups from Geometry*
240 du menu contextuel du maillage.
241 Nous sélectionnons tous les groupes et sub Shapes de la géometrie *HYDRO_garonne_2*
242 et constituons successivement des groupes d'**éléments** et de **noeuds**.
244 |Capture_CreateGroupsFromGeometry|
246 Ces groupes apparaissent dans l'arbre d'étude sous le maillage après validation du dialogue.
247 Il est possible de le voir avec *show only*. L'option *Auto Color* du menu contextuel du maillage
250 Pour enregistrer le maillage dans un fichier au format MED, après avoir sélectionné le maillage,
251 nous utilisons la commande du menu *File / Export / MED file*.
255 :ref:`ref_exempleInondation`