Salome HOME
Redesign SALOME documentation
[modules/smesh.git] / doc / salome / gui / SMESH / input / constructing_meshes.doc
diff --git a/doc/salome/gui/SMESH/input/constructing_meshes.doc b/doc/salome/gui/SMESH/input/constructing_meshes.doc
deleted file mode 100644 (file)
index 2481807..0000000
+++ /dev/null
@@ -1,483 +0,0 @@
-/*!
-
-\page constructing_meshes_page Constructing meshes
-
-To create a mesh on geometry, it is necessary to create a mesh object by choosing
-- a geometrical shape produced in the Geometry module (<em>main shape</em>);
-- <em>meshing parameters</em>, including 
-  - \ref basic_meshing_algos_page "meshing algorithms" and
-  - \ref about_hypo_page "hypotheses" specifying constraints to be
-    taken into account by the chosen meshing algorithms.
-
-Then you can launch mesh generation by invoking \ref compute_anchor "Compute" command.
-The generated mesh will be automatically shown in the Viewer. You can
-switch off automatic visualization or limit mesh size until which it is
-automatically shown in \ref mesh_preferences_page (<em>Automatic update</em> entry).
-
-\note Sometimes \a hypotheses term is used to refer to both algorithms
-and hypotheses.
-
-Mesh generation on the geometry is performed in the bottom-up
-flow: nodes on vertices are created first, then edges are divided into
-segments using nodes on vertices; the nodes of segments are then
-used to mesh faces; then the nodes of faces are used to mesh
-solids. This automatically assures the conformity of the mesh.
-
-It is required to choose a meshing algorithm for every dimension of
-sub-shapes up to the highest dimension to be generated. Note
-that some algorithms generate elements of several dimensions, and
-others of only one. It is not necessary to define meshing
-parameters for all dimensions at once; you can start from 1D
-meshing parameters only, compute the 1D mesh, then define 2D meshing
-parameters and compute the 2D mesh (note that 1D mesh will not be
-re-computed).
-
-An algorithm of a certain dimension chosen at mesh creation is applied
-to discretize every sub-shape of this dimension. It is possible to
-specify a different algorithm or hypothesis to be applied to one or
-a group of sub-shapes by creating a \ref constructing_submeshes_page
-"sub-mesh". You can specify no algorithms at all at mesh object
-creation and specify the meshing parameters on sub-meshes only; then
-only the sub-shapes, for which an algorithm and a hypothesis (if any)
-have been defined will be discretized.
-
-\n Construction of a mesh on a geometry includes at least two 
-(\ref create_mesh_anchor "mesh creation" and
-\ref compute_anchor "computing") of the following steps:
-<ul>
-  <li> \ref create_mesh_anchor "Creation of a mesh object", where you
-  can specify meshing parameters to apply to all sub-shapes of the
-  main shape.</li>
-  <li> \ref constructing_submeshes_page "Creation of sub-meshes",
-  (optional) where you can specify meshing parameters to apply to the
-  selected sub-shapes.</li>
-  <li> \ref evaluate_anchor "Evaluating mesh size" (optional) can be
-  used to know an approximate number of elements before their actual generation.</li>
-  <li> \ref preview_anchor "Previewing the mesh" (optional) can be
-  used to generate mesh of only lower dimension(s) in order to
-  visually estimate it before full mesh generation, which can be much
-  longer.</li>
-  <li> \ref submesh_order_anchor "Changing sub-mesh priority"
-  (optional) can be useful if there are concurrent sub-meshes
-  defined.</li>
-  <li> \ref compute_anchor "Computing the mesh" uses defined meshing
-  parameters to generate mesh elements.</li>
-  <li> \ref edit_anchor "Editing the mesh" (optional) can be used to
-  \ref modifying_meshes_page "modify" the mesh of a lower dimension before
-  \ref compute_anchor "computing" elements of an upper dimension.</li>
-</ul>
-
-\anchor create_mesh_anchor
-<h2>Creation of a mesh object</h2>
-<em>To construct a mesh:</em>
-<ol>
-  <li>Select a geometrical object for meshing.</li>
-  <li>In the \b Mesh menu select <b>Create Mesh</b> or click <em>"Create
-      Mesh"</em> button in the toolbar. 
-
-    <center>
-    \image html image32.png
-    <em>"Create Mesh" button</em>
-    </center>
-
-    The following dialog box will appear: 
-
-    \image html createmesh-inv.png
-    <br>
-  </li>
-  <li> To filter off irrelevant meshing algorithms, you can
-    select <b>Mesh Type</b> in the corresponding list from <b>Any,
-      Hexahedral, Tetrahedral, Triangular </b> and \b Quadrilateral (there
-    can be less items for the geometry of lower dimensions).
-
-    Selection of a mesh type hides all meshing algorithms that cannot
-    generate elements of this type.</li>
-
-  <li>Apply \subpage basic_meshing_algos_page "meshing algorithms" and
-    \subpage about_hypo_page "hypotheses" which will be used to compute
-    this mesh.
-
-    "Create mesh" dialog box contains several tab pages titled \b 3D,
-    \b 2D, \b 1D and \b 0D. The title of each page reflects the
-    dimension of the sub-shapes the algorithms listed on
-    this page affect and the maximal dimension of elements the algorithms
-    generate. For example, \b 3D page lists the algorithms that affect
-    3D sub-shapes (solids) and generate 3D mesh elements
-    (tetrahedra, hexahedra etc.)
-
-    As soon as you have selected an algorithm, you can create a
-    hypothesis (or select an already created one). A set of accessible
-    hypotheses includes only the hypotheses that can be used by the
-    selected algorithm.
-
-    \note
-    - Some page(s) can be disabled if the geometrical
-    object does not include shapes (sub-shapes) of the corresponding
-    dimension(s). For example, if the input object is a geometrical face,
-    \b 3D page is disabled.
-    - Some algorithms affect the geometry of several dimensions,
-    i.e. 1D+2D or 1D+2D+3D. If such an algorithm is selected, the
-    dialog pages related to the corresponding lower dimensions are
-    disabled.
-    - \b 0D page refers to 0D geometry (vertices) rather than
-    to 0D elements. Mesh module does not provide algorithms that
-    produce 0D elements. Currently \b 0D page provides only one
-    algorithm "Segments around vertex" that allows specifying the required
-    size of mesh edges about the selected vertex (or vertices).
-
-    For example, you need to mesh a 3D object.
-
-    First, you can change a default name of your mesh in the \b Name
-    box. Then check that the selected geometrical object indicated in
-    \b Geometry field, is what you wish to mesh; if not, select
-    the correct object in the Object Browser. Click "Select" button
-    near \b Geometry field if the name of the object has not yet
-    appeared in \b Geometry field.
-    <center>
-    \image html image120.png
-    <em>"Select" button</em>
-    </center>
-
-    Now you can define 3D Algorithm and 3D Hypotheses, which will be
-    applied to discretize the solids of your geometrical object using
-    3D elements. Click the <em>"Add Hypothesis"</em> button to create
-    and add a hypothesis.
-    <center>
-    \image html image121.png
-    <em>"Add Hypothesis" button</em>
-    </center>
-    Click the <em>"Plus"</em> button to enable adding more additional hypotheses.
-
-    Click the <em>"Edit Hypothesis"</em> button to change the values for the
-    current hypothesis.
-    <center>
-    \image html image122.png
-    <em>"Edit Hypothesis" button</em>
-    </center>
-
-    Most 2D and 3D algorithms can work without hypotheses using
-    default meshing parameters. Some algorithms do not require any
-    hypotheses. After selection of an algorithm "Hypothesis" field of
-    the dialog can contain:
-    <ul>
-      <li> <em>\<Default\></em> if the algorithm can work using default
-      parameters.</li>
-      <li> <em>\<None\></em> if the algorithm requires a hypothesis defining
-      its parameters.</li>
-      <li> If the algorithm does not use hypotheses, this field is grayed.</li>
-    </ul>
-    After selection of an algorithm <b>Add. Hypothesis</b> field can contain:
-    <ul>
-      <li> <em>\<None\></em> if the algorithm can be tuned
-      using an additional hypothesis.</li>
-      <li> If the algorithm does not use additional hypotheses, this field is grayed.</li>
-    </ul>
-
-    Proceed in the same way with 2D and 1D Algorithms and Hypotheses that
-    will be used to mesh faces and edges of your geometry. (Note
-    that any object has edges, even if their existence is not
-    apparent, for example, a sphere has 4 edges). Note that the
-    choice of hypotheses and lower dimension algorithms depends on
-    the higher dimension algorithm.
-
-    If you wish you can select other algorithms and/or hypotheses
-    for meshing some sub-shapes of your CAD model by \ref constructing_submeshes_page.
-
-    Some algorithms generate mesh of several dimensions, while others
-    produce mesh of only one dimension. In the latter case there must
-    be one Algorithm and zero or several
-    Hypotheses for each dimension of your object, otherwise you will
-    not get any mesh at all. Of course, if you wish to mesh a face,
-    which is a 2D object, you do not need to define a 3D Algorithm and
-    Hypotheses.
-
-    In the <b>Object Browser</b> the structure of the new mesh is
-    displayed as follows:
-    \image html image88.jpg
-    It contains: 
-    <ul>
-      <li>a mesh name (<em>Mesh_mechanic</em>);
-      <li>a reference to the geometrical object on the basis of
-        which the mesh has been constructed (\a mechanic);</li> 
-      <li><b>Applied hypotheses</b> folder containing the references
-        to the hypotheses chosen at the construction of the mesh;</li>
-      <li><b>Applied algorithms</b> folder containing the references
-        to the algorithms chosen at the construction of the mesh.</li> 
-      <li><b>SubMeshes on Face</b> folder containing the sub-meshes
-        defined on geometrical faces. There also can be folders for
-        sub-meshes on vertices, edges, wires, shells, solids and
-        compounds.</li>
-      <li><b>Groups of Faces</b> folder containing the groups of mesh
-        faces. There also can be folders for groups of nodes, edges,
-        volumes 0D elements and balls.</li>
-    </ul>
-
-    There is an alternative way to assign Algorithms and Hypotheses by
-    clicking <b>Assign a set of hypotheses</b> button and selecting among
-    pre-defined sets of algorithms and hypotheses. In addition to the built-in
-    sets of hypotheses, it is possible to create custom sets by editing
-    CustomMeshers.xml file located in the home directory. CustomMeshers.xml
-    file must describe sets of hypotheses in the
-    same way as ${SMESH_ROOT_DIR}/share/salome/resources/smesh/StdMeshers.xml 
-    file does (sets of hypotheses are enclosed between \<hypotheses-set-group\>
-      tags). For example:
-~~~~~~{.xml}
-    <?xml version='1.0' encoding='us-ascii'?>
-    <!DOCTYPE meshers PUBLIC "" "desktop.dtd">
-    <meshers>
-    <hypotheses-set-group>
-        <hypotheses-set name="My favorite hypotheses"
-                        hypos="AutomaticLength"
-                        algos="CompositeSegment_1D, Quadrangle_2D, GHS3D_3D"/>
-    </hypotheses-set-group>
-    </meshers>
-~~~~~~
-    If the file contents are incorrect, there can be an error at
-    activation of Mesh module: <em>"fatal parsing error: error
-    triggered by consumer in line ..."</em>
-<br>
-<center>
-      \image html hypo_sets.png
-      List of sets of hypotheses. Tag <em>[custom]</em> is
-      automatically added to the sets defined by the user.
-</center>
-      \note 
-      - \a "Automatic" in the names of predefined sets of hypotheses
-      does not actually mean that they are suitable for meshing any
-      geometry.
-      - The list of sets of hypotheses can be shorter than in the
-        above image depending on the geometry dimension.
-  </li>
-</ol>
-
-Consider trying a sample script for construction of a mesh from our 
-\ref tui_creating_meshes_page "TUI Scripts" section.
-
-\anchor evaluate_anchor
-<h2>Evaluating mesh size</h2>
-
-After the mesh object is created and all hypotheses are assigned and
-before \ref compute_anchor "Compute" operation, it is possible to
-calculate the eventual mesh size. For this, select the mesh in
-the <b>Object Browser</b> and from the \b Mesh menu select \b
-Evaluate. The result of evaluation will be displayed in the following
-information box: 
-
-\image html mesh_evaluation_succeed.png
-
-\anchor preview_anchor
-<h2>Previewing the mesh</h2>
-
-Before \ref compute_anchor "the mesh computation", it is also possible
-to see the mesh preview. This operation allows to incrementally
-compute the mesh, dimension by dimension, and to discard an
-unsatisfactory mesh.
-
-For this, select the mesh in the Object Browser. From the \b Mesh menu
-select \b Preview or click "Preview" button in the toolbar or activate
-"Preview" item from the pop-up menu.
-
-<center>
-\image html mesh_precompute.png
-<em>"Preview" button</em>
-</center>
-
-Select <b>1D mesh</b> or <b>2D mesh</b> preview mode in the Preview dialog. 
-
-\image html preview_mesh_1D.png "1D mesh preview shows nodes computed on geometry edges"
-<br>
-\image html preview_mesh_2D.png "2D mesh preview shows edge mesh elements, computed on geometry faces"
-
-<b>Compute</b> button computes the whole mesh.
-
-When the Preview dialog is closed, the question about the storage of temporarily
-created mesh elements appears:
-
-\image html preview_tmp_data.png
-
-These elements can be kept in the mesh.
-
-
-\anchor submesh_order_anchor
-<h2>Changing sub-mesh priority</h2>
-
-If the mesh contains concurrent \ref constructing_submeshes_page "sub-meshes", 
-it is possible to change the priority of their computation, i.e. to
-change the priority of applying algorithms to the shared sub-shapes of
-the Mesh shape.
-
-<em>To change sub-mesh priority:</em>
-
-Choose "Change sub-mesh priority" from the Mesh menu or a pop-up
-menu. The opened dialog shows a list of sub-meshes in the order of
-their priority. 
-
-There is an example of sub-mesh order modifications taking a Mesh created on a Box
-shape. The main Mesh object:
-<ul>
-  <li><i>1D</i> <b>Wire discretisation</b> with <b>Number of Segments</b>=20</li>
-  <li><i>2D</i> <b>Triangle: Mefisto</b> with Hypothesis<b>Max Element Area</b>
-  </li>
-</ul>
-The first sub-mesh <b>Submesh_1</b> created on <b>Face_1</b> is:
-<ul>
-  <li><i>1D</i> <b>Wire discretisation</b> with <b>Number of Segments</b>=4</li>
-  <li><i>2D</i> <b>Triangle: Mefisto</b> with Hypothesis <b>MaxElementArea</b>=1200</li>
-</ul>
-The second sub-mesh <b>Submesh_2</b> created on <b>Face_2</b> is:
-<ul>
-  <li><i>1D</i> <b>Wire discretisation</b> with <b>Number of Segments</b>=8</li>
-  <li><i>2D</i> <b>Triangle: Mefisto</b> with Hypothesis <b>MaxElementArea</b>=1200</li>
-</ul>
-
-And the last sub-mesh <b>Submesh_3</b> created on <b>Face_3</b> is:
-<ul>
-  <li><i>1D</i> <b>Wire discretisation</b> with <b>Number of Segments</b>=12</li>
-  <li><i>2D</i> <b>Triangle: Mefisto</b> with Hypothesis <b>MaxElementArea</b>=1200</li>
-</ul>
-
-The sub-meshes become concurrent if they share sub-shapes that can be
-meshed with different algorithms (or different hypotheses). In the
-example, we have three sub-meshes with concurrent algorithms, because
-they have different hypotheses.
-
-The first mesh computation is made with:
-<center>
-\image html mesh_order_123.png
-<em>"Mesh order SubMesh_1, SubMesh_2, SubMesh_3"</em></center>
-<center>
-\image html mesh_order_123_res.png
-<em>"Result mesh with order SubMesh_1, SubMesh_2, SubMesh_3 "</em></center>
-
-The next mesh computation is made with:
-<center>
-\image html mesh_order_213.png
-<em>"Mesh order SubMesh_2, SubMesh_1, SubMesh_3"</em></center>
-<center>
-\image html mesh_order_213_res.png
-<em>"Result mesh with order SubMesh_2, SubMesh_1, SubMesh_3 "</em></center>
-
-And the last mesh computation is made with:
-<center>
-\image html mesh_order_321.png
-<em>"Mesh order SubMesh_3, SubMesh_2, SubMesh_1"</em></center>
-<center>\image html mesh_order_321_res.png
-<em>"Result mesh with order SubMesh_3, SubMesh_2, SubMesh_1 "</em></center>
-
-As we can see, each mesh computation has a different number of result
-elements and a different mesh discretization on the shared edges (the edges 
-that are shared between <b>Face_1</b>, <b>Face_2</b> and <b>Face_3</b>)
-
-Additionally, sub-mesh priority (the order of applied algorithms) can
-be modified not only in a separate dialog box, but also in
-the <b>Preview</b>. This helps to preview different mesh results,
-modifying the order of sub-meshes. 
-<center>
-\image html mesh_order_preview.png
-<em>"Preview with sub-mesh priority list box"</em></center>
-
-If there are no concurrent sub-meshes under the Mesh object, the user
-will see the following information.
-<center>
-\image html mesh_order_no_concurrent.png
-<em>"No concurrent submeshes detected"</em></center>
-
-
-\anchor compute_anchor
-<h2>Computing the mesh</h2>
-
-It is equally possible to skip  \ref evaluate_anchor "the Evaluation"
-and \ref preview_anchor "the Preview" and to \b Compute the mesh after
-the hypotheses are assigned. For this, select your mesh in
-the <b>Object Browser</b>. From the \b Mesh menu or the context menu
-select \b Compute or click \a "Compute" button of the toolbar.
-
-<center>
-\image html image28.png
-<em>"Compute" button</em>
-</center>
-
-After the mesh computation finishes, the Mesh Computation information
-box appears. If you close this box and click "Compute" button again,
-without previously changing meshing parameters, the mesh will NOT be
-re-computed and the Mesh Computation information box will be shown
-with the same contents. (To fully re-compute the mesh, invoke 
-\ref clear_mesh_anchor "Clear Mesh Data" command before). 
-
-\anchor meshing_result_anchor
-If the mesh computation has been a success, the box shows information
-on the number of entities of different types in the mesh.
-
-\image html meshcomputationsucceed.png
-
-\anchor meshing_failed_anchor
-If the mesh computation has failed, the information about the cause of the
-failure is provided in \b Errors table.
-
-\image html meshcomputationfail.png
-
-After you select an error in \b Errors table, <b>Show Sub-shape</b> button allows
-visualizing in magenta the geometrical entity meshing of which failed
-(Name of this entity or its ID and type is shown in \a Sub-shape column).
-
-<center>
-\image html failed_computation.png 
-<em>3D algorithm failed to compute mesh on a box shown using <b>Show
-    Sub-shape</b> button</em>
-</center>
-
-<b>Publish Sub-shape</b> button publishes the sub-shape, whose meshing
-has failed, in the Geometry component as a child of the main shape, which
-allows analyzing the problematic geometry and creating a sub-mesh on it in
-order to locally tune the hypotheses.
-
-If the failure is caused by an invalid input mesh and the algorithm has
-found which mesh entities are bad, <b>Show bad Mesh</b> 
-button appears in the dialog. Clicked, it shows the bad mesh entities in
-the Viewer in magenta. Sometimes the shown mesh entities are too small
-or/and hidden by other mesh elements. They can be seen after
-switching the mesh to Wireframe visualization mode or switching off
-the visualization of faces and volumes (if any).
-
-<b>Bad Mesh to Group</b> button creates groups of bad mesh entities
-to facilitate their analysis.
-
-<center>
-\image html show_bad_mesh.png
-<em>Edges bounding a hole in the surface are shown in magenta using <b>Show
-    bad Mesh</b> button</em>
-</center>
-
-\note Mesh Computation Information box does not appear if you set
-\ref show_comp_result_pref "Mesh computation/Show a computation result notification" preference 
-to the "Never" value. This option gives the possibility to control mesh
-computation reporting. There are the following possibilities: always
-show the information box, show only if an error occurs or never. 
-By default, the information box is always shown after mesh computation operation.
-
-<p><p>
-\anchor edit_anchor
-<h2>Editing the mesh</h2>
-
-It is possible to \ref modifying_meshes_page "edit the mesh" of a 
-lower dimension before generation of the mesh of a higher dimension.
-
-For example you can generate a 2D mesh, modify it using e.g. 
-\ref pattern_mapping_page, and then generate a 3D mesh basing on the
-modified 2D mesh. The workflow is as follows:
-- Define 1D and 2D meshing algorithms.
-- Compute the mesh. 2D mesh is generated.
-- Apply \ref pattern_mapping_page.
-- Define 3D meshing algorithms without modifying 1D and 2D algorithms
-and hypotheses.
-- Compute the mesh. 3D mesh is generated.
-
-\note Nodes and elements added \ref adding_nodes_and_elements_page
-"manually" cannot be used in this workflow because the manually created
-entities are not attached to any geometry and thus (usually) cannot be
-found by the mesher paving a geometry.
-
-<b>See Also</b> a sample TUI Script demonstrates the possibility of 
-\ref tui_editing_while_meshing "Intermediate edition while meshing"
-
-*/