mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-30 19:30:35 +05:00
135 lines
4.8 KiB
Plaintext
135 lines
4.8 KiB
Plaintext
|
/*!
|
||
|
|
||
|
\page pattern_mapping_page Pattern mapping
|
||
|
|
||
|
<br><h2>About patterns</h2>
|
||
|
|
||
|
The pattern describes a mesh to generate: positions of nodes within a
|
||
|
geometrical domain and nodal connectivity of elements. As well, a
|
||
|
pattern specifies the so-called key-points, i.e. nodes that will be
|
||
|
located at geometrical vertices. Pattern description is stored in
|
||
|
\<pattern_name\>.smp file.
|
||
|
|
||
|
The smp file contains 4 sections:
|
||
|
<ol>
|
||
|
<li>The first line holds the number of nodes (N).</li>
|
||
|
|
||
|
<li>The next N lines describe nodes coordinates. Each line holds 2
|
||
|
coordinates of a node.</li>
|
||
|
|
||
|
<li>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.</li>
|
||
|
|
||
|
<li>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.</li>
|
||
|
</ol>
|
||
|
|
||
|
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:
|
||
|
|
||
|
\image html image94.gif
|
||
|
|
||
|
<br><h2>Application of pattern mapping</h2>
|
||
|
|
||
|
<em>To apply pattern mapping to a geometrical object:</em>
|
||
|
|
||
|
From the \b Modification menu choose the <b>Pattern Mapping</b> item or click
|
||
|
<em>"Pattern mapping"</em> button in the toolbar.
|
||
|
|
||
|
\image html image98.gif
|
||
|
<center><em>"Pattern mapping" button</em></center>
|
||
|
|
||
|
The following dialog box shall appear:
|
||
|
|
||
|
\image html patternmapping1.png
|
||
|
|
||
|
\image html patternmapping2.png
|
||
|
|
||
|
To apply a pattern to a geometrical object, you should specify:
|
||
|
<ul>
|
||
|
<li>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;</li>
|
||
|
<li>a vertex to which the first key-point should be mapped;</li>
|
||
|
<li>reverse or not the order of key-points. (The order of vertices of
|
||
|
a face is counterclockwise looking from outside).</li>
|
||
|
</ul>
|
||
|
|
||
|
Then you either load a .smp pattern file previously created manually
|
||
|
by clicking on the <em>"Load pattern"</em> 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 <b>projecting nodes on the face</b> 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:
|
||
|
<ol>
|
||
|
<li>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
|
||
|
"positions on face" computed by mesher, or coordinates got by node
|
||
|
projection on a geometrical surface, according to your choice.</li>
|
||
|
<li>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.</li>
|
||
|
</ol>
|
||
|
|
||
|
\image html a-patterntype.png
|
||
|
|
||
|
\image html a-patterntype1.png
|
||
|
|
||
|
<br><h2>Mapping algorithm</h2>
|
||
|
|
||
|
The mapping algorithm is as follows:
|
||
|
<ol>
|
||
|
<li>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.
|
||
|
</li>
|
||
|
|
||
|
<li>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
|
||
|
</li>
|
||
|
|
||
|
<li>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
|
||
|
</li>
|
||
|
|
||
|
<li>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
|
||
|
</li>
|
||
|
</ol>
|
||
|
|
||
|
<br><b>See Also</b> a sample TUI Script of a
|
||
|
\ref tui_pattern_mapping "Pattern Mapping" operation.
|
||
|
|
||
|
*/
|