Salome HOME
Merge branch 'BR_2018_V8_5' into BR_PY3
[modules/hydro.git] / doc / salome / tutorial / objetsArtificiels.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 Objets Artificiels
21 #########################################
22
23 .. |axeDigue| image:: /_static/axeDigue.png
24    :align: middle
25
26 .. |creationDigue_1| image:: /_static/creationDigue_1.png
27    :align: middle
28
29 .. |modifModeProfile| image:: /_static/modifModeProfile.png
30    :align: middle
31
32 .. |creationDigue_2| image:: /_static/creationDigue_2.png
33    :align: middle
34
35 .. |creationDigue_3| image:: /_static/creationDigue_3.png
36    :align: middle
37
38 .. |altitudeDigue| image:: /_static/altitudeDigue.png
39    :align: middle
40
41 .. |polyline3D| image:: /_static/polyline3D.png
42    :align: middle
43
44 .. |artificialDigue| image:: /_static/artificialDigue.png
45    :align: middle
46
47 .. |zoomDigue| image:: /_static/zoomDigue.png
48    :align: middle
49
50 Les objets artificiels regroupent les digues et les canaux. Ces deux types d'objets
51 sont construits sur le même principe :
52
53  * une section verticale constante,
54
55  * un axe 3D, c'est à dire une polyligne 3D selon laquelle la section est extrudée.
56
57 L'axe 3D est construit à partir d'une polyligne dans le plan horizontal, à laquelle
58 on associe une ligne d'altitude définie dans un plan vertical, qui donne la cote Z
59 en fonction de l'abscisse curviligne de la polyligne horizontale.
60
61 La ligne d'altitude est soit construite explicitement, soit obtenue en projetant
62 la polyligne horizontale sur un champ de bathymétrie.
63
64 Lors du calcul de l'altitude aux noeuds du maillage (interpolation en Z), les noeuds situés sur la digue
65 sont traités spécifiquement : l'altitude du noeud est prise sur la forme géométrique 3D de
66 la digue telle qu'elle a été définie ci-dessus.
67
68 Création d'une digue
69 ====================
70
71 Pour définir l'axe horizontal de la digue, nous créons une polyligne non fermée, de type spline,
72 avec l'éditeur de polyligne (menu contextuel de la rubrique *POLYLIGNES* dans l'arbre de
73 l'étude SALOME).
74
75 Nous nommons cette polyligne *axeDigue*.
76
77   |axeDigue|
78
79 La section de la digue se crée avec le menu contextuel *Create profile* de la rubrique *PROFILES* 
80 dans l'arbre de l'étude SALOME.
81
82 Nous nommons cette section *sectionDigue*.
83
84 Il faut dessiner à main levée la forme approximative de la section, nous l'éditerons ensuite 
85 pour mettre des cotes précises.
86
87   |creationDigue_1|
88
89 Pour corriger les coordonnées des noeuds, il faut se placer en mode Modification :
90
91   |modifModeProfile|
92
93 Les noeuds peuvent être sélectionnés en bloc en les englobant dans un rectangle, dans la vue graphique.
94
95 Ils s'affichent dans un tableau au dessus de la vue graphique.
96
97 En cliquant sur le titre de la colonne *index*, on réordonne les noeuds.
98
99   |creationDigue_2|
100
101 Pour le choix des valeurs Z, il faut savoir que l'altitude finale d'un point de la digue s'obtient
102 à partir de la section en ce point, en additionnant la cote du point sur la section à la
103 cote de la section le long du profil d'altitude.
104 Plus précisément, le calcul est le suivant :
105
106  * le point **A** (x,y,0) dont on veut l'altitude est projeté sur la courbe *axeDigue*
107    en un point *P* (x',y',0) tel que la droite *AP* est normale à la tangente en **P**
108    à l'axe de la digue. Le point **P** est à une distance horizontale 
109    *d* = distance(A,P) de la courbe *axeDigue*.
110
111  * A partir de la coordonnée curviligne de **P** sur *axeDigue*, on récupère une valeur de Z0
112    sur la ligne d'altitude. Cette valeur Z0 correspond à la cote 0 de la section.
113
114  * Pour obtenir l'altitude finale en **P**, on calcule la cote Z1 sur la section au point d'abscisse *d*. 
115    L'altitude finale est Z = Z0 +Z1.
116
117  * **remarque** : ce mode de calcul suppose une section symétrique par rapport à x=0. 
118
119 Ici, la ligne d'altitude que nous allons définir correspond au sommet de la section.
120 Nous créons donc une section symétrique de 20 mètres de largeur, à flancs assez raides.
121
122   |creationDigue_3|
123
124 Il reste à créer la ligne d'altitude de la digue. Nous allons la définir explicitement
125 avec l'altitude des deux extrémités.
126
127 Si l'altitude de la digue est variable, il faut avoir une idée approximative de sa longueur,
128 pour construire un profil d'altitude précis (il manque une fonction d'affichage de la longueur des polylignes).
129
130 Si l'on définit plus de deux points, l'altitude est interpolée linéairement entre deux points,
131 et, si la courbe est plus longue que la ligne d'altitude, les valeurs de Z au delà du dernier
132 point sont prises à la cote de ce dernier point.
133
134   |altitudeDigue|
135
136 Il faut ensuite créer l'axe 3D de la dique à l'aide du menu contextuel *Create polyline 3D*
137 de la rubrique *POLYLINES 3D*.
138
139   |polyline3D|
140
141 Enfin, on utilise le menu contextuel *Create digue* (in french in the text!)
142 de la rubrique *ARTIFICIAL OBJECTS*.
143
144   |artificialDigue|
145
146 Le paramètre equidistance sert lors de l'extrusion précise de la section le long de l'axe.
147
148  * Si la valeur est trop grande par rapport au rayon de courbure de l'axe, la section est décentrée 
149    lors de son extrusion.
150
151  * Si la valeur est trop faible, le temps de calcul devient long.
152
153 On peut prendre une valeur de l'ordre de deux ou trois fois la largeur de la digue, en première
154 approximation.
155
156 Pour contrôler le résultat, il faut superposer la vue de la digue et son axe.
157
158   |zoomDigue|
159
160 Lors de la constitution du cas de calcul avec la digue, il faut isoler la digue dans une région spécifique,
161 parce que l'on va la mailler de préférence en quadrangles avec l'algorithme *Quadrangle (Medial Axis projection)*.
162
163 Pour le calcul d'altitude, comme la digue se superpose à un terrain naturel, l'option ZMAX est la plus logique dans le cas général.
164
165
166 Création d'un canal
167 ===================
168
169 Le canal se construit exactement comme la digue, avec simplement un menu spécifique *Create channel*
170 dans la rubrique *ARTIFICIAL OBJECTS*. 
171
172 La section a une forme de cuvette, et le calcul d'altitude se fait
173 selon la même logique que pour la digue.
174
175 Lors de la constitution du cas de calcul avec le canal, il faut isoler le canal dans une région spécifique,
176 car il sera maillé de préférence en quadrangles avec l'algorithme *Quadrangle (Medial Axis projection)*.
177
178 Pour le calcul d'altitude, le canal s'inscrivant dans un terrain naturel,
179 l'option ZMIN est la plus logique dans le cas général.
180
181 .. only:: html
182
183    :ref:`ref_casParticuliers`