<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.hoenzb
        {mso-style-name:hoenzb;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Yes, this will solve the problem provided I have tetrahedral elements available for given Triangle. I wanted to know if GMSH provides some way to get outward
 normal without me finding its corresponding volume element. I haven’t found anything like that in their code till now. I should better use method given by you.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks a bunch,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Ashish<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Ashish Garg [mailto:ashish.garg.iisc@gmail.com]
<br>
<b>Sent:</b> Thursday, May 03, 2012 1:59 PM<br>
<b>To:</b> Mark Starnes<br>
<b>Cc:</b> Negi, Ashish; gmsh@geuz.org<br>
<b>Subject:</b> Re: [Gmsh] outward normal of surface triangles<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">Hello Ashish,<br>
<br>
Ya got your problem.<br>
<br>
See you know all tetrahedra at the boundary surfaces. It means  u know all the vertex of the tetrahedra ( out of four vertex three r makin boundary faces right ) .
<br>
<br>
try this <br>
<br>
      v0 = face[i].vertex[0];<br>
      v1 = face[i].vertex[1];<br>
      v2 = face[i].vertex[2];<br>
<br>
      r01 = vertex[v1] - vertex[v0];<br>
      r12 = vertex[v2] - vertex[v1];<br>
      <br>
      face[i].normal = (r01 X r12);<br>
<br>
      // Check orientation of normal<br>
      fourth_vertex        =  face[i].vertex[3]<br>
      check_normal_orientation = face[i].normal * ( fourth_vertex- vertex[v0]);<br>
<br>
      if ( check_normal_orientation > 0.0 )<br>
          face[i].normal *=  -1.0 ;<br>
<br>
this will resolve your problem for sure.<br>
<br>
regards<br>
<br>
Ashish  Garg<br>
TIFR-CAM, Bangalore<o:p></o:p></p>
<div>
<p class="MsoNormal">On Thu, May 3, 2012 at 1:22 PM, Mark Starnes <<a href="mailto:mark.starnes@fttech.co.uk" target="_blank">mark.starnes@fttech.co.uk</a>> wrote:<o:p></o:p></p>
<p class="MsoNormal">Hi Ashish,<br>
<br>
Does it help if you change the sign of every line entry number<br>
in the Plane Surface definition that is a problem?<br>
<br>
Best regards,<br>
<br>
Mark.<o:p></o:p></p>
<div>
<p class="MsoNormal"><br>
On Thu, May 03, 2012 at 06:23:34AM +0000, Negi, Ashish wrote:<br>
> Hi Ashish,<br>
><br>
><br>
><br>
> Thanks for replying.<br>
><br>
><br>
><br>
> Let me explain my problem again. I have attached 3 pictures below. First, shows<br>
> a Tetrahedral mesh of square duct. So, all surface elements are Triangle.<br>
> Second, shows normal vectors computed using cross product if Triangle vertices<br>
> are saved in clockwise sense (in the picture). Third, shows normal vector<br>
> computed if Triangle vertices are saved in anti-clockwise sense. So, second<br>
> picture gives me outward normal which I need.<br>
><br>
><br>
><br>
> I found that all Triangles do not give me outward normals if I assume clockwise<br>
> sense (in following picture). So, I wanted to know if GMSH has some other way<br>
> to provide me outward normal for each surface Triangle.<br>
><o:p></o:p></p>
</div>
<p class="MsoNormal">> [cid]   [cid]<o:p></o:p></p>
<div>
<p class="MsoNormal">><br>
><br>
><br>
> Thanks,<br>
><br>
> Ashish<br>
><br>
><br>
><br>
> From: Ashish Garg [mailto:<a href="mailto:ashish.garg.iisc@gmail.com">ashish.garg.iisc@gmail.com</a>]<br>
> Sent: Wednesday, May 02, 2012 1:09 PM<br>
> To: Negi, Ashish<br>
> Cc: <a href="mailto:gmsh@geuz.org">gmsh@geuz.org</a><br>
> Subject: Re: [Gmsh] outward normal of surface triangles<br>
><br>
><br>
><br>
> Hi Ashish<br>
><br>
> give the condition that the cross product should be greater than zero. I guess<br>
> it will resolve the problem.<br>
><br>
> Ashish Garg<br>
><br>
> On Wed, May 2, 2012 at 12:38 PM, Negi, Ashish <<a href="mailto:ashish.negi@honeywell.com">ashish.negi@honeywell.com</a>><br>
> wrote:<br>
><br>
> Hello Everyone,<br>
><br>
><br>
><o:p></o:p></p>
</div>
<p class="MsoNormal">> I?ve been using GMSH library to open Nastran BDF file and extract mesh data for<o:p></o:p></p>
<div>
<p class="MsoNormal">> my software. I generally load a mesh consisting of only Tetrahedra. Hence,<br>
> surface of model have only Triangle elements.<br>
><br>
><br>
><br>
> I want to find outward normal at each Triangle. I get coordinates of each<o:p></o:p></p>
</div>
<p class="MsoNormal">> Triangle and then take cross product to get normal to the element. But, I?m not<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">> sure if it will always be outward. Can someone suggest a solution to this<br>
> problem?<br>
><br>
><br>
><br>
> Thanks,<br>
><br>
> Ashish<br>
><br>
><br>
><br>
><br>
><br>
><br>
> _______________________________________________<br>
> gmsh mailing list<br>
> <a href="mailto:gmsh@geuz.org">gmsh@geuz.org</a><br>
> <a href="http://www.geuz.org/mailman/listinfo/gmsh" target="_blank">http://www.geuz.org/mailman/listinfo/gmsh</a><br>
><br>
><br>
><br>
<br>
<br>
<br>
<br>
> _______________________________________________<br>
> gmsh mailing list<br>
> <a href="mailto:gmsh@geuz.org">gmsh@geuz.org</a><br>
> <a href="http://www.geuz.org/mailman/listinfo/gmsh" target="_blank">http://www.geuz.org/mailman/listinfo/gmsh</a><br>
<br>
<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><span class="hoenzb"><span style="color:#888888">--</span></span><span style="color:#888888"><br>
<span class="hoenzb">Dr. Mark Starnes</span><br>
<span class="hoenzb">Principal Physicist</span><br>
<span class="hoenzb">FT Technologies</span><br>
<span class="hoenzb">Church Lane</span><br>
<span class="hoenzb">Teddington</span><br>
<span class="hoenzb">TW11 8PA</span><br>
<br>
<span class="hoenzb">web:  <a href="http://www.fttech.co.uk" target="_blank">www.fttech.co.uk</a></span><br>
<span class="hoenzb">DDI:  0208 614 2730</span></span><o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>