@@ -69,29 +67,5 @@ shows the good (left) and the bad (right) results of meshing.
See Also a sample TUI Script of a
\ref tui_quadrangle_parameters "Quadrangle Parameters" hypothesis.
-\anchor quadrangle_preference_anchor
-
Quadrangle Preference
-
-This algorithm can be used together with Quadrangle (Mapping) and Netgen 2D
-algorithms.
-
-It allows Netgen 2D to build quadrangular meshes at any conditions.
-
-It allows Quadrangle (Mapping) to build quadrangular meshes even if the number
-of nodes at the opposite edges of a meshed face is not equal,
-otherwise this mesh will contain some triangular elements.
-
-This hypothesis has one restriction on its work: the total quantity of
-segments on all four sides of the face must be even (divisible by 2).
-
-
-
-\anchor triangle_preference_anchor
-
Triangle Preference
-
-This algorithm can be used only together with Quadrangle (Mapping)
-algorithm. It allows to build triangular mesh faces in the refinement
-area if the number of nodes at the opposite edges of a meshed face is not equal,
-otherwise refinement area will contain some quadrangular elements.
*/
diff --git a/doc/salome/gui/SMESH/input/about_hypo.doc b/doc/salome/gui/SMESH/input/about_hypo.doc
index 9d9db7b32..0e8ac1007 100644
--- a/doc/salome/gui/SMESH/input/about_hypo.doc
+++ b/doc/salome/gui/SMESH/input/about_hypo.doc
@@ -55,6 +55,8 @@ with other hypotheses:
Propagation of 1D Hypothesis on opposite edges
Non conform mesh allowed
Quadratic mesh
+
Quadrangle preference
+
Triangle preference
The choice of a hypothesis depends on:
diff --git a/doc/salome/gui/SMESH/input/adding_nodes_and_elements.doc b/doc/salome/gui/SMESH/input/adding_nodes_and_elements.doc
index 451823b74..5c99e8e79 100644
--- a/doc/salome/gui/SMESH/input/adding_nodes_and_elements.doc
+++ b/doc/salome/gui/SMESH/input/adding_nodes_and_elements.doc
@@ -26,10 +26,25 @@ following associated submenu will appear:
\image html image146.png
From this submenu select the type of element which you would like to add to your mesh.
-\note All dialogs intended for adding nodes or elements to mesh (except dialog for adding
-0D elements) provide a possibility to add these nodes/elements to the specified group
-(or to create the group if it doesn't exist). Add to group box allows to choose
-an existing group for created node or element or to specify a name for new group.
+
+\note All dialogs for adding new node or element to the mesh (except for
+the dialog for 0D elements) provide a possibility to add it
+automatically to the specified group or to create it anew using
+Add to group box, that allows to choose an existing group for
+the created node or element or to give the name to a new group. By
+default, the Add to group check box is switched off. If user
+swiches this check box on, the combo box listing all currently
+existing groups of the corresponding type becomes available. By
+default, no any group is selected. In such a case, when user presses
+Apply or Apply & Close button, the warning message box
+informing the user about the necessity to input new group name is
+shown. The combo box lists both \ref standalone_group "standalone groups"
+and \ref group_on_geom "groups on geometry". If the user has
+chosen the group on geometry, he is warned and proposed to
+\ref convert_to_standalone "convert this group to the standalone".
+If user refuses converting operation, an operation is cancelled and
+new node/element is not created!
+
See Also sample TUI Scripts of
diff --git a/doc/salome/gui/SMESH/input/adding_quadratic_elements.doc b/doc/salome/gui/SMESH/input/adding_quadratic_elements.doc
index 2a587d147..83736c85d 100644
--- a/doc/salome/gui/SMESH/input/adding_quadratic_elements.doc
+++ b/doc/salome/gui/SMESH/input/adding_quadratic_elements.doc
@@ -2,7 +2,7 @@
\page adding_quadratic_elements_page Adding Quadratic Elements
-\n MESH modules allows you to work with Quadratic Elements.
+\n MESH module allows you to work with Quadratic Elements.
Quadratic Edge is not a straight but a broken line and can be defined
by three points: first, middle and last. All more complex \b Quadratic
@@ -18,10 +18,24 @@ one of the following:
\image html image152.png
-\note All dialogs intended for adding quadratic elements to mesh provide a possibility
-to add these elements to the specified group (or to create the group if it doesn't exist).
-Add to group box allows to choose an existing group for created element or
-to specify a name for new group.
+\note All dialogs for adding quadratic element to the mesh
+provide a possibility to add new element
+automatically to the specified group or to create it anew using
+Add to group box, that allows to choose an existing group for
+the created node or element or to give the name to a new group. By
+default, the Add to group check box is switched off. If user
+swiches this check box on, the combo box listing all currently
+existing groups of the corresponding type becomes available. By
+default, no any group is selected. In such a case, when user presses
+Apply or Apply & Close button, the warning message box
+informing the user about the necessity to input new group name is
+shown. The combo box lists both \ref standalone_group "standalone groups"
+and \ref group_on_geom "groups on geometry". If the user has
+chosen the group on geometry, he is warned and proposed to
+\ref convert_to_standalone "convert this group to the standalone".
+If user refuses converting operation, an operation is cancelled and
+new node/element is not created!
+
To create any Quadratic Element specify the nodes which will form your
triangle by selecting them in the 3D viewer with pressed Shift
diff --git a/doc/salome/gui/SMESH/input/additional_hypo.doc b/doc/salome/gui/SMESH/input/additional_hypo.doc
index 9687bdf2d..1205e19b0 100644
--- a/doc/salome/gui/SMESH/input/additional_hypo.doc
+++ b/doc/salome/gui/SMESH/input/additional_hypo.doc
@@ -28,8 +28,30 @@ hypothesis onto an opposite edge. If a local hypothesis and
propagation are defined on an edge of a quadrangular face, the
opposite edge will have the same hypothesis, unless another hypothesis
has been locally defined on the opposite edge.
-
+
See Also a sample TUI Script of a
-\ref tui_propagation "Propagation hypothesis" operation.
+\ref tui_propagation "Propagation hypothesis" operation
-*/
\ No newline at end of file
+
Quadrangle Preference
+
+This additional hypothesis can be used together with Quadrangle (Mapping) and Netgen 2D
+algorithms.
+
+It allows Netgen 2D to build quadrangular meshes at any conditions.
+
+It allows Quadrangle (Mapping) to build quadrangular meshes even if the number
+of nodes at the opposite edges of a meshed face is not equal,
+otherwise this mesh will contain some triangular elements.
+
+This hypothesis has one restriction on its work: the total quantity of
+segments on all four sides of the face must be even (divisible by 2).
+
+
Triangle Preference
+
+This additional hypothesis can be used only together with Quadrangle (Mapping)
+algorithm. It allows to build triangular mesh faces in the refinement
+area if the number of nodes at the opposite edges of a meshed face is not equal,
+otherwise refinement area will contain some quadrangular elements.
+
+
+*/
diff --git a/doc/salome/gui/SMESH/input/constructing_meshes.doc b/doc/salome/gui/SMESH/input/constructing_meshes.doc
index 042b66320..ace081140 100644
--- a/doc/salome/gui/SMESH/input/constructing_meshes.doc
+++ b/doc/salome/gui/SMESH/input/constructing_meshes.doc
@@ -154,21 +154,20 @@ evaluation will be displayed in the following information box:
-
\anchor mesh_order_anchor
-It is allowed to change submesh priority in mesh computation when
-there are concurrent submeshes present. I.e. user can change priority of
-applying algorithms on shared subshapes of Mesh shape.
-To change submesh priority:
-
-
From the Mesh menu choose the "Change submesh priority" on
-selected Mesh item, or invoke from popup menu. The opened dialogue box
-shows a list of submeshes in the order of their priority. Algorithm and its
-hypotheses of a submesh being upper in the list are applied before those of
-a submesh lower in the list.
-There is an example of submesh order modifications of Mesh created on a Box
+
+If the mesh contains concurrent submeshes, it is possible to change
+the priority of their computation, i.e. to change the priority of
+applying algorithms to the shared subshapes of the Mesh shape.
+
+To change submesh priority:
+
+
Choose "Change submesh priority" from the Mesh menu or a popup menu. The opened dialogue
+shows a list of submeshes in the order of their priority.
+
+There is an example of submesh order modifications of the Mesh created on a Box
shape. The main Mesh object:
3DTetrahedron (Netgen) with HypothesisMax Element Volume
@@ -189,51 +188,50 @@ is:
(Number of Segments = 8)
-And the last third submesh object Submesh_3 created on Face_3
+And the last submesh object Submesh_3 created on Face_3
is:
2D Netgen 1D-2D with Hypothesis Netgen Simple parameters
(Number of Segments = 12)
-The submeshes can become concurrent if their algorithms leads to mesh shared subshape
-with different algorithms (or different algorithms parameters, i.e. hypothesises).
-In fact, we have three submeshes with concurrent algorithms, because
-they have different hypothesises assigned to them.
+The submeshes become concurrent if they share subshapes that can be meshed
+with different algorithms (or different hypothesises).
+In the example, we have three submeshes with concurrent algorithms,
+because they have different hypotheses.
-The first mesh computation made with:
+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 with:
+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 with:
+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 different number of result
-elements and different mesh discretisation on shared edges (edges
+As we can see, each mesh computation has a different number of result
+elements and a different mesh discretisation on the shared edges (the edges
that are shared between Face_1, Face_2 and Face_3)
-Additionally, submesh priority (order of algorithms to be applied) can
-be modified not only in separate dialog box, but in Preview
-also. This helps to preview different mesh results, modifying submesh
-order.
+Additionally, submesh 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 submeshes.
\image html mesh_order_preview.png
"Preview with submesh priority list box"
-If there are no concurrent submeshes under Mesh object, then user will see the
-following information dialog box
+If there are no concurrent submeshes under the Mesh object, the user will see the
+following information.
\image html mesh_order_no_concurrent.png
"No concurrent submeshes detected"
-and no mesh order list box will appear in Preview dialog box.
diff --git a/doc/salome/gui/SMESH/input/creating_groups.doc b/doc/salome/gui/SMESH/input/creating_groups.doc
index 4d74a3aa0..29b17f1ae 100644
--- a/doc/salome/gui/SMESH/input/creating_groups.doc
+++ b/doc/salome/gui/SMESH/input/creating_groups.doc
@@ -23,7 +23,7 @@ elements which will form your group:
SALOME Platform distinguishes between the two Group types:
Standalone Group and Group on Geometry.
-
Standalone Group
+\anchor standalone_group
"Standalone Group"
Standalone Group consists of mesh elements, which you can define in
two possible ways.
@@ -79,7 +79,7 @@ be changed, the new one will not be modified.
\ref tui_create_standalone_group "Create a Standalone Group"
operation.
-
Group on Geometry
+\anchor group_on_geom
"Group on Geometry"
To create a group on geometry check Group on geometry in the \b Group
\b type field. Group on geometry contains the elements of a certain type
@@ -98,4 +98,4 @@ selected in green.
\ref tui_create_group_on_geometry "Create a Group on Geometry"
operation.
-*/
\ No newline at end of file
+*/
diff --git a/doc/salome/gui/SMESH/input/editing_groups.doc b/doc/salome/gui/SMESH/input/editing_groups.doc
index 6cbe5ceb4..d255c3f82 100644
--- a/doc/salome/gui/SMESH/input/editing_groups.doc
+++ b/doc/salome/gui/SMESH/input/editing_groups.doc
@@ -22,6 +22,7 @@ remove the elements forming it. For more information see
group.
+\anchor convert_to_standalone
To convert an existing group on geometry into standalone group
of elements and modify:
diff --git a/doc/salome/gui/SMESH/input/find_element_by_point.doc b/doc/salome/gui/SMESH/input/find_element_by_point.doc
index 34380aed4..fcdadea29 100644
--- a/doc/salome/gui/SMESH/input/find_element_by_point.doc
+++ b/doc/salome/gui/SMESH/input/find_element_by_point.doc
@@ -24,8 +24,8 @@ The following dialog box will appear:
the coordinates of the point;
the type of elements to be found; it is also possible to find elements
-of all types related to the reference point. To be exact, type "All"
-means to find elements of any type except nodes and 0D elements.
+of all types related to the reference point. Choose type "All" to find
+elements of any type except for nodes and 0D elements.
diff --git a/doc/salome/gui/SMESH/input/index.doc b/doc/salome/gui/SMESH/input/index.doc
index 2de722d16..7e18d2b68 100644
--- a/doc/salome/gui/SMESH/input/index.doc
+++ b/doc/salome/gui/SMESH/input/index.doc
@@ -16,7 +16,8 @@ the VTK viewer;
allowing to highlight important elements:
\subpage modifying_meshes_page "modifying meshes" with a vast
array of dedicated operations.
-
\subpage using_notebook_mesh_page.
+
easily setting parameters via the variables predefined in
+\subpage using_notebook_mesh_page "Salome notebook".
Almost all mesh module functionalities are accessible via
diff --git a/doc/salome/gui/SMESH/input/merging_elements.doc b/doc/salome/gui/SMESH/input/merging_elements.doc
index d677e179e..50513d58f 100644
--- a/doc/salome/gui/SMESH/input/merging_elements.doc
+++ b/doc/salome/gui/SMESH/input/merging_elements.doc
@@ -8,32 +8,31 @@ selectable in the dialog box.
\image html mergeelems_ico.png "Merge elements button"
-
From the \b Modification choose \b Transformation and from its
-sub-menu select the Merge elements item. The following dialog box
+
Choose in the main menu \b Modification -> \b Transformation -> Merge elements item. The following dialog box
shall appear:
\image html mergeelems_auto.png
\b Name is the name of the mesh whose elements will be merged.
-
\b Automatic Mode or \b Manual Mode is to switch the dialog
-controls type.
+
\b Automatic or \b Manual Mode allows choosing how the elements
+are processed.
Automatic mode:
-
In \b Automatic Mode the elements that were created on the same nodes will be merged.
+
In the \b Automatic Mode the elements created on the same nodes will be merged.
-
If the \b Manual Mode is selected there are additional controls to
-manage the elements to be merged in more detail:
+
If the \b Manual Mode is selected, additional controls are
+available:
\image html mergeelems.png
\b Detect button generates the list of coincident elements for the given \b Tolerance.
-
Coincident elements is a list of groupes of elements for
+
Coincident elements is a list of groups of elements for
merging. All elements of each group will form one after the operation.
\b Remove button deletes the selected group from the list.
\b Name is the name of the mesh whose nodes will be merged.
-
\b Automatic Mode or \b Manual Mode is to switch the dialog
-controls type.
+
\b Automatic or \b Manual Mode allows choosing how the nodes are
+processed.
\b Tolerance is a maximum distance between nodes sufficient for
-merging, that is able in both dialog modes.
+merging.
Automatic mode:
-
In \b Automatic Mode to merge the Nodes, just input the tolerance
-value and confirm by \b Apply button.
+
In the \b Automatic Mode all Nodes within the indicated tolerance
+will be merged.
-
If the \b Manual Mode is selected there are additional controls to
-manage the nodes to be merged in more detail:
+
If the \b Manual Mode is selected, additional controls are available:
\b Detect button generates the list of coincident nodes for the given
\b Tolerance.
-
Coincident nodes is a list of groupes of nodes for
+
Coincident nodes is a list of groups of nodes for
merging. All nodes of each group will form one after the
operation.
diff --git a/doc/salome/gui/SMESH/input/modifying_meshes.doc b/doc/salome/gui/SMESH/input/modifying_meshes.doc
index afa553f1b..05180eb4b 100644
--- a/doc/salome/gui/SMESH/input/modifying_meshes.doc
+++ b/doc/salome/gui/SMESH/input/modifying_meshes.doc
@@ -23,7 +23,7 @@ the mesh or some of its elements.
through a point or a vector of symmetry.
Unite meshes by \subpage sewing_meshes_page "sewing" free borders,
conform free borders, border to side or side elements.
-
\subpage merging_nodes_page "Merge Notes", considered coincident
+
\subpage merging_nodes_page "Merge Nodes", considered coincident
within the indicated tolerance.
\subpage merging_elements_page "Merge Elements", considered coincident
within the indicated tolerance.
diff --git a/doc/salome/gui/SMESH/input/pattern_mapping.doc b/doc/salome/gui/SMESH/input/pattern_mapping.doc
index db4be4144..1a48a4644 100644
--- a/doc/salome/gui/SMESH/input/pattern_mapping.doc
+++ b/doc/salome/gui/SMESH/input/pattern_mapping.doc
@@ -11,30 +11,83 @@ located at geometrical vertices. Pattern description is stored in
\.smp file.
The smp file contains 4 sections:
-
-
The first line holds the number of nodes (N).
-
The next N lines describe nodes coordinates. Each line holds 2
-coordinates of a node.
-
-
A key-points line: indices of nodes to be mapped on geometrical
-vertices. An index n refers to a node described on an n-th line of
-section 2. The first node index is zero.
-
-
The rest lines describe nodal connectivity of elements, one line
+-# The first line holds the total number of the pattern nodes (N).
+-# The next N lines describe nodes coordinates. Each line holds 2
+coordinates of a node for 2D pattern or 3 cordinates for 3D pattern.
+Note, that for 3D pattern only relateive values in range [0;1] are
+valid for coordinates of the nodes.
+-# A key-points line: indices of nodes to be mapped on geometrical
+vertices (for 2D pattern only). An index n refers to a node described
+on an n-th line of section 2. The first node index is zero. For 3D
+pattern key points are not specified.
+-# The rest lines describe nodal connectivity of elements, one line
for an element. A line holds indices of nodes forming an element. An
index n refers to a node described on an n-th line of the section
2. The first node index is zero. There must be 3 or 4 indices on a
-line: only 2d elements are allowed.
-
+line for 2D pattern (only 2d elements are allowed) and 4, 5, 6 or 8
+indices for 3D pattern (only 3d elements are allowed).
The 2D pattern must contain at least one element and at least one
key-point. All key-points must lay on boundaries.
-An example of a simple smp file and a preview of a pattern described
-in this file:
+The 3D pattern must contain at least one element.
-\image html image94.gif
+An example of a simple 2D pattern smp file:
+
+\code
+!!! SALOME 2D mesh pattern file
+!!!
+!!! Nb of points:
+9
+ 200 0 !- 0
+ 100 0 !- 1
+ 0 0 !- 2
+ 0 -100 !- 3
+ 0 -200 !- 4
+ 100 -200 !- 5
+ 200 -200 !- 6
+ 200 -100 !- 7
+ 100 -100 !- 8
+!!! Indices of 4 key-points
+ 2 0 4 6
+!!! Indices of points of 6 elements
+ 0 1 8
+ 8 5 6 7
+ 2 3 8
+ 8 3 4 5
+ 8 7 0
+ 8 1 2
+\endcode
+
+The image below provides a preview of above described pattern:
+
+\image html pattern2d.png
+
+An example of a simple 3D pattern smp file:
+
+\code
+!!! SALOME 3D mesh pattern file
+!!!
+!!! Nb of points:
+9
+ 0 0 0 !- 0
+ 1 0 0 !- 1
+ 0 1 0 !- 2
+ 1 1 0 !- 3
+ 0 0 1 !- 4
+ 1 0 1 !- 5
+ 0 1 1 !- 6
+ 1 1 1 !- 7
+ 0.5 0.5 0.5 !- 8
+!!! Indices of points of 6 elements:
+ 0 1 5 4 8
+ 7 5 1 3 8
+ 3 2 6 7 8
+ 2 0 4 6 8
+ 0 2 3 1 8
+ 4 5 7 6 8
+\endcode
Application of pattern mapping
@@ -50,86 +103,89 @@ The following dialog box shall appear:
\image html patternmapping1.png
+
2D Pattern Mapping dialog box
+
\image html patternmapping2.png
+
3D Pattern Mapping dialog box
+
To apply a pattern to a geometrical object, you should specify:
-
-
a face having the number of vertices equal to the number of
-key-points in the pattern; the number of key-points on internal
-boundaries of a pattern must also be equal to the number of vertices
-on internal boundaries of a face;
-
a vertex to which the first key-point should be mapped;
-
reverse or not the order of key-points. (The order of vertices of
-a face is counterclockwise looking from outside).
-
+
+-# For 2D pattern
+ - A face having the number of vertices equal to the number of
+ key-points in the pattern; the number of key-points on internal
+ boundaries of a pattern must also be equal to the number of vertices
+ on internal boundaries of a face;
+ - A vertex to which the first key-point should be mapped;
+ - Reverse or not the order of key-points. (The order of vertices of
+ a face is counterclockwise looking from outside).
+-# For 3D pattern
+ - 3D block (Solid) object;
+ - Two vertices that specify the order of nodes in the resulting
+ mesh.
Then you either load a .smp pattern file previously created manually
by clicking on the "Load pattern" button, or click on the \b
-New button for automatic generation.
-\n For an automatic generation you just specify a geometrical face
-having a mesh built on it. Mesh nodes lying on face vertices become
-key-points. Additionally, you may choose the way of getting nodes
-coordinates by projecting nodes on the face instead of using
+New button for automatic generation of the pattern.
+
+For an automatic generation you just specify a geometrical face (for
+2D) or solid (for 3d) having a mesh built on it. Mesh nodes lying on
+face vertices become key-points of 2D pattern. Additionally, for 2D
+pattern you may choose the way of getting nodes coordinates by
+projecting nodes on the face instead of using
"positions on face" generated by mesher (if there is any). Faces
having a seam edge can't be used for automatic pattern creation.
When creating a pattern from an existing mesh, there are two possible
cases:
-
-
A sub-mesh on face is selected. A pattern is created from the 2d
-elements bound to a face by mesher. Node coordinates are either
+
+- A sub-mesh on face/solid is selected. A pattern is created from the 2d/3d
+elements bound to a face/solid by mesher. For 2D pattern, node coordinates are either
"positions on face" computed by mesher, or coordinates got by node
-projection on a geometrical surface, according to your choice.
-
A mesh where the main shape is a face, is selected. A pattern is
-created from all the 2d elements in a mesh. If all mesh elements are
-build by mesher, the user can select the way of getting nodes
-coordinates, else all nodes are projected on a face surface.
-
+projection on a geometrical surface, according to the user choice. For
+3D pattern, nodes coordinates correspond to the nodes computed by mesher.
+- A mesh where the main shape is a face/solid, is selected. A pattern is
+created from all the 2d/3d elements in a mesh. In addition, for 2D
+pattern, if all mesh elements are build by mesher, the user can select
+the way of getting nodes coordinates, else all nodes are projected on
+a face surface.
\image html a-patterntype.png
+
2D Pattern Creation dialog box
+
\image html a-patterntype1.png
+
3D Pattern Creation dialog box
+
Mapping algorithm
-The mapping algorithm is as follows:
-
-
Key-points are set in the order that they are encountered when
-walking along a pattern boundary so that elements are on the left. The
-first key-point is preserved.
-
+The mapping algorithm for 2D case is as follows:
-
Find geometrical vertices corresponding to key-points by vertices
-order in a face boundary; here, "Reverse order of key-points" flag is
-taken into account.
+- Key-points are set in the order that they are encountered when
+ walking along a pattern boundary so that elements are on the left. The
+ first key-point is preserved.
+- Find geometrical vertices corresponding to key-points by vertices
+ order in a face boundary; here, "Reverse order of key-points" flag is
+ taken into account. \image html image95.gif
+- Boundary nodes of a pattern are mapped onto edges of a face: a
+ node located between certain key-points on a pattern boundary is
+ mapped on a geometrical edge limited by corresponding geometrical
+ vertices. Node position on an edge reflects its distance from two
+ key-points. \image html image96.gif
+- Coordinates of a non-boundary node in a parametric space of a face
+ are defined as following. In a parametric space of a pattern, a node
+ lays at the intersection of two iso-lines, each of which intersects a
+ pattern boundary at least at two points. Knowing mapped positions of
+ boundary nodes, we find where isoline-boundary intersection points are
+ mapped to, and hence we can find mapped isolines direction and then,
+ two node positions on two mapped isolines. The eventual mapped
+ position of a node is found as an average of positions on mapped
+ isolines. \image html image97.gif
-\image html image95.gif
-
+For 3D case the algorithm is similar.
-
Boundary nodes of a pattern are mapped onto edges of a face: a
-node located between certain key-points on a pattern boundary is
-mapped on a geometrical edge limited by corresponding geometrical
-vertices. Node position on an edge reflects its distance from two
-key-points.
-
-\image html image96.gif
-
-
-
Coordinates of a non-boundary node in a parametric space of a face
-are defined as following. In a parametric space of a pattern, a node
-lays at the intersection of two iso-lines, each of which intersects a
-pattern boundary at least at two points. Knowing mapped positions of
-boundary nodes, we find where isoline-boundary intersection points are
-mapped to, and hence we can find mapped isolines direction and then,
-two node positions on two mapped isolines. The eventual mapped
-position of a node is found as an average of positions on mapped
-isolines.
-
-\image html image97.gif
-
-
-
- See Also a sample TUI Script of a
+See Also a sample TUI Script of a
\ref tui_pattern_mapping "Pattern Mapping" operation.
*/
diff --git a/doc/salome/gui/SMESH/input/point_marker.doc b/doc/salome/gui/SMESH/input/point_marker.doc
index c298893ef..40c2b932b 100644
--- a/doc/salome/gui/SMESH/input/point_marker.doc
+++ b/doc/salome/gui/SMESH/input/point_marker.doc
@@ -9,7 +9,7 @@ shapes or by loading a custom texture from an external file.
- Standard point markers
The Mesh module provides a set of predefined point marker shapes
-which can be used to display points in 3D viewer.
+which can be used to display points in the 3D viewer.
Each standard point marker has two attributes: type (defines shape
form) and scale factor (defines shape size).
@@ -23,9 +23,9 @@ form) and scale factor (defines shape size).
It is also possible to load a point marker shape from an external file.
This file should provide a description of the point texture as a set
-of lines; each line is represented as sequence of "0" and "1" symbols,
+of lines; each line is represented as a sequence of "0" and "1" symbols,
where "1" symbol means an opaque pixel and "0" symbol means a
-transparent pixel. The width of the texture correspond to the length
+transparent pixel. The width of the texture corresponds to the length
of the longest line in the file, expanded to the nearest byte-aligned
value. The height of the texture is equal to the number of non-empty
lines in the file. Note that missing symbols are replaced by "0".
diff --git a/doc/salome/gui/SMESH/input/scale.doc b/doc/salome/gui/SMESH/input/scale.doc
index 5b10fb5a5..b833903b6 100644
--- a/doc/salome/gui/SMESH/input/scale.doc
+++ b/doc/salome/gui/SMESH/input/scale.doc
@@ -69,17 +69,17 @@ name in the adjacent box);
Example of using:
-1. Create quandrangle mesh 3x3 on simple planar face (200x200)
+1. Create quandrangle mesh 3x3 on a simple planar face (200x200)
\image html scaleinit01.png
-and union 3 face (along axis Z) to group "gr_faces"
+and union 3 faces (along axis Z) to group "gr_faces"
\image html scaleinit02.png
-2. Perform scale operation for whole mesh with creation of new mesh:
+2. Perform scale operation for the whole mesh and create a new mesh:
\image html scale03.png
@@ -89,7 +89,7 @@ result after operation:
-3. Perform scale operation for whole mesh with copy of elements:
+3. Perform scale operation for the whole mesh and copy elements:
\image html scale04.png
@@ -99,7 +99,7 @@ result after operation:
-4. Perform scale operation for group of faces with copy of elements:
+4. Perform scale operation for a group of faces and copy elements:
\image html scale06.png
@@ -109,7 +109,7 @@ result after operation:
-5. Perform scale operation for two edges with moving of elements:
+5. Perform scale operation for two edges and move elements:
\image html scale07.png
@@ -119,7 +119,7 @@ result after operation:
-6. Perform scale operation for one face with moving of elements:
+6. Perform scale operation for one face and move elements:
\image html scale09.png
diff --git a/doc/salome/gui/SMESH/input/split_to_tetra.doc b/doc/salome/gui/SMESH/input/split_to_tetra.doc
index 57efb37eb..4817a3f2f 100644
--- a/doc/salome/gui/SMESH/input/split_to_tetra.doc
+++ b/doc/salome/gui/SMESH/input/split_to_tetra.doc
@@ -23,7 +23,7 @@ The following dialog box will appear:
The main list contains the list of volumes. You can click on
a volume in the 3D viewer and it will be highlighted (lock Shift
keyboard button to select several volumes). Click \b Add button and
-the ID of this volume will be added to the list. To remove a
+the ID of this volume will be added to the list. To remove the
selected element or elements from the list click \b Remove button. Sort
list button allows to sort the list of IDs. \b Filter button allows to
apply a definite filter to the selection of volumes.
@@ -40,12 +40,12 @@ volumes of the currently displayed mesh or submesh.
Into 5 tetrahedra and Into 6 tetrahedra allows to
specify the number of tetrahedra a hexahedron will be split into. If the specified method does
not allow to get a conform mesh, a generic solution is applied: an additional node
-is created at gravity center of a hexahedron, serving an apex of tetrahedra, all quadrangle sides of the hexahedron are split into two triangles each serving a base of a new tetrahedron.
+is created at the gravity center of a hexahedron, serving an apex of tetrahedra, all quadrangle sides of the hexahedron are split into two triangles each serving a base of a new tetrahedron.
-
Select from set of fields allows to choose a submesh or an
+
Select from a set of fields allows to choose a submesh or an
existing group whose elements will be automatically added to the
list.
diff --git a/doc/salome/gui/SMESH/input/tui_defining_hypotheses.doc b/doc/salome/gui/SMESH/input/tui_defining_hypotheses.doc
index 80944666e..1aa91d9d5 100644
--- a/doc/salome/gui/SMESH/input/tui_defining_hypotheses.doc
+++ b/doc/salome/gui/SMESH/input/tui_defining_hypotheses.doc
@@ -536,7 +536,8 @@ radial_Quad_algo = mesh.Quadrangle(algo=RADIAL_QUAD)
# In this case it uses "Default Nb of Segments" preferences parameter to discretize edges
mesh.Compute()
-# The Radial Quadrange uses global or local 1d hypotheses if no its own hypotheses assigned.
+# The Radial Quadrange uses global or local 1d hypotheses if it does
+# not have its own hypotheses.
# Define global hypotheses to discretize radial edges and a local one for circular edge
global_Nb_Segments = mesh.Segment().NumberOfSegments(5)
local_Nb_Segments = mesh.Segment(circle).NumberOfSegments(10)
diff --git a/doc/salome/gui/SMESH/input/tui_modifying_meshes.doc b/doc/salome/gui/SMESH/input/tui_modifying_meshes.doc
index 66b6361fa..2e8f75291 100644
--- a/doc/salome/gui/SMESH/input/tui_modifying_meshes.doc
+++ b/doc/salome/gui/SMESH/input/tui_modifying_meshes.doc
@@ -22,6 +22,26 @@ if new_id == 0: print "KO node addition."
else: print "New Node has been added with ID ", new_id
\endcode
+
+\anchor tui_add_0DElement
+
Add 0D Element
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+
+# add node
+node_id = mesh.AddNode(50, 10, 0)
+
+# add 0D Element
+new_id = mesh.Add0DElement(node_id)
+
+print ""
+if new_id == 0: print "KO node addition."
+else: print "New 0D Element has been added with ID ", new_id
+\endcode
+
\anchor tui_add_edge
Add Edge
@@ -768,7 +788,6 @@ mesh.RotationSweepObject(GroupRotate, axisXYZ, angle45, 4, 1e-5)
\code
import geompy
-
import smesh
# define the geometry
@@ -802,17 +821,100 @@ algo2D.MaxElementArea(240)
isDone = Mesh_2.Compute()
if not isDone: print 'Mesh Mesh_2 : computation failed'
-# create a pattern
+# create a 2d pattern
pattern = smesh.GetPattern()
isDone = pattern.LoadFromFace(Mesh_2.GetMesh(), Face_2, 0)
if (isDone != 1): print 'LoadFromFace :', pattern.GetErrorCode()
# apply the pattern to a face of the first mesh
-pattern.ApplyToMeshFaces(Mesh_1.GetMesh(), [17], 0, 0)
-
+facesToSplit = Mesh_1.GetElementsByType(smesh.SMESH.FACE)
+print "Splitting %d rectangular face(s) to %d triangles..."%(len(facesToSplit), 2*len(facesToSplit))
+pattern.ApplyToMeshFaces(Mesh_1.GetMesh(), facesToSplit, 0, 0)
isDone = pattern.MakeMesh(Mesh_1.GetMesh(), 0, 0)
if (isDone != 1): print 'MakeMesh :', pattern.GetErrorCode()
+
+# create quadrangle mesh
+Mesh_3 = smesh.Mesh(Box_1)
+Mesh_3.Segment().NumberOfSegments(1)
+Mesh_3.Quadrangle()
+Mesh_3.Hexahedron()
+isDone = Mesh_3.Compute()
+if not isDone: print 'Mesh Mesh_3 : computation failed'
+
+# create a 3d pattern (hexahedrons)
+pattern_hexa = smesh.GetPattern()
+
+smp_hexa = """!!! Nb of points:
+15
+ 0 0 0 !- 0
+ 1 0 0 !- 1
+ 0 1 0 !- 2
+ 1 1 0 !- 3
+ 0 0 1 !- 4
+ 1 0 1 !- 5
+ 0 1 1 !- 6
+ 1 1 1 !- 7
+ 0.5 0 0.5 !- 8
+ 0.5 0 1 !- 9
+ 0.5 0.5 0.5 !- 10
+ 0.5 0.5 1 !- 11
+ 1 0 0.5 !- 12
+ 1 0.5 0.5 !- 13
+ 1 0.5 1 !- 14
+ !!! Indices of points of 4 elements:
+ 8 12 5 9 10 13 14 11
+ 0 8 9 4 2 10 11 6
+ 2 10 11 6 3 13 14 7
+ 0 1 12 8 2 3 13 10"""
+
+pattern_hexa.LoadFromFile(smp_hexa)
+
+# apply the pattern to a mesh
+volsToSplit = Mesh_3.GetElementsByType(smesh.SMESH.VOLUME)
+print "Splitting %d hexa volume(s) to %d hexas..."%(len(volsToSplit), 4*len(volsToSplit))
+pattern_hexa.ApplyToHexahedrons(Mesh_3.GetMesh(), volsToSplit,0,3)
+isDone = pattern_hexa.MakeMesh(Mesh_3.GetMesh(), True, True)
+if (isDone != 1): print 'MakeMesh :', pattern_hexa.GetErrorCode()
+
+# create one more quadrangle mesh
+Mesh_4 = smesh.Mesh(Box_1)
+Mesh_4.Segment().NumberOfSegments(1)
+Mesh_4.Quadrangle()
+Mesh_4.Hexahedron()
+isDone = Mesh_4.Compute()
+if not isDone: print 'Mesh Mesh_4 : computation failed'
+
+# create another 3d pattern (pyramids)
+pattern_pyra = smesh.GetPattern()
+
+smp_pyra = """!!! Nb of points:
+9
+ 0 0 0 !- 0
+ 1 0 0 !- 1
+ 0 1 0 !- 2
+ 1 1 0 !- 3
+ 0 0 1 !- 4
+ 1 0 1 !- 5
+ 0 1 1 !- 6
+ 1 1 1 !- 7
+ 0.5 0.5 0.5 !- 8
+ !!! Indices of points of 6 elements:
+ 0 1 5 4 8
+ 7 5 1 3 8
+ 3 2 6 7 8
+ 2 0 4 6 8
+ 0 2 3 1 8
+ 4 5 7 6 8"""
+
+pattern_pyra.LoadFromFile(smp_pyra)
+
+# apply the pattern to a face mesh
+volsToSplit = Mesh_4.GetElementsByType(smesh.SMESH.VOLUME)
+print "Splitting %d hexa volume(s) to %d hexas..."%(len(volsToSplit), 6*len(volsToSplit))
+pattern_pyra.ApplyToHexahedrons(Mesh_4.GetMesh(), volsToSplit,1,0)
+isDone = pattern_pyra.MakeMesh(Mesh_4.GetMesh(), True, True)
+if (isDone != 1): print 'MakeMesh :', pattern_pyra.GetErrorCode()
\endcode
diff --git a/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc b/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc
index 1658e58c5..c55b2a492 100644
--- a/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc
+++ b/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc
@@ -62,16 +62,16 @@ Nb_Segments_1.SetDistrType( 0 )
Quadrangle_2D = Mesh1.Quadrangle()
isDone = Mesh1.Compute()
-#Perform scale opration for whole mesh with creation of new mesh
+#Perform scale opration for the whole mesh and creation of a new mesh
newMesh = Mesh1.ScaleMakeMesh(Mesh1,SMESH.PointStruct(100,100,200),[0.5,0.3,0.7],True,"ScaledMesh")
-#Perform scale operation for whole mesh with copy of elements
+#Perform scale operation for the whole mesh and copy elements
Mesh1.Scale(Mesh1,SMESH.PointStruct(200,100,100),[0.5,0.5,0.5],True,True)
-#Perform scale opration for two edges with moving of elements
+#Perform scale opration for two edges and move elements
Mesh1.Scale([1,2],SMESH.PointStruct(-100,100,100),[0.8,1.0,0.7],False)
-#Perform scale opration for one face with moving of elements
+#Perform scale opration for one face and move elements
Mesh1.Scale([21],SMESH.PointStruct(0,200,200),[0.7,0.7,0.7],False)
\endcode
diff --git a/doc/salome/gui/SMESH/input/viewing_meshes_overview.doc b/doc/salome/gui/SMESH/input/viewing_meshes_overview.doc
index 207c4dda5..17f4c5f7f 100644
--- a/doc/salome/gui/SMESH/input/viewing_meshes_overview.doc
+++ b/doc/salome/gui/SMESH/input/viewing_meshes_overview.doc
@@ -37,9 +37,9 @@ Faces, Edges or both.
2D Quadratic - allows to select between the representation
of quadratic edges as broken lines or as arcs
Orientation of faces - shows vectors of orientation of
-faces of the selected mesh. Vector is shown for each 2D mesh element
-and for each free face of 3D mesh element. Vector direction is calculated by
-the first three nodes of face as a cross product of vectors n1-n2 and n1-n3.
+faces of the selected mesh. The orientation vector is shown for each 2D mesh element
+and for each free face of a 3D mesh element. the vector direction is calculated by
+the first three nodes of the face produced by vectors n1-n2 and n1-n3.
\subpage colors_size_page "Colors / Size" - allows to select color and size of
meshes.