Salome HOME
IMP 22264: EDF 2648 GEOM: Propagate edges automatic orientation
[modules/smesh.git] / doc / salome / gui / SMESH / input / 1d_meshing_hypo.doc
1 /*!
2
3 \page a1d_meshing_hypo_page 1D Meshing Hypotheses
4
5 Basic 1D hypothesis specifies:
6 <ul>
7 <li>how \ref a1d_algos_anchor "Wire Discretization" should divide the edge;</li>
8 <li>how \ref a1d_algos_anchor "Composite Side Discretization" should divide the group of C1-continues edges.</li>
9 </ul>
10
11 By type of nodes distribution the 1D hypotheses can be categorized as follows:
12 <ul>
13 <li>Uniform distribution
14   <ul>
15     <li>\ref average_length_anchor "Local Length"</li>
16     <li>\ref max_length_anchor "Max Size"</li>
17     <li>\ref number_of_segments_anchor "Number of segments" with Equidistant distribution</li>
18     <li>\ref automatic_length_anchor "Automatic Length"</li>
19 </ul></li>
20 <li>Constantly increasing or decreasing length of segments
21   <ul>
22     <li>\ref arithmetic_1d_anchor "Arithmetic 1D"</li>
23     <li>\ref geometric_1d_anchor "Geometric Progression"</li>
24     <li>\ref start_and_end_length_anchor "Start and end length"</li>
25     <li>\ref number_of_segments_anchor "Number of segments" with Scale distribution</li>
26 </ul></li>
27 <li>Distribution depending on curvature
28   <ul>
29     <li>\ref adaptive_1d_anchor "Adaptive"</li>
30     <li>\ref deflection_1d_anchor "Deflection 1D"</li>
31 </ul></li>
32 <li>Arbitrary distribution
33   <ul>
34     <li>\ref fixed_points_1d_anchor "Fixed points 1D"</li>
35     <li>\ref number_of_segments_anchor "Number of segments" with
36     \ref analyticdensity_anchor "Analytic Density Distribution" or Table Density Distribution</li>
37 </ul></li>
38 </ul>
39
40 <br>
41 \anchor adaptive_1d_anchor
42 <h2>Adaptive hypothesis</h2>
43
44 <b>Adaptive</b> hypothesis allows to split edges into segments with a
45 length that depends on the curvature of edges and faces and is limited by <b>Min. Size</b>
46 and <b>Max Size</b>. The length of a segment also depends on the lengths
47 of adjacent segments (that can't differ more than twice) and on the 
48 distance to close geometrical entities (edges and faces) to avoid
49 creation of narrow 2D elements.
50
51 \image html adaptive1d.png
52
53 - <b>Min size</b> parameter limits the minimal segment size. 
54 - <b>Max size</b> parameter defines the length of segments on straight edges. 
55 - \b Deflection parameter gives maximal distance of a segment from a curved edge.
56
57 \image html adaptive1d_sample_mesh.png "Adaptive hypothesis and Netgen 2D algorithm - the size of mesh segments reflects the size of geometrical features"
58
59 <b>See Also</b> a \ref tui_1d_adaptive "sample TUI Script" that uses Adaptive hypothesis.
60
61 <br>
62 \anchor arithmetic_1d_anchor
63 <h2>Arithmetic 1D hypothesis</h2>
64
65 <b>Arithmetic 1D</b> hypothesis allows to split edges into segments with a
66 length that changes in arithmetic progression (Lk = Lk-1 + d)
67 beginning from a given starting length and up to a given end length.
68
69 The splitting direction is defined by the orientation of the
70 underlying geometrical edge.
71 <b>Reverse Edges</b> list box allows specifying the edges, for which
72 the splitting should be made in the direction opposite to their
73 orientation. This list box is usable only if a geometry object is
74 selected for meshing. In this case it is possible to select edges to
75 be reversed either directly picking them in the 3D viewer or by
76 selecting the edges or groups of edges in the Object Browser. Use \b
77 Add button to add the selected edges to the list.
78
79 \ref reversed_edges_helper_anchor "Helper" group assists you in
80 defining <b>Reversed Edges</b> parameter.
81
82
83 \image html a-arithmetic1d.png
84
85 \image html b-ithmetic1d.png "Arithmetic 1D hypothesis - the size of mesh elements gradually increases"
86
87 <b>See Also</b> a sample TUI Script of a 
88 \ref tui_1d_arithmetic "Defining Arithmetic 1D and Geometric Progression hypothesis" operation.  
89
90 <br>
91 \anchor geometric_1d_anchor
92 <h2>Geometric Progression hypothesis</h2>
93
94 <b>Geometric Progression</b> hypothesis allows splitting edges into
95 segments with a length that changes in geometric progression (Lk =
96 Lk-1 * d) starting from a given <b>Start Length</b> and with a given
97 <b>Common Ratio</b>.
98
99 The splitting direction is defined by the orientation of the
100 underlying geometrical edge.
101 <b>Reverse Edges</b> list box allows specifying the edges, for which
102 the splitting should be made in the direction opposite to their
103 orientation. This list box is usable only if a geometry object is
104 selected for meshing. In this case it is possible to select edges to
105 be reversed either directly picking them in the 3D viewer or by
106 selecting the edges or groups of edges in the Object Browser. Use \b
107 Add button to add the selected edges to the list.
108
109 \ref reversed_edges_helper_anchor "Helper" group assists you in
110 defining <b>Reversed Edges</b> parameter.
111
112 \image html a-geometric1d.png
113
114 <b>See Also</b> a sample TUI Script of a 
115 \ref tui_1d_arithmetic "Defining Arithmetic 1D and Geometric Progression hypothesis" operation.  
116
117 <br>
118 \anchor deflection_1d_anchor
119 <h2>Deflection 1D hypothesis</h2>
120
121 <b>Deflection 1D</b> hypothesis can be applied for meshing curvilinear edges
122 composing your geometrical object. It defines only one parameter: the
123 value of deflection (or chord error).
124
125 A geometrical edge is divided into segments of length depending on
126 edge curvature. The more curved the edge, the shorter the
127 segment. Nodes on the edge are placed so that the maximum distance
128 between the edge and a segment approximating a part of edge between
129 two nodes should not exceed the value of deflection.
130
131 \image html a-deflection1d.png
132
133 \image html b-flection1d.png "Deflection 1D hypothesis - useful for meshing curvilinear edges"
134
135 <b>See Also</b> a sample TUI Script of a 
136 \ref tui_deflection_1d "Defining Deflection 1D hypothesis" operation.
137
138 <br>
139 \anchor average_length_anchor
140 <h2>Local Length hypothesis</h2>
141
142 <b>Local Length</b> hypothesis can be applied for meshing of edges
143 composing your geometrical object. Definition of this hypothesis
144 consists of setting the \b length of segments, which will approximate these
145 edges, and the \b precision of rounding.
146
147 The \b precision parameter is used to round a number of segments,
148 calculated by dividing the edge length by the specified \b length of
149 segment, to the higher integer if the remainder exceeds the precision
150 and to the lower integer otherwise. Use value 0.5 to provide rounding
151 to the nearest integer, 1.0 for the lower integer, 0.0 for the higher
152 integer. Default value is 1e-07.
153
154 \image html image41.gif
155
156 \image html a-averagelength.png
157
158 \image html b-erage_length.png "Local Length hypothesis - all 1D mesh segments are equal"
159
160 <b>See Also</b> a sample TUI Script of a 
161 \ref tui_average_length "Defining Local Length" hypothesis
162 operation.
163
164 <br>\anchor max_length_anchor
165 <h2>Max Size</h2>
166 <b>Max Size</b> hypothesis allows splitting geometrical edges into
167 segments not longer than the given length. Definition of this hypothesis
168 consists of setting the maximal allowed \b length of segments.
169 <b>Use preestimated length</b> check box lets you use \b length
170 automatically calculated basing on size of your geometrical object,
171 namely as diagonal of bounding box divided by ten. The divider can be
172 changed via "Ratio Bounding Box Diagonal / Max Size"
173 preference parameter.
174 <b>Use preestimated length</b> check box is enabled only if the
175 geometrical object has been selected before hypothesis definition.
176
177 \image html a-maxsize1d.png
178
179 <br>
180 \anchor number_of_segments_anchor
181 <h2>Number of segments hypothesis</h2>
182
183 <b>Number of segments</b> hypothesis can be applied for approximating
184 edges by a definite number of mesh segments with length depending on
185 the selected type of distribution of nodes.
186
187 The direction of the splitting is defined by the orientation of the
188 underlying geometrical edge. <b>Reverse Edges</b> list box allows to
189 specify the edges for which the splitting should be made in the
190 direction opposing to their orientation. This list box is enabled only
191 if the geometry object is selected for the meshing. In this case it is 
192 possible to select edges to be reversed either by directly picking them
193 in the 3D viewer or by selecting the edges or groups of edges in the
194 Object Browser.
195
196 \ref reversed_edges_helper_anchor "Helper" group assists you in
197 defining <b>Reversed Edges</b> parameter.
198
199 You can set the type of node distribution for this hypothesis in the
200 <b>Hypothesis Construction</b> dialog bog :
201
202 \image html a-nbsegments1.png
203
204 <br><b>Equidistant Distribution</b> - all segments will have the same
205 length, you define only the <b>Number of Segments</b>.
206
207 <br><b>Scale Distribution</b> - length of segments gradually changes
208 depending on the <b>Scale Factor</b>, which is a ratio of the first
209 segment length to the last segment length.<br>
210 Length of segments changes in geometric progression with the common
211 ratio (A) depending on the <b>Scale Factor</b> (S) and <b>Number of
212 Segments</b> (N) as follows: <code> A = S**(1/(N-1))</code>. For an
213 edge of length L, length of the first segment is 
214 <code>L * (1 - A)/(1 - A**N)</code>.
215
216
217 \image html a-nbsegments2.png
218
219 <br><b>Distribution with Analytic Density</b> - you input the formula,
220 which will rule the change of length of segments and the module shows
221 in the plot the density function curve in red and the node
222 distribution as blue crosses.
223
224 \image html distributionwithanalyticdensity.png
225
226 <br>
227 \anchor analyticdensity_anchor
228 The node distribution is computed so that to have the density function
229 integral on the range between two nodes equal for all segments.
230 \image html analyticdensity.png
231
232 <br><b>Distribution with Table Density</b> - you input a number of
233 pairs <b>t - F(t)</b>, where \b t ranges from 0 to 1, and the module computes the
234 formula, which will rule the change of length of segments and shows
235 in the plot the density function curve in red and the node
236 distribution as blue crosses. The node distribution is computed in the
237 same way as for 
238 \ref analyticdensity_anchor "Distribution with Analytic Density". You
239 can select the <b>Conversion mode</b> from\b Exponent and <b>Cut
240 negative</b>.
241
242 \image html distributionwithtabledensity.png
243
244 <b>See Also</b> a sample TUI Script of a 
245 \ref tui_deflection_1d "Defining Number of Segments" hypothesis
246 operation.
247
248
249 <br>
250 \anchor start_and_end_length_anchor
251 <h2>Start and End Length hypothesis</h2>
252
253 <b>Start and End Length</b> hypothesis allows to divide a geometrical edge
254 into segments so that the first and the last segments have a specified
255 length. The length of medium segments changes with automatically chosen
256 geometric progression.
257
258 The direction of the splitting is defined by the orientation of the
259 underlying geometrical edge. <b>Reverse Edges</b> list box allows to
260 specify the edges, for which the splitting should be made in the
261 direction opposing to their orientation. This list box is enabled only
262 if the geometry object is selected for the meshing. In this case it is 
263 possible to select edges to be reversed either by directly picking them
264 in the 3D viewer or by selecting the edges or groups of edges in the
265 Object Browser.
266
267 \ref reversed_edges_helper_anchor "Helper" group assists you in
268 defining <b>Reversed Edges</b> parameter.
269
270
271 \image html a-startendlength.png
272
273 \image html b-art_end_length.png "The lengths of the first and the last segment are strictly defined"
274
275 <b>See Also</b> a sample TUI Script of a 
276 \ref tui_start_and_end_length "Defining Start and End Length"
277 hypothesis operation.
278
279 <br>
280 \anchor automatic_length_anchor
281 <h2>Automatic Length</h2>
282
283 The dialog box prompts you to define the quality of the future mesh by
284 only one parameter, which is \b Fineness, ranging from 0 (coarse mesh,
285 low number of segments) to 1 (extremely fine mesh, great number of
286 segments). 
287
288 \image html automaticlength.png
289
290 Compare one and the same object (sphere) meshed with
291 minimum and maximum value of this parameter.
292
293 \image html image147.gif "Example of a rough mesh at Automatic Length Fineness of 0."
294
295 \image html image148.gif "Example of a fine mesh at Automatic Length Fineness of 1."
296
297 <br>
298 \anchor fixed_points_1d_anchor
299 <h2>Fixed points 1D hypothesis</h2>
300
301 <b>Fixed points 1D</b> hypothesis allows splitting edges through a
302 set of points parametrized on the edge (from 1 to 0) and a number of
303 segments for each interval limited by the points.
304
305 \image html hypo_fixedpnt_dlg.png
306
307 It is possible to check in <b>Same Nb. Segments for all intervals</b> 
308 option and to define one value for all intervals.
309
310 The splitting direction is defined by the orientation of the
311 underlying geometrical edge. <b>Reverse Edges</b> list box allows to
312 specify the edges for which the splitting should be made in the
313 direction opposite to their orientation. This list box is enabled only
314 if the geometrical object is selected for meshing. In this case it is
315 possible to select the edges to be reversed either directly picking them in
316 the 3D viewer or selecting the edges or groups of edges in the
317 Object Browser.
318
319 \ref reversed_edges_helper_anchor "Helper" group assists you in
320 defining <b>Reversed Edges</b> parameter.
321
322
323 \image html mesh_fixedpnt.png "Example of a sub-mesh on the edge built using Fixed points 1D hypothesis"
324
325 <b>See Also</b> a sample TUI Script of a 
326 \ref tui_fixed_points "Defining Fixed Points" hypothesis operation.
327
328 \anchor reversed_edges_helper_anchor
329 <h2>Reversed Edges Helper</h2>
330
331 \image html rev_edges_helper_dlg.png
332
333 \b Helper group assists you in defining <b>Reversed Edges</b>
334 parameter of the hypotheses depending on edge direction.
335
336 <b>Show whole geometry</b> check-box lets you see the whole
337 geometrical model in the 3D Viewer. This can help you to understand
338 location within the model of a set of edges shown in the Viewer.
339
340 <b>Propagation chains</b> group helps you to define 
341 <b>Reversed Edges</b> so that opposite edges of quadrilateral faces
342 will be split in the logically same direction. When this group is
343 activated, the list is filled with propagation chains found within the
344 model. When you select a chain in the list, edges of the chain are
345 shown in the Viewer with arrows so that you can chose a common
346 direction for all chain edges. \b Reverse button inverses the common
347 direction of chain edges. If \b Add button is active, this means that some
348 edges of a chain have different direction and you can click \b Add
349 button to add such edges to <b>Reversed Edges</b> list.
350
351 \image html propagation_chain.png "The whole geometry and a propagation chain"
352
353 */