Salome HOME
Merge branch 'BR_2018_V8_5' into BR_PY3
[modules/hydro.git] / doc / salome / tutorial / english / english_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 Artificial objects 
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 Artificial objects cover embankments and channels. Both object types are constructed on the same principle: 
51
52  * A constant vertical section, 
53
54  * A 3D axis, this being a 3D polyline from which the section will be extruded. 
55
56 The 3D axis is constructed from a horizontal polyline, to which will be associated a vertically-defined line
57 of altitude, which gives the Z-value as a function of the curvilinear abscissa of the polyline’s horizontal path.
58
59 The altitude line is either explicitly constructed or obtained by projecting the horizontal polyline
60 onto a bathymetry field. 
61
62 When the node altitudes are computed (Z interpolation), a specific treatment is applied to the nodes on the
63 embankment: the altitude of the node is evaluated on the 3D geometric shape of the embankment, as defined above. 
64
65 Creating an embankment
66 ======================
67
68 To define the embankment's horizontal axis, an open, spline-type polyline is created with the polyline editor 
69 (context menu of the *POLYLINES* folder in the SALOME study tree). 
70
71 Assign the name axeDigue (embankmentAxis) to this polyline. 
72
73   |axeDigue|
74
75 The embankment section is created using the *Create profile* context menu of the *PROFILES* folder 
76 in the SALOME study tree. 
77
78 This section is named *sectionDigue* (embankmentSection). 
79
80 The approximate shape of the section has to be drawn freehand; 
81 it will later be edited to put in the exact elevation parameters.
82
83   |creationDigue_1|
84
85 To correct the node coordinates, you need to switch to Modification mode: 
86
87   |modifModeProfile|
88
89 The nodes can be block selected by grabbing them in a selection rectangle, in the graphic view. 
90
91 They are displayed in a table above the graphic view. 
92
93 The nodes are reordered by clicking on the *Index* column title.
94
95   |creationDigue_2|
96
97 For the choice of Z-values, it is essential to know that the final altitude of a point on the embankment is obtained
98 from the cross-section at this point, by adding the elevation of the point on the section to the elevation of the
99 section along the altitude profile. To be more specific, the calculation required is as follows: 
100
101  * Point **A** (x,y,0), whose altitude is required, is projected onto the *axeDigue* curve at a point **P** (x’,y’,0)
102    such that the straight line *AP* is perpendicular to the tangent to the curve of the embankment axis at **P**.
103    The point **P** is at a horizontal distance *d* = distance(A,P) from the *axeDigue* curve. 
104
105  * From the curvilinear coordinate **P** on *axeDigue*, we get a value of Z0 value on the line of altitude.
106    This Z0 value corresponds to the zero-elevation level of the embankment section. 
107
108  * To obtain the final altitude in **P**, the elevation Z1 on the section is calculated at the abscissa point *d*.
109    The final altitude is Z = Z0 +Z1. 
110
111  * **Note:** this calculation method assumes a symmetrical cross-section with respect to x=0. 
112
113 In this case, the line of altitude that will be defined corresponds to the vertex (i.e. top) of the cross-section. Hence, we create a symmetrical cross-section that is 20 metres wide, with fairly steep slopes. 
114
115   |creationDigue_3|
116
117 The embankment line of altitude still has to be created. 
118 It will be defined explicitly with the altitude of the two ends. 
119
120 If the elevation of the embankment is variable, an approximate idea of its length is needed 
121 in order to construct an accurate altitude profile (a display function of the polyline lengths is missing). 
122
123 If more than two points are defined, the altitude is linearly interpolated between two points and, 
124 if the curve is longer than the altitude line, the Z values beyond the end point are taken 
125 at the elevation of this last point.
126
127   |altitudeDigue|
128
129 The 3D axis has to be created next using the *Create  polyline 3D* context menu of the POLYLINES 3D folder. 
130
131   |polyline3D|
132
133 The last step uses the *Create digue* context menu of the *ARTIFICIAL OBJECTS* folders. 
134
135   |artificialDigue|
136
137 The equidistance parameter serves to optimise the precision of the section extrusion along the axis. 
138
139  * If the value is too high in relation to the radius of axis curvature, the cross-section 
140    is offset from its centre line during extrusion. 
141
142  * If the value is too low, the computational time becomes long. 
143
144 Taking a value of about two or three times the width of the embankment is a reasonable first approximation. 
145
146 The views of the embankment and its axis should then be overlaid to verify the result. 
147
148   |zoomDigue|
149
150 When the calculation case with the embankment is set up, the latter should be isolated in a specific region 
151 because it is preferable to mesh it in quadrangles using the *Quadrangle (Medial Axis projection)* algorithm. 
152
153 As the embankment is overlaid on natural terrain, the *ZMAX* option is generally the most logical choice for the altitude calculation. 
154
155 Creating a channel
156 ===================
157
158 The canal channel is created in exactly same the same way as the embankment but using a specific menu, 
159 *Create channel*, in the *ARTIFICIAL OBJECTS* folder.
160  
161 The section is bowl-shaped and the altitude is calculated using the same approach as for the embankment. 
162
163 When the calculation case with the channel is being set up, the channel should be isolated in a specific region 
164 as it is preferable to mesh it in quadrangles using the Quadrangle (Medial Axis projection) algorithm.
165  
166 For the altitude calculation, with the channel being in natural terrain, 
167 the *ZMIN* option is the most logical choice in most cases.
168
169 .. only:: html
170
171    :ref:`ref_casParticuliers`