<div dir="ltr">Works great. Thanks 

Christophe!<div><br></div><div>Cheers,</div><div>Terrence </div></div><br><div class="gmail_quote"><div dir="ltr">On Sat, Jan 12, 2019 at 8:36 AM Christophe Geuzaine <<a href="mailto:cgeuzaine@uliege.be">cgeuzaine@uliege.be</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto" style="overflow-wrap: break-word;" class="gmail-m_-3399319097118985638ApplePlainTextBody"><div class="gmail-m_-3399319097118985638ApplePlainTextBody"><br><br><blockquote type="cite">On 11 Jan 2019, at 16:48, Terrence Moran <<a href="mailto:tpm92@cornell.edu" target="_blank">tpm92@cornell.edu</a>> wrote:<br><br>Hello all,<br><br>I am trying to refine a mesh to be very fine around a curve and very coarse away from it. This works very well using one or two curves (photo 1) using Distance and Threshold. When I try and do more curves (completing a circuit)  the mesh becomes fine everywhere on the plane (Photo 2) ignoring the mesh size at DistMax. I understand there are other functions such as  Box or cylinder but I need this to work for any geometry. My code is below, It is a simple example of a box. The loop is to find the lines that make up the surface on which I am trying to refine the boundary. Any help would be greatly appreciated!<br><br></blockquote><br>Setting Mesh.CharacteristicLengthExtendFromBoundary = 0; should do the trick.<br><br>Christophe<br><br><br><br><br><blockquote type="cite">Thanks,<br>Terrence <br><photo1.PNG><br><photo2.PNG><br>//+<br>SetFactory("OpenCASCADE");<br>ShapeFromFile("box.iges")<br>//+<br>lns[];<br>h = 0;<br>For i In {1:newl-1}<br> pnts[] = Boundary{Line{i};}; <br> Printf("line %g",i);<br> Printf("point one = %g",pnts[0]);<br> Printf("point two = %g",pnts[1]);<br> coords1[] = Point{pnts[0]};<br> coords2[] = Point{pnts[1]};<br> If(coords1[2]==254 && coords2[2]==254)// 254=top surface z coord<br>   Printf("line %g is on boundary",i);<br>   lns[h] = i;<br>   h = h+1; <br> EndIf    <br>EndFor<br>Field[1] = Distance;<br>Field[1].EdgesList = {lns[]};<br>Field[1].NNodesByEdge = 100;<br>Field[2] = Threshold;<br>Field[2].IField = 1;<br>Field[2].LcMin = 0.5;<br>Field[2].LcMax = 100;<br>Field[2].DistMin = 1;<br>Field[2].DistMax = 50;<br>Background Field = 2;<br><br><br>_______________________________________________<br>gmsh mailing list<br><a href="mailto:gmsh@onelab.info" target="_blank">gmsh@onelab.info</a><br><a href="http://onelab.info/mailman/listinfo/gmsh" target="_blank">http://onelab.info/mailman/listinfo/gmsh</a><br></blockquote><br>— <br>Prof. Christophe Geuzaine<br>University of Liege, Electrical Engineering and Computer Science <br><a href="http://www.montefiore.ulg.ac.be/~geuzaine" target="_blank">http://www.montefiore.ulg.ac.be/~geuzaine</a><br><br>Free software: <a href="http://gmsh.info" target="_blank">http://gmsh.info</a> | <a href="http://getdp.info" target="_blank">http://getdp.info</a> | <a href="http://onelab.info" target="_blank">http://onelab.info</a><br><br></div></div></blockquote></div>