Salome HOME
Merge multi-study removal branch.
[modules/smesh.git] / doc / salome / gui / SMESH / input / prism_3d_algo.doc
index 837923ac1ce8afa4432f89c356aa2d5b322a685a..6d4be7be89942d9ab1c875301c563827ed834f63 100644 (file)
@@ -1,20 +1,88 @@
 /*!
 
-\page prism_3d_algo_page 3D extrusion meshing algorithm
+\page prism_3d_algo_page Extrusion 3D meshing algorithm
 
-3D extrusion algorithm can be used for meshing prisms, i.e. <b>3D Shapes</b>
+Extrusion 3D algorithm can be used for meshing prisms, i.e. 3D shapes
 defined by two opposing faces having the same number of vertices and
-edges and meshed using the \ref projection_algos_page "2D Projection"
-algorithm. These two faces should be connected by quadrangle "side"
-faces.
+edges. These two faces should be connected by quadrangle "side" faces.
 
-The opposing faces can be meshed with either quadrangles or triangles,
-while the side faces should be meshed with quadrangles only.
+\image html prism_mesh.png "Clipping view of a mesh of a prism with non-planar base and top faces"
 
-\image html image157.gif "Prism with 3D extrusion meshing".
+The prism is allowed to have sides composed of several faces. (A prism
+side is a row of faces (or one face) connecting the corresponding edges of
+the top and base faces). However, a prism 
+side can be split only vertically as indicated in the
+picture below. 
 
-As you can see, the <b>3D extrusion</b> algorithm permits to build and to
-have in the same 3D mesh such elements as hexahedrons, prisms and
-polyhedrons.
+\image html prism_ok_ko.png "A suitable and an unsuitable prism"
+In this picture, the left prism is suitable for meshing with 3D
+extrusion algorithm: it has six sides, two of which are split
+vertically. The right prism cannot be meshed with this
+algorithm because one of the prism sides is split horizontally (the
+splitting edge is highlighted).
 
-*/
\ No newline at end of file
+The algorithm can propagate 2D mesh not only between horizontal
+(i.e. base and top) faces of one prism but also between faces of prisms
+organized in a stack and between stacks sharing prism sides.
+
+\image html prism_stack.png "Prism stacks"
+This picture shows four neighboring prism stacks, each comprising two prisms.
+The shown sub-mesh is used by the algorithm to mesh
+all eight prisms in the stacks.
+
+To use <em>Extrusion 3D</em> algorithm you need to assign algorithms
+and hypotheses of lower dimensions as follows.
+(A sample picture below shows algorithms and hypotheses used to
+mesh a cylinder with prismatic volumes).
+
+\image html prism_needs_hyps.png 
+
+The \b Global algorithms and hypotheses to be chosen at 
+\ref create_mesh_anchor "Creation of a mesh object" are:
+<ul>
+<li> 1D algorithm and hypothesis that will be applied for meshing
+  (logically) vertical edges of the prism (which connect the top and the
+  base faces of the prism). In the sample picture above these are
+  "Regular_1D" algorithm and "Number of Segments" hypothesis named "Vertical
+  Nb. Segments".</li>
+</ul>
+
+The \b Local algorithms and hypotheses to be chosen at 
+\ref constructing_submeshes_page "Construction of sub-meshes" are:
+<ul>
+  <li> 1D and 2D algorithms and hypotheses that will be applied for
+    meshing the top and the base prism
+    \ref submesh_shape_section "faces". These faces can be meshed
+    with any type of 2D elements: quadrangles, triangles, polygons or
+    their mix. It is enough to define a sub-mesh on either the top or
+    the base face. In the sample picture above, "NETGEN_1D2D"
+    algorithm meshes "bottom disk" face with triangles. (1D algorithm
+    is not assigned as "NETGEN_1D2D" does not require divided edges to
+    create a 2D mesh.)
+  </li>
+  <li> Optionally you can define a 1D sub-mesh on some vertical
+    \ref submesh_shape_section "edges" of stacked prisms, which will
+    override the global 1D hypothesis mentioned above. In the <b>Prism
+    stacks</b> picture, the vertical division is not equidistant on
+    the whole length because a "Number Of Segments" hypothesis with
+    Scale Factor=3 is assigned to the highlighted edge.
+</li></ul>
+
+If <em>Extrusion 3D</em> algorithm is assigned to a sub-mesh in a mesh
+with multiple sub-meshes, the described above approach may not work as
+expected. For example the bottom face may be meshed by other algorithm
+before <em>Extrusion 3D</em> have a chance to project a mesh from the
+base face. This thing can happen with vertical edges as well. All
+these can lead to either a meshing failure or to an incorrect meshing.
+
+In such a case, it's necessary to explicitly define algorithms
+that <em>Extrusion 3D</em> implicitly applies in a simple case:
+- assign \ref projection_1D2D algorithm to the top face and
+- assign a 1D algorithm to a group of all vertical edges.
+
+\image html image157.gif "Prism with Extrusion 3D meshing. Vertical division is different on neighbor edges because several local 1D hypotheses are assigned."
+
+\sa a sample TUI Script of
+\ref tui_prism_3d_algo "Use Extrusion 3D meshing algorithm".
+
+*/