2004-12-01 15:48:31 +05:00
<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
< html >
< head >
< title > Pattern mapping< / title >
2005-11-28 14:57:47 +05:00
< meta http-equiv = "content-type" content = "text/html; charset=windows-1252" >
< meta name = "generator" content = "RoboHelp by eHelp Corporation www.ehelp.com" >
< link rel = "stylesheet" href = "default_ns.css" > < script type = "text/javascript" language = "JavaScript" title = "WebHelpSplitCss" >
2004-12-01 15:48:31 +05:00
<!--
if (navigator.appName !="Netscape")
{ document.write("< link rel = 'stylesheet' href = 'default.css' > ");}
//-->
< / script >
< style type = "text/css" >
<!--
2005-11-28 14:57:47 +05:00
img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
p.whs2 { margin-left:40px; }
img_whs3 { border:none; width:626px; height:471px; border-style:none; }
img_whs4 { border:none; width:22px; height:28px; border-style:none; }
2006-05-06 14:51:48 +06:00
table.whs5 { x-cell-content-align:top; width:64.066%; border-spacing:0px; }
2005-11-28 14:57:47 +05:00
col.whs6 { width:56.089%; }
col.whs7 { width:43.911%; }
tr.whs8 { x-cell-content-align:top; }
td.whs9 { width:56.089%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
p.whs10 { margin-right:0px; }
2006-05-06 14:51:48 +06:00
img_whs11 { border:none; width:306px; height:632px; float:none; border-style:none; }
2005-11-28 14:57:47 +05:00
td.whs12 { width:43.911%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
2006-05-06 14:51:48 +06:00
img_whs13 { border:none; width:306px; height:670px; float:none; border-style:none; }
2005-11-28 14:57:47 +05:00
img_whs14 { border:none; width:34px; height:34px; border-style:none; }
2006-05-06 14:51:48 +06:00
table.whs15 { x-cell-content-align:top; width:68.686%; border-spacing:0px; }
2005-11-28 14:57:47 +05:00
col.whs16 { width:50.224%; }
col.whs17 { width:49.776%; }
2006-05-06 14:51:48 +06:00
td.whs18 { width:50.224%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
img_whs19 { border:none; width:306px; height:428px; float:none; border-style:none; }
td.whs20 { width:49.776%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
img_whs21 { border:none; width:306px; height:248px; float:none; border-style:none; }
2005-11-28 14:57:47 +05:00
p.whs22 { margin-left:0px; }
img_whs23 { border:none; width:554px; height:279px; border-style:none; }
img_whs24 { border:none; width:572px; height:233px; border-style:none; }
img_whs25 { border:none; width:606px; height:249px; border-style:none; }
2004-12-01 15:48:31 +05:00
-->
2005-11-28 14:57:47 +05:00
< / style > < script type = "text/javascript" language = "JavaScript" >
2004-12-01 15:48:31 +05:00
<!--
if ((navigator.appName == "Netscape") & & (parseInt(navigator.appVersion) == 4))
{
var strNSS = "< style type = 'text/css' > " ;
2005-11-28 14:57:47 +05:00
strNSS += "p.whs10 {margin-right:1pt; }";
strNSS += "p.whs22 {margin-left:1pt; }";
2004-12-01 15:48:31 +05:00
strNSS +="< / style > ";
document.write(strNSS);
}
//-->
< / script >
< script type = "text/javascript" language = "JavaScript" title = "WebHelpInlineScript" >
<!--
function reDo() {
if (innerWidth != origWidth || innerHeight != origHeight)
location.reload();
}
if ((parseInt(navigator.appVersion) == 4) & & (navigator.appName == "Netscape")) {
origWidth = innerWidth;
origHeight = innerHeight;
onresize = reDo;
}
onerror = null;
//-->
< / script >
< style type = "text/css" >
<!--
2005-11-28 14:57:47 +05:00
div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
2004-12-01 15:48:31 +05:00
-->
2005-11-28 14:57:47 +05:00
< / style > < script type = "text/javascript" language = "javascript1.2" src = "whmsg.js" > < / script >
2004-12-01 15:48:31 +05:00
< script type = "text/javascript" language = "javascript" src = "whver.js" > < / script >
< script type = "text/javascript" language = "javascript1.2" src = "whproxy.js" > < / script >
< script type = "text/javascript" language = "javascript1.2" src = "whutils.js" > < / script >
< script type = "text/javascript" language = "javascript1.2" src = "whtopic.js" > < / script >
< / head >
2005-11-28 14:57:47 +05:00
< body > < script type = "text/javascript" language = "javascript1.2" >
2004-12-01 15:48:31 +05:00
<!--
if (window.gbWhTopic)
{
if (window.addTocInfo)
{
2005-11-28 14:57:47 +05:00
addTocInfo("MESH module\nModifying meshes\nPattern mapping");
2004-12-01 15:48:31 +05:00
addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");
}
if (window.writeBtnStyle)
writeBtnStyle();
if (window.writeIntopicBar)
writeIntopicBar(1);
if (window.setRelStartPage)
{
setRelStartPage("smesh.htm");
2005-11-28 14:57:47 +05:00
autoSync(1);
2004-12-01 15:48:31 +05:00
sendSyncInfo();
sendAveInfoOut();
}
}
else
2005-11-28 14:57:47 +05:00
if (window.gbIE4)
document.location.reload();
2004-12-01 15:48:31 +05:00
//-->
< / script >
< h1 > Pattern mapping< / h1 >
< h3 > About patterns< / h3 >
< p > < img src = "i_blue.jpg" x-maintain-ratio = "TRUE" width = "30px" height = "30px" border = "0" class = "img_whs1" > 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.< / p >
< p > < / p >
< p > The smp file contains 4 sections:< / p >
< p > < / p >
< p class = "whs2" > 1. The first line holds the number of nodes
(N).< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > 2. The next N lines describe nodes coordinates.
Each line holds 2 coordinates of a node.< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > 3. 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.< / p >
< p class = "whs2" > < / p >
< p class = "whs2" > 4. 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.< / p >
< p class = "whs2" > < / p >
< p > The 2D pattern must contain at least one element and at least one key-point.
All key-points must lay on boundaries.< / p >
< p > < / p >
< p > An example of a simple smp file and a preview of a pattern described
in this file:< / p >
< p > < / p >
< p > < img src = "image94.gif" width = "626px" height = "471px" border = "0" class = "img_whs3" > < / p >
< p > < / p >
< p > < / p >
< h3 > Application of pattern mapping< / h3 >
< p class = TODO > To apply pattern mapping to a geometrical object:< / p >
< p class = TODO > < / p >
< p class = "whs2" > 1. From the < span style = "font-weight: bold;" > < B > Modification
< / B > < / span > menu choose the < span style = "font-weight: bold;" > < B > Pattern Mapping
< / B > < / span > item or click < img src = "image98.gif" width = "22px" height = "28px" border = "0" class = "img_whs4" > button in the toolbar. The following
dialog box shall appear:< / p >
< p class = "whs2" > < / p >
2005-11-28 14:57:47 +05:00
< table x-use-null-cells cellspacing = "0" width = "64.066%" class = "whs5" >
2004-12-01 15:48:31 +05:00
< col class = "whs6" >
2005-11-28 14:57:47 +05:00
< col class = "whs7" >
2004-12-01 15:48:31 +05:00
2005-11-28 14:57:47 +05:00
< tr valign = "top" class = "whs8" >
< td width = "56.089%" class = "whs9" >
< p class = "whs10" > < img src = "pics/patternmapping1.png" x-maintain-ratio = "TRUE" width = "306px" height = "632px" border = "0" class = "img_whs11" > < / td >
< td width = "43.911%" class = "whs12" >
< p > < img src = "pics/patternmapping2.png" x-maintain-ratio = "TRUE" width = "306px" height = "670px" border = "0" class = "img_whs13" > < / td > < / tr >
2004-12-01 15:48:31 +05:00
< / table >
< p class = "whs2" > < / p >
< p > To apply a pattern to a geometrical object, you should specify:< / p >
< p class = "whs2" > - 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;< / p >
< p class = "whs2" > - a vertex to which the first key-point should
be mapped,< / p >
< p class = "whs2" > - reverse or not the order of key-points.
(The order of vertices of a face is counterclockwise looking from outside).< / p >
2005-11-28 14:57:47 +05:00
< p > < / p >
2004-12-01 15:48:31 +05:00
2005-11-28 14:57:47 +05:00
< p > Then you either load a .smp pattern file previously created manually
by clicking on the < img src = "image108.gif" width = "34px" height = "34px" border = "0" class = "img_whs14" > button, or click on the < span style = "font-weight: bold;" > < B > New< / B > < / span >
button for automatic generation.< / p >
< p > 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 < span
style="font-weight: bold;">< B > projecting nodes on the face< / B > < / span > instead
of using " positions on face" generated by mesher (if there is
any). Faces having a seam edge can<61> t be used for automatic pattern creation.< / p >
< p > < / p >
< p > When creating a pattern from an existing mesh, there are two possible
cases:< / p >
< p > < / p >
< p > 1. 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.< / p >
< p > 2. 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.< / p >
2006-05-06 14:51:48 +06:00
< table x-use-null-cells cellspacing = "0" width = "68.686%" class = "whs15" >
2005-11-28 14:57:47 +05:00
< col class = "whs16" >
< col class = "whs17" >
< tr valign = "top" class = "whs8" >
< td width = "50.224%" class = "whs18" >
< p > < img src = "pics/a-patterntype.png" x-maintain-ratio = "TRUE" width = "306px" height = "428px" border = "0" class = "img_whs19" > < / td >
< td width = "49.776%" class = "whs20" >
< p > < img src = "pics/a-patterntype1.png" x-maintain-ratio = "TRUE" width = "306px" height = "248px" border = "0" class = "img_whs21" > < / td > < / tr >
< / table >
< p > < / p >
2004-12-01 15:48:31 +05:00
< h3 > Mapping algorithm:< / h3 >
2005-11-28 14:57:47 +05:00
< p class = "whs22" > The mapping algorithm is as follows:< / p >
2004-12-01 15:48:31 +05:00
2005-11-28 14:57:47 +05:00
< p class = "whs22" > < / p >
2004-12-01 15:48:31 +05:00
< p class = "whs2" > 1. 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.< / p >
< p class = "whs2" > 2. 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.< / p >
< p class = "whs2" > < / p >
2005-11-28 14:57:47 +05:00
< p class = "whs2" > < img src = "image95.gif" width = "554px" height = "279px" border = "0" class = "img_whs23" > < / p >
2004-12-01 15:48:31 +05:00
< p class = "whs2" > < / p >
< p class = "whs2" > 3. 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.< / p >
< p class = "whs2" > < / p >
2005-11-28 14:57:47 +05:00
< p class = "whs2" > < img src = "image96.gif" width = "572px" height = "233px" border = "0" class = "img_whs24" > < / p >
2004-12-01 15:48:31 +05:00
< p class = "whs2" > < / p >
< p class = "whs2" > 4. 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.< / p >
< p class = "whs2" > < / p >
2005-11-28 14:57:47 +05:00
< p class = "whs2" > < img src = "image97.gif" width = "606px" height = "249px" border = "0" class = "img_whs25" > < / p >
2004-12-01 15:48:31 +05:00
2006-05-06 14:51:48 +06:00
< p class = "whs2" > < / p >
< p > < span style = "font-weight: bold;" > < B > See
Also< / B > < / span > a sample TUI Script of a < a href = "modifying_meshes.htm#bookmark13" > Pattern
Mapping< / a > < a href = "modifying_meshes.htm#bookmark11" > < / a > operation. < / p >
< p > < / p >
2004-12-01 15:48:31 +05:00
< script type = "text/javascript" language = "javascript1.2" >
<!--
if (window.writeIntopicBar)
writeIntopicBar(0);
//-->
< / script >
< / body >
< / html >