Salome HOME
54416: Extrusion 3D algo is not applicable to a prismatic shape
[modules/smesh.git] / doc / salome / gui / SMESH / input / 2d_meshing_hypo.rst
1 .. _a2d_meshing_hypo_page:
2
3 *********************
4 2D Meshing Hypotheses
5 *********************
6
7 - :ref:`max_element_area_anchor`
8 - :ref:`length_from_edges_anchor`
9 - :ref:`hypo_quad_params_anchor`
10
11 .. _max_element_area_anchor:
12
13 Max Element Area
14 ################
15
16 **Max Element Area** hypothesis is applied for meshing of faces composing your geometrical object. Definition of this hypothesis consists of setting the **maximum area** of mesh faces, which will compose the mesh of these faces.
17
18 .. image:: ../images/a-maxelarea.png
19         :align: center
20
21 |    
22
23 .. image:: ../images/max_el_area.png 
24         :align: center
25
26 .. centered::
27         In this example, Max. element area is very small compared to the 1D hypothesis
28
29 **See Also** a sample TUI Script of :ref:`tui_max_element_area` hypothesis operation. 
30
31 .. _length_from_edges_anchor:
32
33 Length from Edges
34 #################
35
36 **Length from edges** hypothesis defines the maximum linear size of mesh faces as an average length of mesh edges approximating the meshed face boundary.
37
38 **See Also** a sample TUI Script of :ref:`tui_length_from_edges` hypothesis operation.
39
40 .. _hypo_quad_params_anchor:
41
42 Quadrangle parameters
43 #####################
44
45 **Quadrangle parameters** is a hypothesis for :ref:`quad_ijk_algo_page`.
46
47 Quadrangle parameters dialog includes four tab pages:
48
49 - :ref:`Transition <transition_anchor>`
50 - :ref:`Base vertex <base_vertex_anchor>`
51 - :ref:`Corner Vertices <corner_vertices_anchor>`
52 - :ref:`Enforced nodes <enforced_nodes_anchor>`
53
54 .. _transition_anchor:
55
56 Transition tab
57 --------------
58
59 .. image:: ../images/ hypo_quad_params_dialog.png 
60         :align: center
61
62 .. centered::
63         Quadrangle parameters: Transition
64
65 **Transition** tab is used to define the algorithm of transition between opposite sides of the face with a different number of segments on them. The following types of transition algorithms are available:
66
67 * **Standard** is the default case, when both triangles and quadrangles are possible in the transition area along the finer meshed sides.
68 * **Triangle preference** forces building only triangles in the transition area along the finer meshed sides.
69
70   .. note:: This type corresponds to **Triangle Preference** additional hypothesis, which is obsolete now.
71
72 * **Quadrangle preference** forces building only quadrangles in the transition area along the finer meshed sides. This hypothesis has a restriction: the total quantity of segments on all four face sides must be even (divisible by 2).
73
74   .. note:: This type corresponds to **Quadrangle Preference** additional hypothesis, which is obsolete now.
75
76 * **Quadrangle preference (reversed)** works in the same way and with the same restriction as **Quadrangle preference**, but the transition area is located along the coarser meshed sides.
77 * **Reduced** type forces building only quadrangles and the transition between the sides is made gradually, layer by layer. This type has a limitation on the number of segments: one pair of opposite sides must have the same number of segments, the other pair must have an even total number of segments. In addition, the number of rows between sides with different discretization should be enough for the transition. Following the fastest transition pattern, three segments become one (see the image below), hence the least number of face rows needed to reduce from Nmax segments to Nmin segments is log<sub>3</sub>( Nmax / Nmin ). The number of face rows is equal to the number of segments on each of equally discretized sides.
78
79 .. image:: ../images/ reduce_three_to_one.png 
80         :align: center
81
82 .. centered::
83         The fastest transition pattern: 3 to 1
84
85 .. _base_vertex_anchor:
86
87 Base vertex tab
88 ---------------
89
90 .. image:: ../images/ hypo_quad_params_dialog_vert.png 
91         :align: center
92
93 .. centered::
94         Quadrangle parameters: Base Vertex
95
96 **Base vertex** tab allows using Quadrangle: Mapping algorithm for meshing of trilateral faces. In this case it is necessary to select the vertex, which will be used as the forth degenerated side of quadrangle.
97
98 .. image:: ../images/hypo_quad_params_1.png 
99         :align: center
100
101 .. centered::
102         A face built from 3 edges and the resulting mesh
103
104 This parameter can be also used to mesh a segment of a circular face. Please, consider that there is a limitation on the selection of the vertex for the faces built with the angle > 180 degrees (see the picture). In this case, selection of a wrong vertex for the **Base vertex** parameter will generate a wrong mesh. The picture below shows the good (left) and the bad (right) results of meshing.
105
106 .. image:: ../images/hypo_quad_params_2.png 
107         :align: center
108
109 .. centered:: 
110         3/4 of a circular face and the resulting meshes
111
112
113 .. _corner_vertices_anchor:
114
115 Corner Vertices tab
116 -------------------
117
118 .. image:: ../images/hypo_quad_params_dialog_corners.png 
119         :align: center
120
121 .. centered::
122         Quadrangle parameters: Corner Vertices
123
124 **Corner Vertices** tab page allows specifying vertices that should be used as quadrangle corners. This can be useful for faces with more than four vertices, since in some cases Quadrangle Mapping algorithm chooses corner vertices differently than it is desired. **Quadrangle parameters** hypothesis can be global and define corners for all CAD faces that require it, but be sure that each specified vertex is a corner in all faces the hypothesis will be applied to.
125
126
127 .. _enforced_nodes_anchor:
128
129 Enforced nodes tab
130 ------------------
131
132 .. image:: ../images/ hypo_quad_params_dialog_enf.png 
133         :align: center
134
135 .. centered::
136         Quadrangle parameters: Enforced nodes
137
138 **Enforced nodes** tab allows defining points, where the algorithm should create nodes. There are two ways to define positions of the enforced nodes.
139
140 * **Vertices** group allows to set up shapes whose vertices will  define positions of the enforced nodes. Only vertices successfully projected to the meshed face and located close enough to the meshed face will be used to create the enforced nodes.
141 * **Points** group allows to explicitly define coordinates of points used to create the enforced nodes. Only points successfully projected to the meshed face and located close enough to the meshed face will be used to create the enforced nodes.
142
143 ..  note::
144         **Enforced nodes** cannot be created at **Reduced** transition type.
145
146 Let us see how the algorithm works:
147
148 * Initially positions of nodes are computed without taking into account the enforced vertex (yellow point). 
149
150 .. image:: ../images/ hypo_quad_params_enfnodes_algo1.png
151         :align: center
152
153 .. centered::
154         Initial mesh
155
156 * Then the node closest to the enforced vertex is detected. Extreme nodes of the row and column of the detected node are used to create virtual edges (yellow lines) ending at the enforced vertex. 
157
158         .. image:: ../images/ hypo_quad_params_enfnodes_algo2.png
159                 :align: center
160         .. centered::
161                  Creation of virtual edges
162         
163 * Consequently, the meshed face is divided by the virtual edges into four quadrilateral sub-domains each of which is meshed as usually: the nodes of the row and column of the detected node are moved to the virtual edges and the quadrilateral elements are constructed. 
164         
165         .. image:: ../images/ hypo_quad_params_enfnodes_algo3.png 
166                 :align: center
167         
168         .. centered::
169                 Final mesh
170
171
172 If there are several enforced vertices, the algorithm is applied recursively to the formed sub-domains.
173
174 **See Also** a sample TUI Script of a :ref:`Quadrangle Parameters <tui_quadrangle_parameters>` hypothesis.
175