Salome HOME
replace 'BOTTOM_FRICTION' by 'BOTTOM FRICTION'
[modules/hydro.git] / doc / salome / tutorial / manipsPolys.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 Manipulations de Polylignes
21 #########################################
22
23 .. |deuxSections| image:: /_static/deuxSections.png
24    :align: middle
25
26 .. |deuxExtremites| image:: /_static/deuxExtremites.png
27    :align: middle
28
29 .. |bringTogether| image:: /_static/bringTogether.png
30    :align: middle
31
32 .. |deuxPointsConfondus| image:: /_static/deuxPointsConfondus.png
33    :align: middle
34
35 .. |contourFermeDeuxSections| image:: /_static/contourFermeDeuxSections.png
36    :align: middle
37
38 .. |domaineMaritime| image:: /_static/domaineMaritime.png
39    :align: middle
40
41 .. |zonePont| image:: /_static/zonePont.png
42    :align: middle
43
44 .. |raffinement| image:: /_static/raffinement.png
45    :align: middle
46
47 .. |completeSplitDialog| image:: /_static/completeSplitDialog.png
48    :align: middle
49
50 .. |zonesSplitCreees| image:: /_static/zonesSplitCreees.png
51    :align: middle
52
53 .. |zonePontSplit| image:: /_static/zonePontSplit.png
54    :align: middle
55
56 .. |zoneAmontSplit| image:: /_static/zoneAmontSplit.png
57    :align: middle
58
59 .. |zoneAvalSplit| image:: /_static/zoneAvalSplit.png
60    :align: middle
61
62 .. |mergeZonesPont| image:: /_static/mergeZonesPont.png
63    :align: middle
64
65 .. |pilesDePont| image:: /_static/pilesDePont.png
66    :align: middle
67
68 .. |objetsPont| image:: /_static/objetsPont.png
69    :align: middle
70
71
72 Nous n'avons abordé jusqu'à présent que des polylignes à une seule section.
73 L'utilisation de plusieurs sections dans les polylignes permet de combiner des splines et des
74 lignes brisées dans un même contour, par exemple. Les opérations sur les polylignes
75 (merge, split, copy, paste) permettent, entre autres, de créer des contours partageant un bord,
76 avant la création du cas de calcul.
77
78 Limites de domaine maritime
79 ===========================
80
81 Un domaine maritime est souvent limité par une ligne de côte, détaillée, et par une ligne brisée
82 la plus simple possible au large.
83
84 La ligne de côte détaillée est saisie sous forme d'une spline, dans une polyligne, non fermée.
85
86 La limite en mer est saisie dans une deuxième section de la même polyligne.
87
88 Pour créer la deuxième section, il faut éditer la polyligne dans laquelle on a saisi la ligne de côte,
89 cliquer sur *insert new section* et choisir une ligne de type *polyline* non fermée.
90 On valide la création de section avec le bouton *Add*.
91
92 La section 2 étant sélectionnée, le bouton *Addition mode* permet d'ajouter des points.
93 On crée la ligne brisée en visant approximativement les extrémités de la ligne de côte.
94
95   |deuxSections|
96
97 Il faut maintenant faire correspondre précisément les extrémités des deux sections pour obtenir un
98 contour fermé.
99
100 Pour cela, on sélectionne simultanément les deux sections (touche shift)
101 et on passe en mode modification (bouton *modification mode*).
102
103 On sélectionne simultanément les deux premiers points d'extrémité à rapprocher,
104 avec une selection par boite englobante à la souris
105 (en ayant préalablement fait un zoom si nécessaire).
106
107   |deuxExtremites|
108
109 Les coordonnées des deux points s'affichent, ainsi que la distance entre les deux points,
110 dans la colonne distance.
111
112 On notera que le bouton de droite est devenu actif (il faut sélectionner deux sections).
113
114   |bringTogether|
115
116 En cliquant sur le bouton, les deux points deviennent superposés, leurs coordonnées sont mises à jour,
117 et la distance affichée est devenue nulle.
118
119   |deuxPointsConfondus|
120
121 Il faut procéder de même avec les autres extrémités à rapprocher, puis valider avec *Apply and close*.
122
123 La polyligne représente maintenant un contour fermé composé de 2 sections de types différents.
124
125   |contourFermeDeuxSections|
126
127  * **remarque** : Lors de la superposition des points, l'un prend les coordonnées de l'autre.
128    Il n'est pas facile de maîtriser quel point reste fixe,
129    donc il vaut mieux éviter qu'ils soient trop éloignés pour ne pas déformer
130    la ligne de côte.
131
132 Il faut ensuite transformer le contour en objet naturel. Nous avons notre domaine maritime.
133
134   |domaineMaritime|
135
136 Créer des sections sur un lit mineur : barrages, ponts
137 ======================================================
138
139 Le lit mineur d'une rivière peut être découpé en plusieurs sections, pour permettre des
140 traitement spécifiques. Par exemple :
141
142  * La zone au niveau d'un pont, pour laquelle la description explicite des piles du pont
143    va vraisemblablement imposer un maillage spécifique, si le reste du lit mineur est
144    maillé en triangles allongés dans le sens de l'écoulement.
145
146  * Un barrage, pour lequel on souhaite par exemple écrire des conditions limites décrivant
147    son fonctionnement. Le barrage sera alors défini comme une zone "non inondable"
148    ou "insubmersible" en travers du lit mineur.
149
150  * Une zone pour laquelle on veut particulariser le maillage.
151
152 Créer une zone spécifique au niveau d'un pont sur le lit mineur
153 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
154
155 Nous reprenons l'exemple précédent sur la Garonne.
156 Nous commençons par dessiner un rectangle en travers du lit mineur *garonne*, débordant franchement
157 de part et d'autre des rives. Nous nommons la polyligne correspondante *zonePont*.
158
159   |zonePont|
160
161 **La polyligne du lit mineur doit être suffisamment raffinée pour que le découpage soit précis, et
162 pour éviter des problèmes plus tard à la création du cas de calcul.** Si besoin, il faut éditer la
163 polyligne du lit mineur pour ajouter des points de part et d'autre des traits de coupe.
164 **Il faut notamment éviter qu'il n'y ait pas de point entre deux traits de coupe d'une courbe spline**.
165
166   |raffinement|
167
168 Nous utilisons alors la commande *Split polylignes* du menu contextuel de la polyligne *garonne*,
169 et nous prenons l'onglet *Complete split*. Il faut sélectionner la polyligne *zonePont* et cliquer
170 sur le bouton *include*, pour obtenir les deux polylignes dans la liste du dialogue.
171
172   |completeSplitDialog|
173
174 Après validation par *Apply and close*, nous obtenons quatre nouvelles polylines pour décrire
175 le lit mineur, et quatre pour décrire la zone du pont.
176
177   |zonesSplitCreees|
178
179 Nous allons regrouper les polylignes par paquets pour reconstituer les nouvelles zones, avec la
180 commande *Merge polylines*.
181
182 La zone du pont est constituée des quatres polylignes suivantes :
183
184   |zonePontSplit|
185
186 La zone du lit mineur en amont est constituée de deux polylignes :
187
188   |zoneAmontSplit|
189
190 La zone du lit mineur en aval est constituée de deux polylignes :
191
192   |zoneAvalSplit|
193
194 Pour regrouper les polylignes, nous en sélectionnons une et utilisons la commande *Merge polylines*
195 du menu contextuel. Il faut sélectionner les quatre polylignes, cliquer sur le bouton *include*,
196 choisir un nom pour la nouvelle polyligne, *litMineurPont* et valider par *Apply and close*.
197
198   |mergeZonesPont|
199
200 Nous créons de même les polylignes *litMineurAmont* et *litMineurAval*.
201 Les trois nouvelles polylignes servent à définir trois zones immersibles,
202 *litMineur_aval*, *litMineur_amont* et *litMineur_pont*.
203
204 Si nous voulons représenter les piles du pont dans le maillage, il faut les représenter en tant que
205 polylignes et définir des zones non immersibles.
206
207   |pilesDePont|
208
209   |objetsPont|
210
211 Créer une zone spécifique au niveau d'un barrage sur le lit mineur
212 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
213
214 Le principe est exactement le même que pour le pont, mais sans les piles.
215
216 .. only:: html
217
218    :ref:`ref_casParticuliers`