Salome HOME
23189: EDF 11603 - Dyssymetry in meshing
[modules/smesh.git] / doc / salome / gui / SMESH / input / 1d_meshing_hypo.doc
index d11a8baa04d3df70f38238241399c8713acf9961..0995673b393d94a7a7b94b08a1b279c9457b160c 100644 (file)
@@ -2,18 +2,39 @@
 
 \page a1d_meshing_hypo_page 1D Meshing Hypotheses
 
-<br>
+Basic 1D hypothesis specifies:
 <ul>
-<li>\ref adaptive_1d_anchor "Adaptive"</li>
-<li>\ref arithmetic_1d_anchor "Arithmetic 1D"</li>
-<li>\ref geometric_1d_anchor "Geometric Progression"</li>
-<li>\ref average_length_anchor "Local Length"</li>
-<li>\ref max_length_anchor "Max Size"</li>
-<li>\ref deflection_1d_anchor "Deflection 1D"</li>
-<li>\ref number_of_segments_anchor "Number of segments"</li>
-<li>\ref start_and_end_length_anchor "Start and end length"</li>
-<li>\ref automatic_length_anchor "Automatic Length"</li>
-<li>\ref fixed_points_1d_anchor "Fixed points 1D"</li>
+<li>how \ref a1d_algos_anchor "Wire Discretization" should divide the edge;</li>
+<li>how \ref a1d_algos_anchor "Composite Side Discretization" should divide the group of C1-continuous edges.</li>
+</ul>
+
+1D hypotheses can be categorized by type of nodes distribution as follows:
+<ul>
+<li>Uniform distribution:
+  <ul>
+    <li>\ref average_length_anchor "Local Length"</li>
+    <li>\ref max_length_anchor "Max Size"</li>
+    <li>\ref number_of_segments_anchor "Number of segments" with Equidistant distribution</li>
+    <li>\ref automatic_length_anchor "Automatic Length"</li>
+</ul></li>
+<li>Constantly increasing or decreasing length of segments:
+  <ul>
+    <li>\ref arithmetic_1d_anchor "Arithmetic 1D"</li>
+    <li>\ref geometric_1d_anchor "Geometric Progression"</li>
+    <li>\ref start_and_end_length_anchor "Start and end length"</li>
+    <li>\ref number_of_segments_anchor "Number of segments" with Scale distribution</li>
+</ul></li>
+<li>Distribution depending on curvature:
+  <ul>
+    <li>\ref adaptive_1d_anchor "Adaptive"</li>
+    <li>\ref deflection_1d_anchor "Deflection 1D"</li>
+</ul></li>
+<li>Arbitrary distribution:
+  <ul>
+    <li>\ref fixed_points_1d_anchor "Fixed points 1D"</li>
+    <li>\ref number_of_segments_anchor "Number of segments" with
+    \ref analyticdensity_anchor "Analytic Density Distribution" or Table Density Distribution</li>
+</ul></li>
 </ul>
 
 <br>
@@ -31,8 +52,8 @@ creation of narrow 2D elements.
 
 - <b>Min size</b> parameter limits the minimal segment size. 
 - <b>Max size</b> parameter defines the length of segments on straight edges. 
-- <b>Deflection</b> parameter gives maximal distance of a segment from a curved edge.
-- <b>Grading</b> parameter defines how much size of adjacent elements can differ.
+- \b Deflection parameter gives maximal distance of a segment from a curved edge.
+
 \image html adaptive1d_sample_mesh.png "Adaptive hypothesis and Netgen 2D algorithm - the size of mesh segments reflects the size of geometrical features"
 
 <b>See Also</b> a \ref tui_1d_adaptive "sample TUI Script" that uses Adaptive hypothesis.
@@ -55,6 +76,10 @@ be reversed either directly picking them in the 3D viewer or by
 selecting the edges or groups of edges in the Object Browser. Use \b
 Add button to add the selected edges to the list.
 
+\ref reversed_edges_helper_anchor "Helper" group assists you in
+defining <b>Reversed Edges</b> parameter.
+
+
 \image html a-arithmetic1d.png
 
 \image html b-ithmetic1d.png "Arithmetic 1D hypothesis - the size of mesh elements gradually increases"
@@ -81,6 +106,9 @@ be reversed either directly picking them in the 3D viewer or by
 selecting the edges or groups of edges in the Object Browser. Use \b
 Add button to add the selected edges to the list.
 
+\ref reversed_edges_helper_anchor "Helper" group assists you in
+defining <b>Reversed Edges</b> parameter.
+
 \image html a-geometric1d.png
 
 <b>See Also</b> a sample TUI Script of a 
@@ -91,13 +119,14 @@ Add button to add the selected edges to the list.
 <h2>Deflection 1D hypothesis</h2>
 
 <b>Deflection 1D</b> hypothesis can be applied for meshing curvilinear edges
-composing your geometrical object. It uses only one parameter: the
-value of deflection.  
-\n A geometrical edge is divided into equal segments. The maximum
-distance between a point on the edge within a segment and the line
-connecting the ends of the segment should not exceed the specified
-value of deflection . Then mesh nodes are constructed at end segment
-locations and 1D mesh elements are constructed on segments.
+composing your geometrical object. It defines only one parameter: the
+value of deflection (or chord error).
+
+A geometrical edge is divided into segments of length depending on
+edge curvature. The more curved the edge, the shorter the
+segment. Nodes on the edge are placed so that the maximum distance
+between the edge and a segment approximating a part of edge between
+two nodes should not exceed the value of deflection.
 
 \image html a-deflection1d.png
 
@@ -112,25 +141,26 @@ locations and 1D mesh elements are constructed on segments.
 
 <b>Local Length</b> hypothesis can be applied for meshing of edges
 composing your geometrical object. Definition of this hypothesis
-consists of setting the \b length of segments, which will split these
-edges, and the \b precision of rounding. The points on the edges
-generated by these segments will represent nodes of your mesh.
-Later these nodes will be used for meshing of the faces abutting to
-these edges.
-
-The \b precision parameter is used to allow rounding a number of
-segments, calculated from the edge length and average length of
-segment, to the lower integer, if this value outstands from it in
-bounds of the precision. Otherwise, the number of segments is rounded
-to the higher integer. Use value 0.5 to provide rounding to the
-nearest integer, 1.0 for the lower integer, 0.0 for the higher
-integer. Default value is 1e-07.
+consists of setting the \b length of segments, which will approximate these
+edges, and the \b precision of rounding.
+
+The \b precision parameter is used to round a <em>number of segments</em>,
+calculated by dividing the <em>edge length</em> by the specified \b length of
+segment, to the higher integer if the \a remainder exceeds the \b precision
+and to the lower integer otherwise. <br>
+Use value 0.5 to provide rounding to the nearest integer, 1.0 for the lower integer, 0.0 for the higher integer. Default value is 1e-07.
+
+For example: if <em>edge length</em> is 10.0 and the segment \b length
+is 3.0 then their division gives 10./3. = 3.33(3) and the \a remainder is 0.33(3).
+If \b precision is less than 0.33(3) then the edge is divided into 3 segments.
+If \b precision is more than 0.33(3) then the edge is divided into 4 segments.
+
 
 \image html image41.gif
 
 \image html a-averagelength.png
 
-\image html b-erage_length.png "Local Length hypothesis - all 1D mesh elements are roughly equal"
+\image html b-erage_length.png "Local Length hypothesis - all 1D mesh segments are equal"
 
 <b>See Also</b> a sample TUI Script of a 
 \ref tui_average_length "Defining Local Length" hypothesis
@@ -141,7 +171,7 @@ operation.
 <b>Max Size</b> hypothesis allows splitting geometrical edges into
 segments not longer than the given length. Definition of this hypothesis
 consists of setting the maximal allowed \b length of segments.
-<b>Use preestimated length</b> check box lets you specify \b length
+<b>Use preestimated length</b> check box lets you use \b length
 automatically calculated basing on size of your geometrical object,
 namely as diagonal of bounding box divided by ten. The divider can be
 changed via "Ratio Bounding Box Diagonal / Max Size"
@@ -155,27 +185,23 @@ geometrical object has been selected before hypothesis definition.
 \anchor number_of_segments_anchor
 <h2>Number of segments hypothesis</h2>
 
-<b>Number of segments</b> hypothesis can be applied for meshing of edges
-composing your geometrical object. Definition of this hypothesis
-consists of setting the number of segments, which will split these
-edges. In other words your edges will be split into a definite number
-of segments with approximately the same length. The points on the
-edges generated by these segments will represent nodes of your
-mesh. Later these nodes will be used for meshing of the faces abutting
-to these edges.
+<b>Number of segments</b> hypothesis can be applied for approximating
+edges by a definite number of mesh segments with length depending on
+the selected type of distribution of nodes.
 
 The direction of the splitting is defined by the orientation of the
-underlying geometrical edge. <b>"Reverse Edges"</b> list box allows to
+underlying geometrical edge. <b>Reverse Edges</b> list box allows to
 specify the edges for which the splitting should be made in the
 direction opposing to their orientation. This list box is enabled only
-if the geometry object is selected for the meshing. In this case the
-user can select edges to be reversed either by directly picking them
+if the geometry object is selected for the meshing. In this case it is 
+possible to select edges to be reversed either by directly picking them
 in the 3D viewer or by selecting the edges or groups of edges in the
 Object Browser.
 
-\image html image46.gif
+\ref reversed_edges_helper_anchor "Helper" group assists you in
+defining <b>Reversed Edges</b> parameter.
 
-You can set the type of distribution for this hypothesis in the
+You can set the type of node distribution for this hypothesis in the
 <b>Hypothesis Construction</b> dialog bog :
 
 \image html a-nbsegments1.png
@@ -183,28 +209,49 @@ You can set the type of distribution for this hypothesis in the
 <br><b>Equidistant Distribution</b> - all segments will have the same
 length, you define only the <b>Number of Segments</b>.
 
-<br><b>Scale Distribution</b> - length of segments gradually changes depending on the <b>Scale Factor</b>, which is a ratio of the first segment length to the last segment length.
+<br><b>Scale Distribution</b> - length of segments gradually changes
+depending on the <b>Scale Factor</b>, which is a ratio of the first
+segment length to the last segment length.<br>
+Length of segments changes in geometric progression with the common
+ratio (A) depending on the <b>Scale Factor</b> (S) and <b>Number of
+Segments</b> (N) as follows: <code> A = S**(1/(N-1))</code>. For an
+edge of length L, length of the first segment is 
+<code>L * (1 - A)/(1 - A**N)</code>.
 
-\image html a-nbsegments2.png
 
-<br><b>Distribution with Table Density</b> - you input a number of
-pairs <b>t - F(t)</b>, where \b t ranges from 0 to 1,  and the module computes the
-formula, which will rule the change of length of segments and shows
-the curve in the plot. You can select the <b>Conversion mode</b> from
-\b Exponent and <b>Cut negative</b>.
-
-\image html distributionwithtabledensity.png
+\image html a-nbsegments2.png
 
 <br><b>Distribution with Analytic Density</b> - you input the formula,
 which will rule the change of length of segments and the module shows
-the curve in the plot.
+in the plot the density function curve in red and the node
+distribution as blue crosses.
 
 \image html distributionwithanalyticdensity.png
 
+<br>
+\anchor analyticdensity_anchor
+The node distribution is computed so that to have the density function
+integral on the range between two nodes equal for all segments.
+\image html analyticdensity.png
+
+<br><b>Distribution with Table Density</b> - you input a number of
+pairs <b>t - F(t)</b>, where \b t ranges from 0 to 1, and the module computes the
+formula, which will rule the change of length of segments and shows
+in the plot the density function curve in red and the node
+distribution as blue crosses. The node distribution is computed in the
+same way as for 
+\ref analyticdensity_anchor "Distribution with Analytic Density". You
+can select the <b>Conversion mode</b> from \b Exponent and <b>Cut
+negative</b>.
+
+\image html distributionwithtabledensity.png
+
 <b>See Also</b> a sample TUI Script of a 
 \ref tui_deflection_1d "Defining Number of Segments" hypothesis
 operation.
 
+\note The plot functionality is available only if GUI module is builded with Plot 2D Viewer (set option SALOME_USE_PLOT2DVIEWER to ON when building GUI module).
+
 <br>
 \anchor start_and_end_length_anchor
 <h2>Start and End Length hypothesis</h2>
@@ -212,19 +259,21 @@ operation.
 <b>Start and End Length</b> hypothesis allows to divide a geometrical edge
 into segments so that the first and the last segments have a specified
 length. The length of medium segments changes with automatically chosen
-geometric progression. Then mesh nodes are
-constructed at segment ends location and 1D mesh elements are
-constructed on them.
+geometric progression.
 
 The direction of the splitting is defined by the orientation of the
-underlying geometrical edge. <b>"Reverse Edges"</b> list box allows to
-specify the edges for which the splitting should be made in the
+underlying geometrical edge. <b>Reverse Edges</b> list box allows to
+specify the edges, for which the splitting should be made in the
 direction opposing to their orientation. This list box is enabled only
-if the geometry object is selected for the meshing. In this case the
-user can select edges to be reversed either by directly picking them
+if the geometry object is selected for the meshing. In this case it is 
+possible to select edges to be reversed either by directly picking them
 in the 3D viewer or by selecting the edges or groups of edges in the
 Object Browser.
 
+\ref reversed_edges_helper_anchor "Helper" group assists you in
+defining <b>Reversed Edges</b> parameter.
+
+
 \image html a-startendlength.png
 
 \image html b-art_end_length.png "The lengths of the first and the last segment are strictly defined"
@@ -237,36 +286,35 @@ hypothesis operation.
 \anchor automatic_length_anchor
 <h2>Automatic Length</h2>
 
-This hypothesis is automatically applied when you select <b>Assign a
-set of hypotheses</b> option in Create Mesh menu.
+The dialog box prompts you to define the quality of the future mesh by
+only one parameter, which is \b Fineness, ranging from 0 (coarse mesh,
+low number of segments) to 1 (extremely fine mesh, great number of
+segments). 
 
 \image html automaticlength.png
 
-The dialog box prompts you to define the quality of the future mesh by
-only one parameter, which is \b Fineness, ranging from 0 (coarse mesh,
-low number of elements) to 1 (extremely fine mesh, great number of
-elements). Compare one and the same object (sphere) meshed with
+Compare one and the same object (sphere) meshed with
 minimum and maximum value of this parameter.
 
-\image html image147.gif "Example of a very rough mesh. Automatic Length works for 0."
+\image html image147.gif "Example of a rough mesh at Automatic Length Fineness of 0."
 
-\image html image148.gif "Example of a very fine mesh. Automatic Length works for 1."
+\image html image148.gif "Example of a fine mesh at Automatic Length Fineness of 1."
 
 <br>
 \anchor fixed_points_1d_anchor
 <h2>Fixed points 1D hypothesis</h2>
 
 <b>Fixed points 1D</b> hypothesis allows splitting edges through a
-set of points parameterized on the edge (from 1 to 0) and a number of segments for each
-interval limited by the points.
+set of points parametrized on the edge (from 1 to 0) and a number of
+segments for each interval limited by the points.
 
-\image html hypo_fixedpnt_dlg.png 
+\image html hypo_fixedpnt_dlg.png
 
 It is possible to check in <b>Same Nb. Segments for all intervals</b> 
 option and to define one value for all intervals.
 
 The splitting direction is defined by the orientation of the
-underlying geometrical edge. <b>"Reverse Edges"</b> list box allows to
+underlying geometrical edge. <b>Reverse Edges</b> list box allows to
 specify the edges for which the splitting should be made in the
 direction opposite to their orientation. This list box is enabled only
 if the geometrical object is selected for meshing. In this case it is
@@ -274,9 +322,46 @@ possible to select the edges to be reversed either directly picking them in
 the 3D viewer or selecting the edges or groups of edges in the
 Object Browser.
 
-\image html mesh_fixedpnt.png "Example of a submesh on the edge built using Fixed points 1D hypothesis"
+\ref reversed_edges_helper_anchor "Helper" group assists in
+defining <b>Reversed Edges</b> parameter.
+
+
+\image html mesh_fixedpnt.png "Example of a sub-mesh on the edge built using Fixed points 1D hypothesis"
 
 <b>See Also</b> a sample TUI Script of a 
 \ref tui_fixed_points "Defining Fixed Points" hypothesis operation.
 
+\anchor reversed_edges_helper_anchor
+<h2>Reversed Edges Helper</h2>
+
+\image html rev_edges_helper_dlg.png
+
+\b Helper group assists in defining <b>Reversed Edges</b>
+parameter of the hypotheses depending on edge direction.
+
+<b>Show whole geometry</b> check-box allows seeing the whole
+geometrical model in the 3D Viewer, which can help to understand the
+location of a set of edges within the model.
+
+<b>Propagation chains</b> group allows defining <b>Reversed Edges</b>
+for splitting opposite edges of quadrilateral faces in a logically
+uniform direction. When this group is activated, the list is filled
+with propagation chains found within the shape on which a hypothesis
+is assigned. When a chain is selected in the list its edges are shown
+in the Viewer with arrows, which enables choosing a common direction
+for all chain edges. \b Reverse button inverts the common direction of
+chain edges. \b Add button is active if some edges of a chain have a
+different direction, so you can click \b Add button to add them
+to <b>Reversed Edges</b> list.
+
+\image html propagation_chain.png "The whole geometry and a propagation chain"
+
+\note Alternatively, uniform direction of edges of one propagation
+chain can be achieved by 
+\ref constructing_submeshes_page "definition of a sub-mesh" on one
+edge of the chain and assigning a 
+\ref propagation_anchor "Propagation" additional hypothesis.
+Orientation of this edge (and hence of all the rest edges of the chain) can be
+controlled by using <b>Reversed Edges</b> field.
+
 */