]> SALOME platform Git repositories - plugins/blsurfplugin.git/blob - doc/salome/gui/BLSURFPLUGIN/input/blsurf_hypo.doc
Salome HOME
23368: [CEA 1865] Possibility to define faces to mesh as a single one: transpatch...
[plugins/blsurfplugin.git] / doc / salome / gui / BLSURFPLUGIN / input / blsurf_hypo.doc
1 /*!
2
3 \page blsurf_hypo_page MG-CADSurf Parameters hypothesis
4
5 \anchor blsurf_top
6
7 \tableofcontents
8
9 \section blsurf_general_parameters General parameters
10
11 \image html blsurf_parameters.png
12
13 - <b>Name</b> - allows defining the name of the hypothesis (MG-CADSurf
14 Parameters_n by default).
15
16 - <b>Physical Size</b> group defines a \a physical sizemap.
17
18 - \b Type of the physical sizemap can be set to <em>None</em>, <em>Global size</em>
19   or <em>Local size</em>
20
21   - if set to <em>Global size</em>, only the <b>User size</b>,
22   <b>Max Size</b> and <b>Min Size</b> fields are taken into account.
23
24   - if set to <em>Local size</em>, behaves like <em>Custom</em> mode and takes into
25   account the "Gradation" parameter and the custom elements sizes given in the
26   "Local size" tab.
27
28 - <b>Geometrical Size</b> group defines a \a geometrical sizemap.
29
30 - \b Type of the geometrical sizemap can be set to <em>None</em>, <em>Global size</em>
31
32   - if set to <em>Global size</em>, allows user input in <b>Mesh angle</b>,
33   <b>Mesh distance</b> and <b>Gradation</b> fields. These fields control
34   computation of the element size, so called <i>geometrical size</i>, conform
35   to the surface geometry considering local curvatures. If both the <b>User size</b>
36   and the <i>geometrical parameters</i> are defined, the  eventual element size
37   corresponds to the least of the two.
38
39 - <b>User size</b> - defines the size of the generated mesh elements. If "Relative value"
40 is checked, the value is relative to the diagonal of the shape.
41
42 - <b>Max Size</b> - defines the upper limit of mesh element size. If "Relative value"
43 is checked, the value is relative to the diagonal of the shape.
44
45 - <b>Min Size</b> - defines the lower limit of mesh element size. If "Relative value"
46 is checked, the value is relative to the diagonal of the shape.
47
48 - <b>Mesh angle</b> - Limiting angle (in degree) between the plane of a triangle of the mesh and each of the tangent planes at the three vertices.
49 The smaller this angle is, the closer the mesh is to the exact surface, and the denser the resulting mesh is.
50
51 - <b>Mesh distance</b> - Maximum desired distance between a triangle and its supporting CAD surface.
52 The smaller this distance is, the closer the mesh is to the exact surface (only available in isotropic meshing).
53
54 - <b>Quadratic mesh</b> - if checked, quadratic elements will be generated.
55
56 - <b>Gradation</b> - maximum ratio between the lengths of two adjacent edges.
57
58 - <b>Mesh optimisation</b> - if checked, the mesh will be optimized in order to get better shaped elements.
59
60 - <b>Allow Quadrangles</b> - if checked, allows the creation of quadrilateral elements.
61
62 - <b>Anisotropic</b> - if checked, this parameter defines the maximum anisotropic ratio of the metric governing the anisotropic meshing process.
63 The default value (0) means that the metric (and thus the generated elements) can be arbitrarily stretched.
64
65 - <b>Optimize tiny edges</b> - if checked, the tiny (nano) edges are
66   removed from the generated mesh during local mesh optimization. The
67   tiny edge will be removed only if the local quality is improved by
68   the deletion. The tiny edge value defines the minimal length under
69   which an edge is considered to be a tiny one.
70
71 - <b>Remove tiny edges</b> - if checked, the tiny (nano) edges are
72   removed from the generated mesh \a without taking into account the
73   local quality around the edge. The tiny edge value defines the
74   minimal length under which an edge is considered to be a tiny one.
75
76 - <b>Remove bad elements</b> - if checked, the bad elements (slivers) are removed from the generated mesh.
77 The bad element value defines the aspect ratio triggering the "bad element” classification.
78
79 - <b>Correct surface intersections</b> - if checked, the mesher will try to prevent all surface intersections, which is useful for future volume mesh generation. The value defines the time that will be spent in the intersection prevention process. For example, the value 3 means that the time of the intersection removal process won't be more than 3 times the time required to mesh without processing the intersections.
80
81 - <b>Volume Gradation</b> - maximum ratio between the lengths of two adjacent edges affecting quality of a future volume mesh, specially in thin volume areas. The volume gradation parameter must be greater than 1, and should be greater or equal to the value of the classic
82 surface gradation (at the risk of increasing the time of convergence of the gradation process).
83 The closer it is to 1, the smoother the final volume mesh you will build should be.
84
85
86
87 \ref blsurf_top "Back to top"
88
89 \section blsurf_advanced_parameters Advanced parameters
90
91 The notion of <i>diag</i> used in the descriptions means the diagonal of the bounding box of the geometrical object to mesh.
92
93 \image html blsurf_parameters_advanced.png
94
95 \b Advanced page tab expose mostly useful advanced options. Initially, default values of the options are displayed and they are not modifiable. If an option is activated using a check-box, its value becomes modifiable.
96
97 - \b Meshing options
98
99   - <b>Enforce CAD edge sizes</b> - Relaxes the given sizemap constraint around CAD edges to allow a better
100 element quality and a better geometric approximation. It is only useful in combination with the
101 gradation option.
102
103   - <b>Priority of geometry over Jacobian</b> - This parameter determines whether or not the geometry accuracy
104 is more important than the negative Jacobian correction. When this parameter is set to 0,
105 MeshGems-CADSurf is allowed to lose the CAD-mesh associativity in order to correct the last negative Jacobians.
106
107   - <b>Maximal number of points per patch</b> - This parameter controls the maximum amount of points MeshGems-CADSurf
108 is allowed to generate on a single CAD patch. For an automatic gestion of the memory, you can set this parameter to ”0”.
109
110   - <b>Rectify Jacobian</b> - The quadratic elements generation is a processing of the MeshGems-CADSurf
111 meshing process which inserts the extra nodes on the CAD. This parameter determines whether
112 MeshGems-CADSurf will try to correct or not all the elements of the surface mesh with negative
113 Jacobians by moving the internal nodes of the mesh.
114
115   - <b>Respect geometry</b> - This patch independent option can be deactivated to allow MeshGems-CADSurf
116 to lower the geometry accuracy in its patch independent process.
117
118   - <b>Tiny edges avoid surface intersections</b> - This option defines the priority between the tiny feature
119 suppression and the surface intersection prevention. By default, MeshGems-CADSurf gives the priority
120 to the surface intersection prevention rather than to tiny edge or bad surface element removal. These
121 mesh features are then removed only if it does not lead to surface intersections. This behaviour can be
122 deactivated by setting this parameter to 0, giving priority to the tiny edge or bad surface element
123 removal.
124
125
126 - <b>CAD preprocessor</b> options. The CAD preprocessor (formerly known as PreCAD) has two main goals:
127
128   - Complete missing or inadequate CAD descriptions.
129
130   - Perform topology reconstruction and specific geometry
131   enhancement for mesh generation.
132
133   \n All options are unchecked by default. No cleanup is made by default so that the mesh matches the shape. If the user has a bad shape (e.g. imported shape), he can activate some options to improve the mesh.
134
135   - <b>Closed geometry</b> - describes whether the working geometry should be closed or not. 
136   When activated, this option helps PreCAD to process the dirtiest geometries.
137
138   - \b Debug - If debug = yes PreCAD will be very verbose and will output some intermediate files in the working directory.
139
140   - <b>Discard input topology</b> - compute the CAD topology from scratch,
141   without considering the topological information contained in the original CAD
142   (useful for iges files). This option is unchecked by default.
143
144   - <b>Merge Edges</b> - optimize the geometry by merging some
145   edges.
146
147   - <b>Periodic tolerance</b> - This parameter defines the maximum size difference between two periodic edges and also the maximum distance error between two periodic entities.
148
149   - <b>Remove duplicate CAD faces</b> - optimize the geometry by merging the
150   duplicate CAD faces. This option is unchecked by default.
151
152   - <b>Required entities</b> - The required entities control the correction operations. Accepted values for this parameter are:
153     - respect : MeshGems-CADSurf is not allowed to alter any required entity, even for correction purposes,
154     - ignore : MeshGems-CADSurf will ignore the required entities in its processing,
155     - clear : MeshGems-CADSurf will clear any required status for the entities. There will not be any entity marked as required in the generated mesh.
156
157   - <b>Sewing tolerance</b> - tolerance of the assembly. It rarely requires to be tuned.
158
159   - \b Tags - controls the optimisation process. Possible values are:
160     - "respect" - PreCAD is not allowed to cross the CAD attributes boundaries for optimisation purpose.
161     - "ignore" - PreCAD is allowed to cross the CAD attributes boundaries for optimisation.
162     - "clear" - PreCAD will erase each tgas of each entities, and will thus be allowed to cross the CAD attributes boundaries in its optimisation purpose.
163
164
165 - <b>Add option</b> - adds a new line in <b>Other options</b> section where you can type an option name and value. The following advanced MG-CADSurf options can be used:
166
167   - \b create_tag_on_collision (bool) - If this option is activated, MeshGems-CADSurf will create new tags to
168   describe tag collisions (when it locally changes the topology, depending on the patch independent
169   options). When this option is not activated, only one tag is preserved while the other one is dropped.
170   By default this option is 1.
171
172   - \b tiny_edge_respect_geometry (bool) - This option defines the behaviour of the tiny edge removal algorithm
173   regarding volume collapse. By default, all tiny edges will be removed, regardless of any potential
174   volume collapse. When this option is activated, it will prevent volume from being collapsed during the tiny edge removal process.
175   By default this option is 0.
176
177   - \b manifold_geometry (int) - describes whether the working geometry should be manifold or not.
178   When activated, this option helps PreCAD to process the dirtiest
179   geometries. By default this option is 0.
180
181
182
183 - <b>Verbosity level</b> - defines the percentage of "verbosity" of
184 MeshGems-CADSurf [0-10].
185
186 - <b>ExportGMF</b> - saves the computed mesh into a GMF file (.mesh or .meshb).
187
188
189
190 \ref blsurf_top "Back to top"
191
192 \section blsurf_local_size Local size
193
194 Local sizes can be defined on faces, edges or vertices:
195
196 - The faces, edges and vertices can belong to the meshed geometrical
197 object or to its sub-shapes (created using <b>Explode</b> command).
198
199 - Groups of faces, edges and vertices are also handled.
200
201 - It is possible to attribute the same size to several geometries using multi-selection.
202
203 - The sizes are constant values or python functions.
204
205 - In case of a python function, the following rules must be respected:
206
207   - The name of the function is f.
208
209   - If geometry is a face or a group of faces, the function is f(u,v).
210
211   - If geometry is an edge or a group of edges, the function is f(t).
212
213   - If geometry is a vertex or a group of vertices, the function is f().
214
215   - The function must return a double.
216
217 3 different types of size maps can be defined:
218
219 -# \ref blsurf_sizemap_computation "Computation of the physical size"
220 -# \ref blsurf_attractor "Advanced maps"
221 -# \ref blsurf_attractor_computation "Computation of attractors"
222
223 \ref blsurf_top "Back to top"
224
225 \subsection blsurf_sizemap_computation Computation of the physical size
226
227 \image html blsurf_parameters_sizemap1.png 
228
229 The physical size is obtained by querying sizemap functions associated
230 to the input CAD object for surfaces, curves and points.
231 Each function can either return a value h (which is then trimmed
232 between the two bounds hphymin and hphymax), or "no answer" (by not
233 assigning a value to h), thus providing great flexibility in the
234 specification of the sizes. The computation depends on whether point P
235 is internal to a surface, internal to a curve, or at the end of
236 several curves:
237
238 - If point P is internal to a surface, the CAD surface size function
239 is queried. If no answer is returned, one interpolates with the values
240 at the vertices of the discretized interface curves.
241
242 - If point P is internal to a curve, the CAD curve size function is
243 queried first. If no answer is returned, the surface size function is
244 queried for every adjacent surface and the mean value of the returned
245 values is computed. If no answer is returned, sizes h1 and h2 at both
246 ends of the curve are considered (see next item) and the interpolated
247 value is computed.
248
249 - If point P is at the extremity of several curves, the CAD point size
250 function is queried first. If no answer is returned, the curve size
251 function is queried for every adjacent curve and the mean value of the
252 returned values is computed. If no answer is returned, the surface
253 size function is queried for every adjacent surface and the mean value
254 of the returned values is computed. If there is still no answer
255 returned, the default value hphydef is kept.
256
257 In order to compute the mean of several values, the arithmetic mean is
258 used by default, but this can be modified by the parameter
259 \ref blsurf_hmean_flag "hmean flag". In the same way, in order to
260 interpolate two values, a linear interpolation is used by default, but
261 this can be modified by \ref blsurf_hinterpol_flag "hinterpol flag". 
262
263 \ref blsurf_local_size "Back to \"Local size\""\n
264 \ref blsurf_top "Back to top"
265
266 \subsection blsurf_attractor Advanced maps
267
268 \image html blsurf_parameters_sizemap2.png 
269
270 More specific size maps can be defined on faces. 
271
272 - <i> Attractors </i> allow to define the size of the mesh elements
273 on a face so that the mesh is the finest on the attractor shape and
274 becomes coarser when getting far from this shape.
275
276   - The selected attractor can be a Vertex, an Edge, a Wire or a
277   Compound mixing several entities of those types.
278
279   - The attractor doesn't have to be a sub-shape of the shape to mesh.
280
281   - The size will grow exponentially (see the formula below) but is
282   bounded by gradation, \n so if you want the formula to be strictly
283   respected, you should set the <i>gradation</i> 
284   to its maximum (2.5) in the <i>arguments</i> tab. 
285
286 - Furthermore you can choose to <i> keep the size constant </i>
287 until a certain distance from a shape. This option can be combined or
288 not with an <i>attractor</i> size map described above. 
289
290   - If the two options are combined the size will remain constant
291   until the distance specified in "constant over" and grow then as
292   prescribed by the attractor function.
293
294   - Else the growing is only controled by the standard arguments of
295   MG-CADSurf (gradation ...).
296
297 \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"
298
299 \note The validation of the hypothesis might take a few seconds if
300 attractors are defined or the "constant size" option is used because a
301 map of distances has to be built on the whole surface for each face
302 where such a hypothesis has been defined.
303
304 \sa Sample TUI Script of the \ref tui_blsurf "creation of a MG-CADSurf hypothesis", including size map.
305
306 \ref blsurf_local_size "Back to \"Local size\""\n
307 \ref blsurf_top "Back to top"
308
309 \subsection blsurf_attractor_computation Computation of attractors
310
311 The size grows exponentially following the equation : 
312 \f$h(d) = \mathrm{User Size} + (\mathrm{h\_start} - \mathrm{User Size}) \times e ^ { - \left( \frac{d}{R} \right) ^ {2} }\f$
313
314 Where :
315
316 - h_start is the desired size on the given attractor shape
317
318 - d is the distance of the current point from the attractor
319 shape. The distance is the geodesic distance (i.e. calculated by following the surface to be meshed)
320
321 - R is called the distance of influence and allows controlling the growth rate of the mesh
322
323 \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"
324
325 \ref blsurf_local_size "Back to \"Local size\""\n
326 \ref blsurf_top "Back to top"
327
328 \section blsurf_enforced_elements Enforced vertices
329
330 \image html blsurf_parameters_enforced_vertices.png
331
332 It is possible to define some enforced vertices to MG-CADSurf algorithm.
333 An enforced vertex is defined by
334
335 - selecting an existing Vertex or Compound,
336
337 - or by its coordinates.
338
339 The enforced vertex is the projection of a point defined by its
340 (x,y,z) coordinates on the closest face found by the application.
341
342 - It is possible to define several enforced vertices.
343
344 - If the projected point is on the boundary or outside of the face, it will be ignored.
345
346 - If a group name is specified : if the group exists, the enforced nodes will be added in the existing group, if the group does not exist it will be created.
347
348 All the internal vertices of faces can be considered as enforced vertices if the corresponding checkbox is checked.
349 A group can optionnaly be defined on those enforced vertices.
350
351 \sa Sample TUI Script of the \ref tui_blsurf "creation of a MG-CADSurf hypothesis", including enforced vertices.
352
353 \ref blsurf_top "Back to top"
354
355
356 \section blsurf_periodicity Periodicity
357
358 \subsection periodicity_introduction Introduction
359
360 Periodicity is used to have the same discretization on two faces (in 3D) or two edges (in 2D).
361 This is useful for instance for a Representative Volume Element so that the translated meshes share the same nodes on the common faces.
362
363 Periodicity association uses PreCAD (MG-CADSurf preprocessor). You don't need an extra PreCAD license. It is included in MG-CADSurf since MeshGems V2.2.
364
365 \image html blsurf_periodicity_translation.png "Two periodic faces (translation)"
366
367 \image html blsurf_periodicity_reflexion.png "Two periodic faces (reflexion)"
368
369 \image html blsurf_periodicity_2D.png "Associations of edges in 2D (both red edges are associated with each other)"
370
371 \subsection periodicity_gui_usage GUI usage
372
373 \image html blsurf_parameters_periodicity.png
374
375 The periodicity association can be defined:
376
377 - on 2 groups of faces (in 3D)
378 - on 2 groups of edges (in 2D)
379
380 If the transformation is a translation, PreCAD makes the periodicity association with only this information.
381
382 Otherwise, for instance a rotation, the user has to define 3 non-colinear vertices and their image by the transformation.
383
384 \subsection periodicity_tui_precad_usage TUI PreCAD usage
385
386 The two methods to define periodicity with PreCAD are
387 (the former name of <em>MG-CADSurf</em> is \a BLSURF and names
388 of the corresponding classes and modules still include \a "BLSURF"):
389 - BLSURFPluginBuilder.BLSURF_Algorithm.AddPreCadFacesPeriodicity
390 - BLSURFPluginBuilder.BLSURF_Algorithm.AddPreCadEdgesPeriodicity
391
392 List of source and target vertices to define a transformation are optional.
393
394 \sa Sample TUI Script of the definition of MG-CADSurf periodicity \ref tui_blsurf_periodicity_preCAD "using preCAD".
395
396 \section blsurf_hyperpatch Hyper-patch
397
398 \image html blsurf_parameters_hyperpatch.png
399
400 Hyper-patch tab page allows defining faces that will be meshes together as
401   part of a global hyper-patch.
402
403 - <b>Hyper-patch IDs</b> table - shows IDs of faces of defined hyper-patches.
404
405 - <b>Face selection</b> - activates selection of faces in the VTK Viewer.
406
407 - <b>Group selection</b> - activates selection of faces and groups of
408   faces in the Object Browser.
409
410 - \b IDs - allows typing IDs of faces composing a hyper-patch and
411   shows IDs of faces selected in the Viewer or the Object Browser.
412
413 - \b Add - adds a new row to the table and moves \b IDs there.
414
415 - \b Remove - removes selected hyper-patches from the table.
416
417 \ref blsurf_top "Back to top"
418
419 For more information on MeshGems-CADSurf, you can read its documentation at $MESHGEMS_ROOT_DIR/Docs/mg-cadsurf_user_manual.pdf
420
421 */