]> SALOME platform Git repositories - plugins/blsurfplugin.git/blob - doc/salome/gui/BLSURFPLUGIN/input/blsurf_hypo.doc
Salome HOME
Improving documentation: structuring, fixing misspellings
[plugins/blsurfplugin.git] / doc / salome / gui / BLSURFPLUGIN / input / blsurf_hypo.doc
1 /*!
2
3 \page blsurf_hypo_page BLSURF Parameters hypothesis
4
5 \anchor blsurf_top
6 BLSURF Parameters hypothesis works only with \b DISTENE \b BLSurf 2d
7 algorithm. This algorithm is a commercial software. To obtain a
8 licence, visit http://www.distene.com/corp/eval-distene.html 
9
10 \tableofcontents                                             
11
12 \section blsurf_general_parameters General parameters
13
14 \image html blsurf_parameters.png
15
16 - <b>Name</b> - allows defining the name of the hypothesis (BLSURF
17 Parameters_n by default).
18
19 - <b>Physical Mesh</b> - can be set to <em>None</em>, <em>Custom</em>
20   or <em>Size Map</em>
21
22   - if set to <em>Custom</em>, allows user input in the in <b>User size</b>,
23   <b>Max Physical Size</b> and <b>Min Physical  Size</b> fields.
24
25   - if set to <em>Size Map</em>, behaves like <em>Custom</em> mode and takes into
26   account the custom elements sizes given in the Size Map tab.
27
28 - <b>User size</b> - defines the size of the generated mesh elements.
29
30 - <b>Max Physical Size</b> - defines the upper limit of mesh element size.
31
32 - <b>Min Physical Size</b> - defines the lower limit of mesh element size.
33
34 - <b>Geometrical mesh</b> - if set to <em>Custom</em>, allows user input in
35 <b>Angle Mesh S</b>, <b>Angle Mesh C</b> and <b>Gradation</b>
36 fields. These fields control computation of the element size, so
37 called <i>geometrical size</i>, conform to the surface geometry
38 considering local curvatures. If both the <b>User size</b> and the
39 <i>geometrical size</i> are defined, the  eventual element size
40 corresponds to the least of the two.
41
42 - <b>Angle Mesh S</b> - maximum angle between the mesh face and the
43 tangent to the geometrical surface at each mesh node, in degrees.
44
45 - <b>Angle Mesh C</b> - maximum angle between the mesh edge and the
46 tangent to the geometrical curve at each mesh node, in degrees.
47
48 - <b>Max Geometrical Size</b> - defines the upper limit of the
49   <i>geometrical size</i>.
50
51 - <b>Min Geometrical Size</b> - defines the lower limit of the
52   <i>geometrical size</i>.
53
54 - <b>Gradation</b> - maximum ratio between the lengths of two adjacent
55   edges.
56
57 - <b>Allow Quadrangles</b> - if checked, allows the creation of
58   quadrilateral elements.
59
60 - <b>Patch independent</b> - if checked, geometrical edges are not
61 respected and all geometrical faces are meshed as one hyper-face.
62
63 \ref blsurf_top "Back to top"
64
65 \section blsurf_advanced_parameters Advanced parameters
66
67 The notion of <i>diag</i> used in the descriptions means the diagonal
68 of the bounding box of the geometrical object to mesh.
69
70 \image html blsurf_parameters_advanced.png
71
72 - <b>Verbosity level</b> - defines the percentage of "verbosity" of
73 BLSURF [0-100].
74
75 - <b>Topology</b> - allows creation of a conform mesh on a shell of
76 not sewed faces. The following choices are allowed:
77
78   - <em>"From CAD"</em> means that mesh conformity is assured by conformity
79   of a shape.
80
81   - <em>"Pre-process"</em> and <em>"Pre-process++"</em> allow the BLSURF software to
82   pre-process the geometrical model to eventually produce a conform
83   mesh.
84
85   - <em>"PreCAD"</em> is an auxiliary CAD pre-processing module which has 
86   two main goals:
87
88     - Complete missing or inadequate CAD descriptions.
89
90     - Perform topology reconstruction and specific geometry 
91     enhancement for mesh generation.
92
93     \n This module requires a specific licence. The following PreCAD
94     options are the most significant and important ones:
95
96     - <b>Merge Edges</b> - allows PreCAD to optimize the geometry by merging some
97     edges. This option is 0 by default.
98
99     - <b>Remove nano edges</b> - allows PreCAD to optimize the geometry by removing 
100     the nano edges whenever possible. This option is 0 by default.
101
102     - <b>Nano edge length</b> - gives the length below which an edge is considered as nano 
103     for the topology processing. See also the \b remove_nano_edges option. If unset, PreCAD
104     default value is \f$\mathrm{diag} \times 10^{-5}\f$.
105
106     - <b>Discard input topology</b> - computes the CAD topology from scratch, 
107     without considering the topological information contained in the original CAD
108     (useful for iges files). This option is 0 by default.
109
110 - <b>ExportGMF</b> - saves the computed mesh into a GMF file (.mesh or .meshb).
111
112 - <b>Add option</b> - provides the choice of multiple PreCAD and BLSURF 
113 advanced options, which appear, if selected, in a table where it is 
114 possible to input the value of the option and edit it later.
115
116 - <b>Clear option</b> - removes the option selected in the table.
117
118 The following BLSURF options are commonly usable:
119
120 - \b topo_eps1 (real) - is the tolerance level inside a CAD
121 patch. By default is equal to \f$\mathrm{diag} \times 10^{-4}\f$. This tolerance is used to
122 identify nodes to merge within one geometrical face when \b Topology
123 option is to pre-process.
124
125 - \b topo_eps2 (real) - is the tolerance level between two CAD
126 patches. By default is equal to \f$\mathrm{diag} \times 10^{-4}\f$. This tolerance is used to
127 identify nodes to merge over different geometrical faces when
128 \b Topology option is to pre-process.
129
130 - \b LSS (real) - is an abbreviation for "length of sub-segment". It is
131 a maximal allowed length of a mesh edge. Default is \f$0.5\f$.
132
133 - \b frontal (integer)
134
135   - 1 - the mesh generator inserts points with an advancing front method.
136
137   -  0 - it inserts them with an algebraic method (on internal edges). This method is
138   slightly faster but generates less regular meshes.
139
140   \n Default is 0.
141
142 - \anchor blsurf_hinterpol_flag \b hinterpol_flag (integer) - determines the computation of an
143 interpolated value <i>v</i> between two points <i>P1</i> and <i>P2</i> on a
144 curve. Let <i>h1</i> be the value at point <i>P1,</i> <i>h2</i> be the value at point
145 <i>P2,</i> and <i>t</i> be a parameter varying from 0 to 1 when moving from <i>P1
146 to</i> <i>P2</i>.
147
148   - 0 - the interpolation is linear: \f$v = h1 + t (h2 - h1 )\f$
149
150   - 1 - the interpolation is geometric: \f$v = h1 \times \left( \frac{h1}{h2} \right)^{t}\f$
151
152   - 2 - the interpolation is sinusoidal: \f$v = \frac{h1+h2}{2} + \frac{h1-h2}{2 \cdot \cos(\pi \cdot t)}\f$
153
154   \n Default is 0.
155
156 - \anchor blsurf_hmean_flag \b hmean_flag (integer) - determines the computation of the average of several
157 values:
158
159   - -1 - the minimum is computed.
160
161   - 0 or 2 - the arithmetic average is computed.
162
163   - 1 - the geometric average is computed.
164
165   \n Default is 0.
166
167 - \b CheckAdjacentEdges, \b CheckCloseEdges and \b CheckWellDefined
168 (integers) - give the number of calls of equally named subroutines the
169 purpose of which is to improve the mesh of domains having narrow
170 parts. At each iteration,\b CheckCloseEdges decreases the sizes of the
171 edges when two boundary curves are neighboring,\b CheckAdjacentEdges
172 balances the sizes of adjacent edges, and \b CheckWellDefined checks if
173 the parametric domain is well defined. Default values are 0.
174
175 - \b CoefRectangle (real)- defines the relative thickness of the rectangles
176 used by subroutine \b CheckCloseEdges (see above). Default is 0.25.
177
178 - \b eps_collapse (real) - if more than 0.0, BLSURF removes
179 curves whose lengths are less than \b eps_collapse. To obtain an
180 approximate value of the length of a curve, it is arbitrarily
181 split into 20 edges. Default is 0.0.
182
183 - \b eps_ends (real) - is used to detect the curves whose lengths are very
184 small, that sometimes constitutes an error. A message is printed
185 if \f$\left|P2-P1\right| < eps\_ends\f$, where <i>P1</i> and <i>P2</i> are the
186 extremities of a curve. Default is \f$\frac{\mathrm{diag}}{500.0}\f$.
187
188 - \b prefix (char) - is a prefix of the files generated by
189 BLSURF. Default is "x".
190
191 - \b refs (integer) - reference of a surface, used when exporting
192 files. Default is 1.
193
194 The following PreCAD options are commonly usable. 
195
196 - \b closed_geometry (int) - describes whether the working geometry 
197 should be closed or not. When activated, this option helps PreCAD to process 
198 the dirtiest geometries. By default this option is 0.
199
200 - \b debug (int) - If debug = 1 PreCAD will be very verbose and will output 
201 some intermediate files in the working directory. By default this
202 option is 0.
203
204 - \b eps_nano_relative (real) -  the same as \b eps_nano, but relatively to 
205 the diagonal of the box bounding the geometry. By default this option is \f$10^{-5}\f$.
206
207 - \b eps_sewing (real) - tolerance of the assembly. It rarely requires to be tuned. 
208 By default this option is \f$\mathrm{diag} \times 5 \cdot 10^{-4}\f$.
209
210 - \b eps_sewing_relative (real) -  the same as \b eps_nano but relatively to 
211 the diagonal of the box bounding the geometry. By default this option
212 is \f$5 \cdot 10^{-4}\f$.
213
214 - \b manifold_geometry (int) - describes whether the working geometry should be manifold or not.
215 When activated, this option helps PreCAD to process the dirtiest
216 geometries. By default this option is 0.
217
218 - \b create_tag_collision (int) - creates new tags from original ones in case 
219 of collision (entity merge or association for example). By default
220 this option is 0.
221
222 - \b periodic_tolerance (real) - defines the maximum distance error accepted between 
223 two sets of periodic entities. By default this option is \f$\mathrm{diag} \times 10^{-5}\f$.
224
225 - \b periodic_tolerance_relative (real) -  the same as \b periodic_tolerance but in a relative unit.
226 By default this option is \f$10^{-5}\f$.
227
228 - \b periodic_split_tolerance (real) - This periodicity processing related option defines 
229 the minimum distance between a CAD point and an imprinted point. It allows to indirectly 
230 control the number of created points and small edges. By default this
231 option is \f$\mathrm{diag} \times 10^{-4}\f$.
232
233 - \b periodic_split_tolerance_relative (real -  the same as \b
234 periodic_split_tolerance but in a relative unit. By default this
235 option is \f$10^{-4}\f$.
236
237 The following advanced options are not documented and you can use them
238 at your own risk.
239
240 - Integer variables:
241   - addsurf_ivertex
242   - anisotropic
243   - background
244   - coiter
245   - communication
246   - decim
247   - export_flag
248   - file_h
249   - gridnu
250   - gridnv
251   - intermedfile
252   - memory
253   - normals
254   - optim
255   - pardom_flag
256   - pinch
257   - rigid
258   - surforient
259   - tconf
260   - topo_collapse
261 - Real variables:
262   - addsurf_angle
263   - addsurf_R
264   - addsurf_H
265   - addsurf_FG
266   - addsurf_r
267   - addsurf_PA
268   - angle_compcurv
269   - angle_ridge
270   - anisotropic_ratio
271   - eps_pardom
272 - String variables:
273   - export_format
274   - export_option
275   - import_option
276
277 \ref blsurf_top "Back to top"
278
279 \section blsurf_local_size Local size
280
281 Local sizes can be defined on faces, edges or vertices:
282
283 - The faces, edges and vertices can belong to the meshed geometrical
284 object or to its sub-shapes (created using <b>Explode</b> command).
285
286 - Groups of faces, edges and vertices are also handled.
287
288 - It is possible to attribute the same size to several geometries using multi-selection.
289
290 - The sizes are constant values or python functions.
291
292 - In case of a python function, the following rules must be respected:
293
294   - The name of the function is f.
295
296   - If geometry is a face or a group of faces, the function is f(u,v).
297
298   - If geometry is an edge or a group of edges, the function is f(t).
299
300   - If geometry is a vertex or a group of vertices, the function is f().
301
302   - The function must return a double.
303
304 3 different types of size maps can be defined:
305
306 -# \ref blsurf_sizemap_computation "Computation of the physical size"
307 -# \ref blsurf_attractor "Advanced maps"
308 -# \ref blsurf_attractor_computation "Computation of attractors"
309
310 \ref blsurf_top "Back to top"
311
312 \subsection blsurf_sizemap_computation Computation of the physical size
313
314 \image html blsurf_parameters_sizemap1.png 
315
316 The physical size is obtained by querying sizemap functions associated
317 to the input CAD object for surfaces, curves and points.
318 Each function can either return a value h (which is then trimmed
319 between the two bounds hphymin and hphymax), or "no answer" (by not
320 assigning a value to h), thus providing great flexibility in the
321 specification of the sizes. The computation depends on whether point P
322 is internal to a surface, internal to a curve, or at the end of
323 several curves:
324
325 - If point P is internal to a surface, the CAD surface size function
326 is queried. If no answer is returned, one interpolates with the values
327 at the vertices of the discretized interface curves.
328
329 - If point P is internal to a curve, the CAD curve size function is
330 queried first. If no answer is returned, the surface size function is
331 queried for every adjacent surface and the mean value of the returned
332 values is computed. If no answer is returned, sizes h1 and h2 at both
333 ends of the curve are considered (see next item) and the interpolated
334 value is computed.
335
336 - If point P is at the extremity of several curves, the CAD point size
337 function is queried first. If no answer is returned, the curve size
338 function is queried for every adjacent curve and the mean value of the
339 returned values is computed. If no answer is returned, the surface
340 size function is queried for every adjacent surface and the mean value
341 of the returned values is computed. If there is still no answer
342 returned, the default value hphydef is kept.
343
344 In order to compute the mean of several values, the arithmetic mean is
345 used by default, but this can be modified by the parameter
346 \ref blsurf_hmean_flag "hmean flag". In the same way, in order to
347 interpolate two values, a linear interpolation is used by default, but
348 this can be modified by \ref blsurf_hinterpol_flag "hinterpol flag". 
349
350 \ref blsurf_local_size "Back to \"Local size\""\n
351 \ref blsurf_top "Back to top"
352
353 \subsection blsurf_attractor Advanced maps
354
355 \image html blsurf_parameters_sizemap2.png 
356
357 More specific size maps can be defined on faces. 
358
359 - <i> Attractors </i> allow to define the size of the mesh elements
360 on a face so that the mesh is the finest on the attractor shape and
361 becomes coarser when getting far from this shape.
362
363   - The selected attractor can be a Vertex, an Edge, a Wire or a
364   Compound mixing several entities of those types.
365
366   - The attractor doesn't have to be a sub-shape of the shape to mesh.
367
368   - The size will grow exponentially (see the formula below) but is
369   bounded by gradation, \n so if you want the formula to be strictly
370   respected, you should set the <i>gradation</i> 
371   to its maximum (2.5) in the <i>arguments</i> tab. 
372
373 - Furthermore you can choose to <i> keep the size constant </i>
374 until a certain distance from a shape. This option can be combined or
375 not with an <i>attractor</i> size map described above. 
376
377   - If the two options are combined the size will remain constant
378   until the distance specified in "constant over" and grow then as
379   prescribed by the attractor function.
380
381   - Else the growing is only controled by the standard arguments of
382   BLSURF (gradation ...).
383
384 \image html blsurf_const_size_near_shape2.png "Example of size map with constant size option, the size is kept constant on the left side of the surface until a certain distance"
385
386 \note The validation of the hypothesis might take a few seconds if
387 attractors are defined or the "constant size" option is used because a
388 map of distances has to be built on the whole surface for each face
389 where such a hypothesis has been defined.
390
391 \sa Sample TUI Script of the \ref tui_blsurf "creation of a BLSurf hypothesis", including size map.
392
393 \ref blsurf_local_size "Back to \"Local size\""\n
394 \ref blsurf_top "Back to top"
395
396 \subsection blsurf_attractor_computation Computation of attractors
397
398 The size grows exponentially following the equation : 
399 \f$h(d) = \mathrm{User Size} + (\mathrm{h\_start} - \mathrm{User Size}) \times e ^ { - \left( \frac{d}{R} \right) ^ {2} }\f$
400
401 Where :
402
403 - h_start is the desired size on the given attractor shape
404
405 - d is the distance of the current point from the attractor
406 shape. The distance is the geodesic distance (i.e. calculated by following the surface to be meshed)
407
408 - R is called the distance of influence and allows controlling the growth rate of the mesh
409
410 \image html blsurf_attractors2.png "Example of mesh created using attractors, the attractors here are the side edges and the size grows from the side of the surface towards the apex"
411
412 \ref blsurf_local_size "Back to \"Local size\""\n
413 \ref blsurf_top "Back to top"
414
415 \section blsurf_enforced_elements Enforced vertices
416
417 \image html blsurf_parameters_enforced_vertices.png
418
419 It is possible to define some enforced vertices to BLSurf algorithm.
420 An enforced vertex is defined on a Face or a Compound by
421
422 - selecting an existing Vertex or Compound,
423
424 - or creating a new vertex given its coordinates.
425
426 The enforced vertex is the projection of a point defined by its
427 (x,y,z) coordinates on the selected face.
428
429 - It is possible to define several enforced vertices on a face or a group of faces.
430
431 - If the projected point is on the boundary or outside of the face, it will be ignored.
432
433 - If a group name is specified, the enforced nodes will be added in the group. If the group does not exist it will be created.
434
435 \sa Sample TUI Script of the \ref tui_blsurf "creation of a BLSurf hypothesis", including enforced vertices.
436
437 \ref blsurf_top "Back to top"
438
439 \section blsurf_limitations Limitations
440
441 Currently BLSURF plugin has the following limitations.
442
443 - BLSURF algorithm cannot be used as a local algorithm (on
444 sub-meshes) or as a provider of a low-level
445 mesh for some 3D algorithms, because the BLSURF mesher (and
446 consequently plugin) does not provide the information on node
447 parameters on edges (U) and faces (U,V). For example the
448 following combinations of algorithms are impossible:
449
450   - global MEFISTO or Quadrangle(mapping) + local BLSURF;
451
452   - BLSURF + Projection 2D from faces meshed by BLSURF;
453
454   - local BLSURF + Extrusion 3D;
455   
456 \ref blsurf_top "Back to top"
457
458 */