X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=doc%2Fsalome%2Fgui%2FSMESH%2Finput%2Fconstructing_meshes.doc;h=2481807fd0888fdda36ee1c0c880f28b4a8cb8c0;hp=995ee43774abdcd2c90ffa944fbd091afb08a435;hb=f6825d843153c333e95e1345ef7c7fc2d0fe5698;hpb=79b1ac2b6df9117f16f11d444b1f165d477a1813 diff --git a/doc/salome/gui/SMESH/input/constructing_meshes.doc b/doc/salome/gui/SMESH/input/constructing_meshes.doc index 995ee4377..2481807fd 100644 --- a/doc/salome/gui/SMESH/input/constructing_meshes.doc +++ b/doc/salome/gui/SMESH/input/constructing_meshes.doc @@ -2,111 +2,482 @@ \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. +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 (Automatic update 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: +\anchor create_mesh_anchor +

Creation of a mesh object

To construct a mesh:
    -
  1. In the \b Mesh menu select Create Mesh or click "Create -Mesh" button in the toolbar. +
  2. Select a geometrical object for meshing.
  3. +
  4. 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 +
    +
  5. +
  6. 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.
  7. + +
  8. 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: + + After selection of an algorithm Add. Hypothesis field can contain: + + + 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: + + + 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. +
  9. +
+ +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.gif -
"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.gif -
    "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.gif -
    "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.gif -
    "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: + +The first sub-mesh Submesh_1 created on Face_1 is: + +The second sub-mesh Submesh_2 created on Face_2 is: -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: + + +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"
    -\image html image28.gif -
    "Compute" button
    +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"
    -The Mesh Computation information box appears. + +\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 +
    + +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 -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 mesh elements that cause 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 +
    +\image html failed_computation.png +3D algorithm failed to compute mesh on a box shown using Show + Sub-shape button +
    -Publish Subshape button allows importing it in a separate MED -or UNV file. +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. -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. +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). -Consider trying a sample script for construction of a mesh from our -\ref tui_creating_meshes_page "TUI Scripts" section. -
  • - +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 +\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. + +

    +\anchor edit_anchor +

    Editing the mesh

    + +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. + +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 +*/