<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN"> <html> <head> <title>Pattern mapping</title> <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"> <!-- if (navigator.appName !="Netscape") { document.write("<link rel='stylesheet' href='default.css'>");} //--> </script> <style type="text/css"> <!-- 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; } table.whs5 { x-cell-content-align:top; width:64.066%; border-spacing:0px; } 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; } img_whs11 { border:none; width:306px; height:632px; float:none; border-style:none; } td.whs12 { width:43.911%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; } img_whs13 { border:none; width:306px; height:670px; float:none; border-style:none; } img_whs14 { border:none; width:34px; height:34px; border-style:none; } table.whs15 { x-cell-content-align:top; width:68.686%; border-spacing:0px; } col.whs16 { width:50.224%; } col.whs17 { width:49.776%; } 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; } 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; } --> </style><script type="text/javascript" language="JavaScript"> <!-- if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4)) { var strNSS = "<style type='text/css'>"; strNSS += "p.whs10 {margin-right:1pt; }"; strNSS += "p.whs22 {margin-left:1pt; }"; 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"> <!-- div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; } p.WebHelpNavBar { text-align:right; } --> </style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script> <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> <script type="text/javascript" language="javascript1.2"> <!-- if (window.gbWhTopic) { if (window.setRelStartPage) { addTocInfo("MESH module\nModifying meshes\nPattern mapping"); addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif"); addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif"); } if (window.setRelStartPage) { setRelStartPage("index.htm"); autoSync(1); sendSyncInfo(); sendAveInfoOut(); } } else if (window.gbIE4) document.location.reload(); //--> </script> </head> <body><script type="text/javascript" language="javascript1.2"> <!-- if (window.writeIntopicBar) writeIntopicBar(4); //--> </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> <table x-use-null-cells cellspacing="0" width="64.066%" class="whs5"> <col class="whs6"> <col class="whs7"> <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> </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> <p> </p> <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�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> <table x-use-null-cells cellspacing="0" width="68.686%" class="whs15"> <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> <h3>Mapping algorithm:</h3> <p class="whs22">The mapping algorithm is as follows:</p> <p class="whs22"> </p> <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> <p class="whs2"><img src="image95.gif" width="554px" height="279px" border="0" class="img_whs23"></p> <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> <p class="whs2"><img src="image96.gif" width="572px" height="233px" border="0" class="img_whs24"></p> <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> <p class="whs2"><img src="image97.gif" width="606px" height="249px" border="0" class="img_whs25"></p> <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> <script type="text/javascript" language="javascript1.2"> <!-- if (window.writeIntopicBar) writeIntopicBar(0); //--> </script> </body> </html>