Salome HOME
Merge multi-study removal branch.
[modules/smesh.git] / doc / salome / gui / SMESH / input / prism_3d_algo.doc
index 5589ba3a761c8199ea4716deab69ce9cacb9ad88..6d4be7be89942d9ab1c875301c563827ed834f63 100644 (file)
@@ -1,24 +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
 defined by two opposing faces having the same number of vertices and
-edges and meshed using, for example,  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).
 
 
-\note This algorithm works correctly only if the opposing faces have
-the same (or similar) meshing topography. Otherwise, 3D extrusion
-algorithm can fail to build mesh volumes.
+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".
 
 */
 
 */