X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=doc%2Fsalome%2Fgui%2FSMESH%2Finput%2Fconstructing_meshes.doc;h=2ec8a49878fa121577843d32121c0b28324a3421;hb=762641c5edac12dcbb64246bef97a34cf39e1f45;hp=d62feac7cc5102ef33d3a00a1ae361877ac6e11f;hpb=0635c9fc80f67d1e5dc0e94ec85f487286a92070;p=modules%2Fsmesh.git
diff --git a/doc/salome/gui/SMESH/input/constructing_meshes.doc b/doc/salome/gui/SMESH/input/constructing_meshes.doc
index d62feac7c..2ec8a4987 100644
--- a/doc/salome/gui/SMESH/input/constructing_meshes.doc
+++ b/doc/salome/gui/SMESH/input/constructing_meshes.doc
@@ -2,120 +2,478 @@
\page constructing_meshes_page Constructing meshes
-\n Construction of a mesh consists of:
+To create a mesh on geometry, it is necessary to create a mesh object by choosing
+- a geometrical shape produced in the Geometry module (main shape);
+- meshing parameters, 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.
+
+\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 node 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:
-- Selecting a geometrical object for meshing
-- Applying \subpage basic_meshing_algos_page "meshing algorithms" and
-\subpage about_hypo_page "hypotheses" which will be used at computation of
-this mesh.
+ - \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.
+ - \ref constructing_submeshes_page "Creation of sub-meshes",
+ (optional) where you can specify meshing parameters to apply to the
+ selected sub-shapes.
+ - \ref evaluate_anchor "Evaluating mesh size" (optional) can be
+ used to know an approximate number of elements before their actual generation.
+ - \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.
+ - \ref submesh_order_anchor "Changing sub-mesh priority"
+ (optional) can be useful if there are concurrent sub-meshes
+ defined.
+ - \ref compute_anchor "Computing the mesh" uses defined meshing
+ parameters to generate mesh elements.
+ - \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.
+\anchor create_mesh_anchor
+Creation of a mesh object
To construct a mesh:
-- In the \b Mesh menu select Create Mesh or click "Create
-Mesh" button in the toolbar.
+
- Select a geometrical object for meshing.
+ - In the \b Mesh menu select Create Mesh or click "Create
+ Mesh" button in the toolbar.
+
+
+ \image html image32.png
+ "Create Mesh" button
+
+
+ The following dialog box will appear:
+
+ \image html createmesh-inv.png
+
+
+ - To filter off irrelevant meshing algorithms, you can
+ select Mesh Type in the corresponding list from Any,
+ Hexahedral, Tetrahedral, Triangular 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.
+
+ - 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.
+
+ \image html image120.png
+ "Select" button
+
+
+ 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 "Add Hypothesis" button to create
+ and add a hypothesis.
+
+ \image html image121.png
+ "Add Hypothesis" button
+
+ Click the "Plus" button to enable adding more additional hypotheses.
+
+ Click the "Edit Hypothesis" button to change the values for the
+ current hypothesis.
+
+ \image html image122.png
+ "Edit Hypothesis" button
+
+
+ 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:
+
+ - \ if the algorithm can work using default
+ parameters.
+ - \ if the algorithm requires a hypothesis defining
+ its parameters.
+ - If the algorithm does not use hypotheses, this field is grayed.
+
+ After selection of an algorithm Add. Hypothesis field can contain:
+
+ - \ if the algorithm can be tuned
+ using an additional hypothesis.
+ - If the algorithm does not use additional hypotheses, this field is grayed.
+
+
+ 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 Object Browser the structure of the new mesh is
+ displayed as follows:
+ \image html image88.jpg
+ It contains:
+
+ - a mesh name (Mesh_mechanic);
+
- a reference to the geometrical object on the basis of
+ which the mesh has been constructed (\a mechanic);
+ - Applied hypotheses folder containing the references
+ to the hypotheses chosen at the construction of the mesh;
+ - Applied algorithms folder containing the references
+ to the algorithms chosen at the construction of the mesh.
+ - SubMeshes on Face 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.
+ - Groups of Faces folder containing the groups of mesh
+ faces. There also can be folders for groups of nodes, edges,
+ volumes 0D elements and balls.
+
+
+ There is an alternative way to assign Algorithms and Hypotheses by
+ clicking Assign a set of hypotheses 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 \
+ tags). For example:
+~~~~~~{.xml}
+
+
+
+
+
+
+
+~~~~~~
+ If the file contents are incorrect, there can be an error at
+ activation of Mesh module: "fatal parsing error: error
+ triggered by consumer in line ..."
+
+
+ \image html hypo_sets.png
+ List of sets of hypotheses. Tag [custom] is
+ automatically added to the sets defined by the user.
+
+ \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.
+
+
+
+Consider trying a sample script for construction of a mesh from our
+\ref tui_creating_meshes_page "TUI Scripts" section.
+
+\anchor evaluate_anchor
+Evaluating mesh size
+
+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 Object Browser 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
-\image html image32.png
-"Create Mesh" button
+\anchor preview_anchor
+Previewing the mesh
-The following dialog box will appear:
+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.
-\image html createmesh-inv.png
-
-For example, you need to mesh a 3d object.
-\n First, type the name for your mesh in the "Name" box, by default,
-it is "Mesh_1". Then select the object you wish to mesh in the Object
-Browser and click the "Add" button.
+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.
-\image html image120.png
-"Add" button
+
+\image html mesh_precompute.png
+"Preview" button
+
-Now you can define 1d Algorithm and 1d Hypotheses, which will be
-applied to the edges of your object. (Note that any object has edges,
-even if their existence is not apparent, for example, a sphere has 4
-edges). Click the "Add Hypothesis" button to add a hypothesis.
+Select 1D mesh or 2D mesh preview mode in the Preview dialog.
-\image html image121.png
-"Add Hypothesis" button
+\image html preview_mesh_1D.png "1D mesh preview shows nodes computed on geometry edges"
+
+\image html preview_mesh_2D.png "2D mesh preview shows edge mesh elements, computed on geometry faces"
-Click the "Edit Hypothesis" button to define values for the
-current hypothesis.
+Compute button computes the whole mesh.
-\image html image122.png
-"Edit Hypothesis" button
+When the Preview dialog is closed, the question about the storage of temporarily
+created mesh elements appears:
-The use of additional hypotheses is optional (i.e. you may leave
-"None" in this box).
+\image html preview_tmp_data.png
-Proceed in the same way with 2d and 3d Algorithms and Hypotheses, note
-that the choice of hypotheses depends on the algorithm. There must be
-one Algorithm and one 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 don't need to define 3d
-Algorithm and Hypotheses.
-\n In the Object Browser the structure of the new mesh will be
-displayed as follows:
+These elements can be kept in the mesh.
-\image html image88.jpg
-It contains:
+\anchor submesh_order_anchor
+Changing sub-mesh priority
+
+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.
+
+To change sub-mesh priority:
+
+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:
+
+ - 1D Wire discretisation with Number of Segments=20
+ - 2D Triangle (Mefisto) with HypothesisMax Element Area
+
+
+The first sub-mesh Submesh_1 created on Face_1 is:
+
+ - 1D Wire discretisation with Number of Segments=4
+ - 2D Triangle (Mefisto) with Hypothesis MaxElementArea=1200
+
+The second sub-mesh Submesh_2 created on Face_2 is:
-- a reference to the geometrical object on the basis of which the mesh has been constructed;
-- Applied hypotheses folder containing the references to the
-hypotheses applied to the construction of the mesh;
-- Applied algorithms folder containing the references to the
-algorithms applied to the construction of the mesh.
+ - 1D Wire discretisation with Number of Segments=8
+ - 2D Triangle (Mefisto) with Hypothesis MaxElementArea=1200
-There is an alternative way to create a mesh on an object simply by
-clicking Assign a set of hypotheses button and selecting between
-Automatic Tetrahedralization or Hexahedralization. The program will
-automatically generate a 3D mesh with the most appropriate
-settings. In the same way you can apply this functionality for meshing
-2D objects, in which case 3D algorithms are not applied.
-Now, when everything is ready, select your mesh in the Object
-Browser. From the \b Mesh menu select \b Compute or click "Compute" button of the
-toolbar.
+And the last sub-mesh Submesh_3 created on Face_3 is:
+
+ - 1D Wire discretisation with Number of Segments=12
+ - 2D Triangle (Mefisto) with Hypothesis MaxElementArea=1200
+
+
+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:
+
+\image html mesh_order_123.png
+"Mesh order SubMesh_1, SubMesh_2, SubMesh_3"
+
+\image html mesh_order_123_res.png
+"Result mesh with order SubMesh_1, SubMesh_2, SubMesh_3 "
+
+The next mesh computation is made with:
+
+\image html mesh_order_213.png
+"Mesh order SubMesh_2, SubMesh_1, SubMesh_3"
+
+\image html mesh_order_213_res.png
+"Result mesh with order SubMesh_2, SubMesh_1, SubMesh_3 "
+
+And the last mesh computation is made with:
+
+\image html mesh_order_321.png
+"Mesh order SubMesh_3, SubMesh_2, SubMesh_1"
+\image html mesh_order_321_res.png
+"Result mesh with order SubMesh_3, SubMesh_2, SubMesh_1 "
+
+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 Face_1, Face_2 and Face_3)
+Additionally, sub-mesh priority (the order of applied algorithms) can
+be modified not only in a separate dialog box, but also in
+the Preview. This helps to preview different mesh results,
+modifying the order of sub-meshes.
+
+\image html mesh_order_preview.png
+"Preview with sub-mesh priority list box"
+
+If there are no concurrent sub-meshes under the Mesh object, the user
+will see the following information.
+
+\image html mesh_order_no_concurrent.png
+"No concurrent submeshes detected"
+
+
+\anchor compute_anchor
+Computing the mesh
+
+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 Object Browser. From the \b Mesh menu or the context menu
+select \b Compute or click \a "Compute" button of the toolbar.
+
+
\image html image28.png
-"Compute" button
+"Compute" button
+
+
+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).
-The Mesh Computation information box appears.
+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
-If the mesh computation failed, the information about the cause of the
-failure is provided.
+\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 the error, Show Subshape button allows
-visualizing the geometrical entity that causes it.
+After you select an error in \b Errors table, Show Sub-shape 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).
+
+
+\image html failed_computation.png
+3D algorithm failed to compute mesh on a box shown using Show
+ Sub-shape button
+
+
+Publish Sub-shape 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.
-\image html failed_computation.png "Example of the invalid input mesh"
+If the failure is caused by an invalid input mesh and the algorithm has
+found which mesh entities are bad, Show bad Mesh
+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).
-\Note Mesh Computation Information box does not appear if you set
+Bad Mesh to Group button creates groups of bad mesh entities
+to facilitate their analysis.
+
+
+\image html show_bad_mesh.png
+Edges bounding a hole in the surface are shown in magenta using Show
+ bad Mesh button
+
+
+\note Mesh Computation Information box does not appear if you set
"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 information box, only if an error occurs or never.
+show the information box, show only if an error occurs or never.
By default, the information box is always shown after mesh computation operation.
-Publish Subshape button publishes the subshape, whose meshing
-failed, in GEOM component as a child of the mesh geometry, which
-allows analyzing the problem geometry and creating a submesh on it in
-order to locally tune hypotheses.
+
+\anchor edit_anchor
+
Editing the mesh
-NOTE It is possible to define a 1D or a 2D mesh in a
-python script and then use such submeshes in the construction of a 3D
-mesh. For this, there exist two algorithms: Use existing edges and Use
-existing faces. They are not entirely usable from the GUI, so a
-mesh created using these algorithms should be exported into a python
-script, edited and then imported into the GUi.
+It is possible to \ref modifying_meshes_page "edit the mesh" of a
+lower dimension before generation of the mesh of a higher dimension.
-Consider trying a sample script for construction of a mesh from our
-\ref tui_creating_meshes_page "TUI Scripts" section.
-
-
+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.
+
+See Also a sample TUI Script demonstrates the possibility of
+\ref tui_editing_while_meshing "Intermediate edition while meshing"
-*/
\ No newline at end of file
+*/