1 /*!
3 \page a2d_meshing_hypo_page 2D Meshing Hypotheses
5 - \ref max_element_area_anchor "Max Element Area"
6 - \ref length_from_edges_anchor "Length from Edges"
9 \anchor max_element_area_anchor
10 <h2>Max Element Area</h2>
12 <b>Max Element Area</b> hypothesis is applied for meshing of faces
13 composing your geometrical object. Definition of this hypothesis
14 consists of setting the <b>maximum area</b> of mesh faces,
15 which will compose the mesh of these faces.
17 \image html a-maxelarea.png
19 \n
21 \image html max_el_area.png "In this example, Max. element area is very small compared to the 1D hypothesis"
23 <b>See Also</b> a sample TUI Script of a
24 \ref tui_max_element_area "Maximum Element Area" hypothesis operation.
26 \anchor length_from_edges_anchor
27 <h2>Length from Edges</h2>
29 <b>Length from edges</b> hypothesis defines maximum linear size of
30 mesh faces as an average length of mesh edges approximating a boundary
31 of a face being meshed.
33 <b>See Also</b> a sample TUI Script of a
34 \ref tui_length_from_edges "Length from Edges" hypothesis operation.
43 <b>Transition</b> tab is used to define the algorithm of transition
44 between opposite sides of the face with a different number of
45 segments on them. The following types of transition
46 algorithms are available:
48 - <b>Standard</b> is the default case, when both triangles and quadrangles
49   are possible in the transition area along the finer meshed sides.
50 - <b>Triangle preference</b> forces building only triangles in the
51   transition area along the finer meshed sides.
52   \note This type corresponds to <b>Triangle Preference</b> additional hypothesis,
53   which is obsolete now.
55   transition area along the finer meshed sides. This hypothesis has a
56   restriction: the total quantity of segments on all
57   four face sides must be even (divisible by 2).
59   which is obsolete now.
60 - <b>Quadrangle preference (reversed)</b> works in the same way and
61   with the same restriction as <b>Quadrangle preference</b>, but
62   the transition area is located along the coarser meshed sides.
63 - <b>Reduced</b> type forces building only quadrangles and the transition
64   between the sides is made gradually, layer by layer. This type has
65   a limitation on the number of segments: one pair of opposite sides must have
66   the same number of segments, the other pair must have an even total
67   number of segments. In addition, the number of rows
68   between sides with different discretization
69   should be enough for the transition. Following the fastest transition
70   pattern, three segments become one (see the image below), hence
71   the least number of face rows needed to reduce from Nmax segments
72   to Nmin segments is log<sub>3</sub>( Nmax / Nmin ). The number of
73   face rows is equal to the number of segments on each of equally
74   discretized sides.
76 \image html reduce_three_to_one.png "The fastest transition pattern: 3 to 1"
78 <b>Base vertex</b> tab allows using Quadrangle (Mapping)
79 algorithm for meshing of trilateral faces. In this case it is
80 necessary to select the vertex, which will be used as the forth
85 \image html hypo_quad_params_1.png "A face built from 3 edges"
87 \image html hypo_quad_params_res.png "The resulting mesh"
89 This parameter can be also used to mesh a segment of a circular face.
90 Please, consider that there is a limitation on the selection of the
91 vertex for the faces built with the angle > 180 degrees (see the picture).
93 \image html hypo_quad_params_2.png "3/4 of a circular face"
95 In this case, selection of a wrong vertex for the <b>Base vertex</b>
96 parameter will generate a wrong mesh. The picture below
97 shows the good (left) and the bad (right) results of meshing.
99 \image html hypo_quad_params_res_2.png "The resulting meshes"
103 <b>Enforced nodes</b> tab allows defining points, where the
104 algorithm should create nodes. There are two ways to define positions
105 of the enforced nodes.
106 <ul>
107   <li>\b Vertices group allows to set up shapes whose vertices will
108     define positions of the enforced nodes. Only vertices successfully
109     projected to the meshed face and located close enough to the
110     meshed face will be used to create the enforced nodes.</li>
111   <li> \b Points group allows to explicitly define coordinates of
112     points used to create the enforced nodes. Only points successfully
113     projected to the meshed face and located close enough to the
114     meshed face will be used to create the enforced nodes.</li>
115 </ul>
116 \note <b>Enforced nodes</b> can't be created at \b Reduced transition type.
118 Let us see how the algorithm works:
119 <ul>
120   <li> Initially positions of nodes are computed without taking into
121   account the enforced vertex (yellow point).</li>
122 \image html hypo_quad_params_enfnodes_algo1.png "Initial mesh"
124   <li> Then the node closest to the enforced vertex is
125     detected. Extreme nodes of the row and column of the detected node
126     are used to create virtual edges (yellow lines) ending at the
127     enforced vertex. </li>
128 \image html hypo_quad_params_enfnodes_algo2.png "Creation of virtual edges"
130   <li> Consequently, the meshed face is divided by the virtual
131     edges into four quadrilateral sub-domains each of which is meshed
132     as usually: the nodes of the row and column of the detected node are
133     moved to the virtual edges and the quadrilateral elements are
134     constructed.
136 \image html hypo_quad_params_enfnodes_algo3.png "Final mesh"
138 </ul>
139 If there are several enforced vertices, the algorithm is applied
140 recursively to the formed sub-domains.
142 <b>See Also</b> a sample TUI Script of a