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