Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

STL to GEO Importer for openflower problems

Help
2007-01-13
2013-04-09
  • I just finished writing this thing. Its soo awesome. i can't even believe it my self.  There is still one more thing that I want to do with it because it repeats lines at the moment. But I'm still going to release it just for coolness. I'll clean it up later and fix up the duplicated lines.

    For now, get an STl file from PRo/e or some other  ASCII STL producing program. I wonder if Blender has that. If not I'm going to have to import the binary STl files too..darn.

    here it goes.... have fun...

    #!/usr/local/bin/perl -w
    ##############################################################################
    # STL to GEO exporter
    # This is a product of Alfonso Medina
    # I'm releasing this under the copyleft, free as in free beer
    # Follow whatever rules you want to follow and copy what ever you want to copy
    # All I ask is that you keep it free and keep my name some where on the title
    # Just you know Glory.
    ##############################################################################
    #some of these lines and their descriptions are completly off because I rewrote the whole thing today.
    #it works, i just tried an 80,000 vertex stlfile
    #it will spit out a geo file containing, points, lines, line loops and planes
    #all you got to do is make a virtual surface for the walls and the inlets and outlets.
    #have perl installed and save this as  "STL_GEO.pl"
    #have your stl file in the same folder and call it "infile.stl"
    ###############################################################################
    use strict;
    use warnings;
    #######
    #global vars go here
    our $stlin = "infile.stl";# file to be exported, replace with *.stl later
    our $geoout = "outfile.geo";# output file, replace with *.geo later
    our $sorter = "sort.txt";# Lines, lines loops and planes are written here first
    our @lines = ();# where the initial file goes
    our @lin= (); # this is used to keep the current number for points inside lines
    our $i=1;#point counting. number given to points
    our $j=1;#line step counter count 3 points per plane
    our $k=1;#line counter. number given to lines
    our $m=1;#line loop and plane counter. number shared betwix line loops and planes since they are sequencial and non overlapping.
    our @linps = ();#array of points to make lines from at every 3 counts
    our %seen = ();#stores points that have been seen before and in the order read
    our %points = ();#stores all points in the order read
    our %data = ();
    our %ldata = ();
    #######
    open(INFILE,"$stlin") or die "Cannot open '$stlin': $!";
    @lines = <INFILE>;
    close(INFILE);
    open(PTFILE,">$geoout") or die "Cannot open '$geoout': $!";#so we open the output file for initial output
    print PTFILE "lc=0.1;\n";
    ####################################################################################
    foreach my $line (@lines) { #read three points and place them in a file   
    if ($line =~ /vertex\s(\S*)/ ) { #if it looks like a point containing line
    $line =~ /vertex\s(\S*)\s(\S*)\s(\S*)/; #grab point coordinates
    # print $1;       
    %data = (
    "point$i" => {
    "x" => "$1",
    "y" => "$2",
    "z" => "$3",
    }
    );
    next if $seen{"$1$2$3"}++;
    print PTFILE "Point($i) = {", $data{"point$i"}{"x"},",", $data{"point$i"}{"y"},",", $data{"point$i"}{"z"},", lc};\n";
    my $done = "$1$2$3";
    $ldata{$done} = "$i";
    #print $ldata{$done},"\n";
    $i++;
    }
    }
    #######################
    #open(PTFILE,">$geoout") or die "Cannot open '$geoout': $!";#so we open the output file for final print
    ########################
    foreach my $line (@lines) {
    if ($line =~ /vertex\s(\S*)/ ) { #if it looks like a point containing line
        $line =~ /vertex\s(\S*)\s(\S*)\s(\S*)/; #grab point coordinates
    my $done = "$1$2$3";
    #print $ldata{$done},"\n";
    $lin[$j] = $ldata{$done};
    #print "$done\n";
    if ($k >= 3) { #if three points have been tested
    # Point(2) = {0.754907,0.505602,0,0.05};
    # Line(6) = {6,7};
    # Plane Surface(26) = {25};
    # Line Loop(27) = {13,10,11};
    print PTFILE "Line(",$j-2,") = {",$lin[($j-2)],",",$lin[($j-1)],"}\;\n";
    print PTFILE "Line(",$j-1,") = {",$lin[($j-1)],",",$lin[($j)],"}\;\n";
    print PTFILE "Line(",$j,") = {",$lin[($j)],",",$lin[($j-2)],"}\;\n";
    print PTFILE "Line Loop(",$m,") = {",$j-2,",",$j-1,",",$j,"};\n";
    print PTFILE "Plane Surface(",$m+1,") = {",$m,"};\n";
    $k=0;
    $m++;
    }
    $j++;
    $k++;
    }
    }
    #######################
    print "size of array: " . @lines . ".\n";
    close(PTFILE);

     
    • Alfonso,
      Thanks a bunch for your efforts - definitely worth a beer or two. What you are saying is install perl, save this as a perl file and run it. What version of perl are you using - is there a site where I can download it ?

       
    • I just tried this with a simple stl file of a piece of pipe and the "outfile" only contained one line lc=0.1;

      Did I miss something ?

       
    • Forget the last two posts, I already had perl as part of my calculixdownload. Pro-e has two options for saving an stl file, binary or ascii, Binary was the default, it needs to be checked as ascii, that was my problem.  After that It worked like a charm.

      PS Calculix is another neat piece of software that you might check out, next month they are releasing an upgrade with some cad translators and new contact elements.

      Thanks for the translator

       
    • PS Calculix... mmm. ok..  Yeah, The STl need to be in text format (ASCII) for this thing right now. Blender seems to spit binary only. However, I have not doubt that I can take that as an input some time later. It would probably be easier on memory to have it binary anyway. But since I'm not a programmer but a mechanical engineer, we'll just leave that for later.

      The thing that I'm trying to solve right now is that fact that the STL file repeats lines a lot. Almost every line is used twice. If you follow the right hand rule, then each line needs to be used in both directions. One triangle next to another sharing one line will use that line in the oposite direction. So what I got to do is re-write the part where I make the outfile prints and store a forth and back array at the same time so then I can check to see if the reverse has already been used. The problem is if they have been used, then what line number  line(x) contains the first set of points.

      line(1) = {1,2};
      line(2) = {2,3};
      line(3) = {3,1};
      line(4) = {3,4};
      line(5) = {4,1};
      line(6) = {1,3);

      That last line line number 6 is a reverse repeat of line number 3 sine line(3) = {3,1} and 6 is {1,3}

      But how can I structure the filter to remember the point combination on line 3 so when I read line 6, I know I must not print a line number 6 but use line number 3 in line loop number 6 (or what ever its supposed to be.)

      Well, here I am, sort of doing that, and listening to someone in NPR talking about chincken bread to lay eggs that have anti cancer proteins in them. So If I get a beer for this.  A digital one at that, I'm happy.  Maybe I already had the bear, I don't remember. I mean chickens laying anti cancer eggs!! come on!

      What we really need is Mr. Vortex Flow to explain the equations and code that is used on OpenFlower. Somewhere deep in the forum now, there are a few notes about the units in the out put. Otherwise, I have no idea what the output units are.  Using Doxigen, one can get the documentation in a nice HTML format. What is missing is comments like "hey here is where we attache the mesh error to errno" and " here we take the input and send it to there".  I'm going to start learning C++. Maybe. I hate MS related software. Open free beer kicks butt.

      Alfonso

       
    • Forget NPR try this one  http://www.dve.com/main.html
      Sorry, I don't know much about programming, maybe I'll run this one past my kid, he's
      handy with this sort of stuff. Last year he wrote a c++ algorithm for solving Sudoko puzzles, so he might be able to figure this one out.

      Next week when I have a spare few minutes, I'll try a simple problem using the mesh from the translator, if it works, then it does not really matter about the extra lines.

       
    • That is true. if the mesh works, then the repeated lines are just fine. I'm finding it extremely complicated to get rid of them. But am so close, I can almost see my test model, or smell the roses, which ever you go with. When I make my ugly code work, I'll post it and then I'll work on making it as small and compact as possible. All those loops through the data can really slow down the model when the data is large enough.

      For my test model, I used a variable helical coil that I was playing with. So imagine the model of a hose made into an irregular spring. It was soo cool when I got to see all the lines and planes made automagically. I mean, It takes a long time to model this stuff, and since the STL import from GMSH is useless for openflower, I was really glad. I wonder why they made it not work as it should. The GMSH STL import kind of makes lines, but then they are not really there when you save to GEO.

       
    • G. D. McBain
      G. D. McBain
      2007-01-22

      Binary STL files can be converted to ASCII by ADMesh; see http://www.varlog.com/products/admesh/ .  Does that help? It's a command-line program released under the GPL.

       
    • Great work!!

       
    • Almost done with the version that does not repeat lines. I figured out a few things in the way. Its been a few weekends. Who knew it would be that dificult to figure out the proper procedure.

      Fonss

      I'll look at ADMesh

       
    • cool. It removes double faces, but you still have the problem with adjacent planes having two lines for the same line (EX: line 1,2 and line 2,1)

      too bad its not free beer free, but its still good.

      Fonss

       
    • its been a lot of fun (and hours). And I'm not there yet. I have here the last lines of an 87,000+ point part.
      Line(37343) = {2870,3316};
      Line Loop(24895) = {37341,-35355,37343};
      Plane Surface(24896) = {24895};
      Line Loop(24897) = {-19838,-37337,-37341};
      Plane Surface(24898) = {24897};

      Its soo cool getting all those little numbers flowing through the screen. I almost feel like and FEA guy.  Anyway. At the moment, I have solved all problems except for one little thing. Ok two little things. There is a line (0). I must start from 1 or you cannot have line loop (X)  (23, 5, -0)  the negative zero is not a good number there.  And the other little thing is that I miss one single triangle.  But hey, if you can find it....87,000 points... you can also claim a beer for free from me... when you live close to down town san diego and its snowing profusely, but only in the front of my neighbor's house. Ok no beer, but it will take you a while. So, i'm not going to release it untill I tested it with more stuff and I get these two things figured out.  Thats funny. I thought I was done, then it complains about some line loop being wrong because of the -0. I fix that on the geo and run it again. Then I figured out that I had more faces than I had planes, so that was a bummer.

      the good thing is that i was able to make the code as fast as before, even when its quite a bit more complex. Free beer for the authors of perl.

      Fonss

       
    • #!/usr/local/bin/perl -w
      ##############################################################################
      # STL to GEO exporter
      # This is a product of Alfonso Medina   aomanchuria  in or at g-(google)-mail
      # my sbcglobal email has been distroyed. SBC sucks run from it. COX also sucks but less
      # :)
      # the script is finally working
      # I'm releasing this under the copyleft, free as in free beer
      # Follow whatever rules you want to follow and copy what ever you want to copy
      # All I ask is that you keep it free and keep my name some where on the title
      # Just you know,  "Glory" .
      ##############################################################################
      #after lots of time spent on this little script, I cannot say much more than "I spent way too much time on this buddy"
      #I just could not let it just beat me easy like that
      #first I noticed repeated lines
      #then repeated line loops
      #then repeated reversed lines
      #then repeated planes and reversed planes and repeated reversed planes.... etc. It sucked all the way
      #but finally here you go.
      #you can make it faster by removing all the print statements of making them comments with one of these "#"
      # you need an ASCII STL file  NOT A BINARY!!!!
      #!!!!!!AGAIN!!!! NOT A BINARY STL. 
      #name the stl  "infile.stl"
      #the output will be  "outfile.geo"
      #!!!TAKE a look at the messege console on GMSH to make sure non of your line loops are "wrong"
      #if one is wrong, just make sure the lines are folling the right hand rule
      #usually it would go like : 1,2   2,4   4,1   and not    1,2  4,2   4,1   notice that the middle is supposed to be a negative line
      # so if line 2 is 4,2  and your line loop is {1,2,3}  then it should be {1,-2,3}
      #other than that, enjoy my pain, I mean script.
      ##############################################################################
      use strict;
      use warnings;
      #######
      our $stlin = "infile.stl";# file to be exported, replace with *.stl later
      our $geoout = "outfile.geo";# output file, replace with *.geo later
      our $sorter = "sort.txt";# Lines, lines loops and planes are written here first
      our @lines = ();# where the initial file goes
      our @lin= (); # this is used to keep the current number for points inside lines
      our $i=1;#point counting. number given to points
      our $j=0;#line step counter count 3 points per plane
      our $k=0;#line counter. number given to lines
      our $m=1;#line loop and plane counter. number shared betwix line loops and planes since they are sequencial and non overlapping.
      our @linps = ();#array of points to make lines from at every 3 counts
      our %seen = ();#stores points that have been seen before and in the order read
      our %points = ();#stores all points in the order read
      our %data = ();
      our %ldata = ();
      our %pdata = ();
      our $firs;
      our $sec;
      our $tird;
      our %lok = ();
      our @fl = ();
      our @row = ();
      our %rhs = ();
      our %fhs = ();
      our @count = ();
      #######
      open(INFILE,"$stlin") or die "Cannot open '$stlin': $!";
      @lines = <INFILE>;
      close(INFILE);
      open(PTFILE,">$geoout") or die "Cannot open '$geoout': $!";#so we open the output file for initial output
      print PTFILE "lc=0.1;\n";
      ####################################################################################
      foreach my $line (@lines) { #read all points and place them in a file   
      if ($line =~ /vertex\s(\S*)/ ) { #if it looks like a point containing line
      $line =~ /vertex\s(\S*)\s(\S*)\s(\S*)/; #grab point coordinates
      # print $1;       
      %data = (#given a point number I give you coordinates to a point
      "$i" => {
      "x" => "$1",
      "y" => "$2",
      "z" => "$3",
      }
      );
      #print "Point($i) = {", $data{"$i"}{"x"},",", $data{"$i"}{"y"},",", $data{"$i"}{"z"},", lc};\n";
      next if $seen{"$1$2$3"}++;#only unrepeated point coordinates pass this point
      print PTFILE "Point($i) = {", $data{"$i"}{"x"},",", $data{"$i"}{"y"},",", $data{"$i"}{"z"},", lc};\n";
          print "Point($i) = {", $data{"$i"}{"x"},",", $data{"$i"}{"y"},",", $data{"$i"}{"z"},", lc};\n";
      my $done = "$1$2$3";
      $ldata{$done} = $i;#given a set of coordinates to a point I give you a point number
      $pdata{$i}= "$done"; #given a point number I give you a point
      #both $i and $done cannot be repeated
      $i++;
      }
      }
      %seen = (); #reset hash of stuff we already saw
      #exit;
      ########################
      foreach my $line (@lines) { #here we arrange an array to hold the point numbers not their value
      if ($line =~ /vertex\s(\S*)/ ) { #if it looks like a point containing line
      $line =~ /vertex\s(\S*)\s(\S*)\s(\S*)/; #grab point coordinates
      my $done = "$1$2$3";
      print $done,"\n";
      $lin[$j] = $ldata{$done};#we extract a point number from a set of extracted coordinates
      if ($k >= 2) { #if three points have been read
      $firs=$j-2;#we need to extrapolate these beforehand for some reason. I believe because I have no idea how to do it otherwise.
      $sec=$j-1;
      $tird=$j-0;
      @{$fl[$firs]}= ($lin[$firs],$lin[$sec]); #use the points in combinations of two each 3 to make 3 lines
      @{$fl[$sec]}= ($lin[$sec],$lin[$tird]); #these point conbinations can reverse {3,4},{4,3} and cause repeated lines here
      @{$fl[$tird]}= ($lin[$tird],$lin[$firs]);
      #where $fl starts at $firs=0, but lin[0]=1 so lines start at 1
          print $firs,"(",$fl[$firs][0]," ",$fl[$firs][1],")   ",$sec,"(",$fl[$sec][0]," ",$fl[$sec][1],")   ",$tird,"(",$fl[$tird][0]," ",$fl[$tird][1],")\n";
      $k=-1;#we then reset the counter after three line coordinates have been read
      }
      $k++;#here we need to increment the line set counter
      $j++;#and the point counter
      }
      }
      #exit;
      #########################
      #this loop finds repeated numbers
      $i=0;#after the complete set of points has been related to their point numbers
      $j=0;#we reset the counting variables
      foreach our $row (@fl) { #$i counts the line number
          if (defined $rhs{"@$row[0]@$row[1]"}){
              if (defined $rhs{"@$row[1]@$row[0]"}){
                  if ($rhs{"@$row[0]@$row[1]"}>$rhs{"@$row[1]@$row[0]"}){
                      $j=$rhs{"@$row[1]@$row[0]"};
                      $fl[$i][0]= "reverse";
                      $fl[$i][1]= $j;
                      }
                      else {       
                      $j=$rhs{"@$row[0]@$row[1]"};
                      $fl[$i][0]= "repeat";
                      $fl[$i][1]= $j;
                      }
                  }
          }
         
      else {
      $rhs{"@$row[0]@$row[1]"}=$i;
      }
      print $i," (",$fl[$i][0]," - ",$fl[$i][1],")\n";
      $i++;
      }
      #exit;
      #the repeated numbers are replaced with markers "repeat" so that the next loop does not see these
      #########################
      #this loop finds reversed numbers
      $i=0;
      $j=0;
      %rhs = ();
      foreach my $row (@fl) { #$i counts the line number
          if (defined $rhs{"@$row[1]@$row[0]"}){
              $j=$rhs{"@$row[1]@$row[0]"};
      $fl[$i][0]= "reverse";
      $fl[$i][1]= $j;
      }
      else {
      $rhs{"@$row[0]@$row[1]"}= $i;
      }
      #print $i," (",$fl[$i][0]," - ",$fl[$i][1],")\n";
      $i++;
      }
      #exit;
      #########################
      #$fl[5] =  5 (reverse - 0)
      #line  5 is a reverse of line 0
      #when @fl starts at 0
      #we want line 6 is a reverse of line 1
      #so count[6] = 6 (reverse -1)
      print "\n";
      for $k (1 .. $#fl+1) {
      $count[$k][0] = $k;
      $count[$k][1] = $k;
      if ("$fl[$k-1][0]" eq "repeat"){ #where $k does not equal $fl[$k][1]
      $count[$k][0] = $fl[$k-1][1]+1;#if we find the mark on a line then $count gets the number of the original point and not the current point
      $count[$k][1] = $fl[$k-1][1]+1;
      }
      if ("$fl[$k-1][0]" eq "reverse"){ #where $k does not equal $fl[$k][1]
      $count[$k][0] = -($fl[$k-1][1]+1);#if we find the mark on a line then $count gets the number of the original point and not the current point
      $count[$k][1]= $fl[$k-1][1]+1;
      }
      print $k,") [",$count[$k][0] ,"] [",$count[$k][1] ,"] (",$fl[$k-1][0]," , ",$fl[$k-1][1],")\n";
      #print "point list $count[$k]\n";
      }
      #exit;
      #########################
      $k=1;
      $j=1;
      foreach my $row (@fl) {
      if ($k >2) { #if three points have been tested
      print  $j-2,", Line(",$count[$j-2][1],") = {",$fl[$count[$j-2][1]-1][0],",",$fl[$count[$j-2][1]-1][1],"}\;\n";
      print  $j-1,", Line(",$count[$j-1][1],") = {",$fl[$count[$j-1][1]-1][0],",",$fl[$count[$j-1][1]-1][1],"}\;\n";
      print  "$j, Line(",$count[$j][1],") = {",$fl[$count[$j][1]-1][0],",",$fl[$count[$j][1]-1][1],"}\;\n";
      print "\n";   
         
         
      print PTFILE "Line(",$count[$j-2][1],") = {",$fl[$count[$j-2][1]-1][0],",",$fl[$count[$j-2][1]-1][1],"}\;\n";
      print PTFILE "Line(",$count[$j-1][1],") = {",$fl[$count[$j-1][1]-1][0],",",$fl[$count[$j-1][1]-1][1],"}\;\n";
      print PTFILE "Line(",$count[$j][1],") = {",$fl[$count[$j][1]-1][0],",",$fl[$count[$j][1]-1][1],"}\;\n";
      print PTFILE "Line Loop(",$m,") = {",$count[$j-2][0],",",$count[$j-1][0],",",$count[$j][0],"};\n";

      $m++;
      print PTFILE "Plane Surface(",$m,") = {",$m-1,"};\n";
      $k=0;
      $m++;
      }
      $j++;
      $k++;
      }
      #exit;
      #######################
      print "size of array: " . @lines . ".\n";
      close(PTFILE);
      open(PTFILE,"$geoout") or die "Cannot open '$geoout': $!";
      @lines = <PTFILE>;
      close(PTFILE);
      open(PTFILE,">$geoout") or die "Cannot open '$geoout': $!";
      foreach my $line (@lines) {
      next if $seen{"$line"}++;
      print PTFILE "$line";
      }
      close(PTFILE)

       
    • I used the new version of the converter to try and set up a simple model of a wing in a wind tunnel, the converter seemed to work fine, but when I try to mesh it, the program crashes - kind of a now you see it now you don't thing - Can someone look and see if they can find a problem with it ?

      lc=0.1;
      Point(1) = {-1.651071e-01,2.500000e-01,1.558402e-01, lc};
      Point(2) = {2.718929e-01,2.500000e-01,-1.385160e+00, lc};
      Point(3) = {-1.651071e-01,2.500000e-01,-1.385160e+00, lc};
      Point(4) = {2.718929e-01,-3.380000e+00,-1.385160e+00, lc};
      Point(5) = {-1.651071e-01,-3.380000e+00,-1.385160e+00, lc};
      Point(6) = {2.718929e-01,2.500000e-01,1.558402e-01, lc};
      Point(7) = {2.718929e-01,-3.380000e+00,1.558402e-01, lc};
      Point(8) = {-1.651071e-01,-3.380000e+00,1.558402e-01, lc};
      Point(9) = {2.032250e-01,0.000000e+00,-8.418204e-01, lc};
      Point(10) = {4.108165e-03,0.000000e+00,-7.268560e-01, lc};
      Point(11) = {1.522021e-02,0.000000e+00,-1.195964e+00, lc};
      Point(12) = {1.776306e-02,-9.666667e-01,-1.032432e+00, lc};
      Point(13) = {1.900936e-01,0.000000e+00,-9.779088e-01, lc};
      Point(14) = {1.624732e-01,0.000000e+00,-1.084211e+00, lc};
      Point(15) = {8.042753e-02,0.000000e+00,-1.220558e+00, lc};
      Point(16) = {2.732969e-02,0.000000e+00,-1.221934e+00, lc};
      Point(17) = {2.522402e-02,-9.666667e-01,-1.051839e+00, lc};
      Point(18) = {1.749342e-01,0.000000e+00,-4.785528e-01, lc};
      Point(19) = {1.185199e-02,0.000000e+00,-3.738412e-01, lc};
      Point(20) = {2.561832e-02,-2.900000e+00,-5.348339e-01, lc};
      Point(21) = {1.987712e-01,0.000000e+00,-6.752730e-01, lc};
      Point(22) = {2.030845e-02,-1.934300e+00,-8.687367e-01, lc};
      Point(23) = {2.284875e-02,-2.900000e+00,-7.053682e-01, lc};
      Point(24) = {7.310875e-02,0.000000e+00,-2.247134e-02, lc};
      Point(25) = {3.323791e-02,0.000000e+00,-2.247134e-02, lc};
      Point(26) = {3.040900e-02,-2.900000e+00,-4.458391e-01, lc};
      Point(27) = {1.128325e-01,0.000000e+00,-1.753426e-01, lc};
      Point(28) = {1.478066e-01,0.000000e+00,-3.311040e-01, lc};
      Point(29) = {6.272269e-02,0.000000e+00,-6.530913e-03, lc};
      Point(30) = {3.639046e-02,0.000000e+00,-1.323437e-02, lc};
      Point(31) = {3.805109e-02,-2.900000e+00,-3.532650e-01, lc};
      Point(32) = {4.362471e-02,0.000000e+00,-6.530365e-03, lc};
      Point(33) = {4.114332e-02,-2.900000e+00,-3.486459e-01, lc};
      Point(34) = {5.317232e-02,0.000000e+00,-4.105050e-03, lc};
      Point(35) = {4.390957e-02,-2.900000e+00,-3.479565e-01, lc};
      Point(36) = {4.669007e-02,-2.900000e+00,-3.486535e-01, lc};
      Point(37) = {6.727346e-02,-7.250000e-01,-1.051698e-01, lc};
      Point(38) = {1.037519e-01,-7.250000e-01,-2.495116e-01, lc};
      Point(39) = {1.349046e-01,-7.250000e-01,-3.998723e-01, lc};
      Point(40) = {1.582969e-01,-7.250000e-01,-5.529476e-01, lc};
      Point(41) = {1.700260e-01,-7.250000e-01,-7.050968e-01, lc};
      Point(42) = {1.647756e-01,-7.250000e-01,-8.517032e-01, lc};
      Point(43) = {1.354190e-01,-7.250000e-01,-9.852424e-01, lc};
      Point(44) = {3.976517e-02,0.000000e+00,-1.229633e+00, lc};
      Point(45) = {5.418351e-02,0.000000e+00,-1.232063e+00, lc};
      Point(46) = {7.640512e-02,-7.250000e-01,-1.092123e+00, lc};
      Point(47) = {5.881622e-02,-9.666667e-01,-1.061020e+00, lc};
      Point(48) = {7.506432e-02,-9.666667e-01,-1.049312e+00, lc};
      Point(49) = {4.078261e-02,-9.666667e-01,-1.061750e+00, lc};
      Point(50) = {1.131729e-01,-1.450725e+00,-8.733840e-01, lc};
      Point(51) = {7.237869e-02,-1.450725e+00,-9.635609e-01, lc};
      Point(52) = {5.863231e-02,-1.934300e+00,-8.902335e-01, lc};
      Point(53) = {6.969574e-02,-1.934300e+00,-8.778954e-01, lc};
      Point(54) = {4.198194e-02,-1.934300e+00,-8.937649e-01, lc};
      Point(55) = {2.663892e-02,-1.934300e+00,-8.852907e-01, lc};
      Point(56) = {9.094287e-02,-2.176450e+00,-7.615280e-01, lc};
      Point(57) = {6.835226e-02,-2.176450e+00,-8.349984e-01, lc};
      Point(58) = {5.299326e-02,-2.900000e+00,-7.238614e-01, lc};
      Point(59) = {6.433789e-02,-2.900000e+00,-7.068211e-01, lc};
      Point(60) = {6.081930e-02,-2.900000e+00,-7.168247e-01, lc};
      Point(61) = {4.279884e-02,-2.900000e+00,-7.261035e-01, lc};
      Point(62) = {2.554029e-02,-2.900000e+00,-7.155123e-01, lc};
      Point(63) = {3.280261e-02,-2.900000e+00,-7.230963e-01, lc};
      Point(64) = {6.853400e-02,-2.900000e+00,-6.546734e-01, lc};
      Point(65) = {7.601249e-02,-2.944590e+00,-6.977873e-01, lc};
      Point(66) = {7.855256e-02,-2.943135e+00,-6.490084e-01, lc};
      Point(67) = {7.284758e-02,-2.946403e+00,-7.082305e-01, lc};
      Point(68) = {6.388939e-02,-2.951534e+00,-7.158924e-01, lc};
      Point(69) = {5.202362e-02,-2.958315e+00,-7.154491e-01, lc};
      Point(70) = {4.315950e-02,-2.963367e+00,-7.069652e-01, lc};
      Point(71) = {5.355249e-02,-2.957516e+00,-3.594411e-01, lc};
      Point(72) = {4.036275e-02,-2.964962e+00,-6.959303e-01, lc};
      Point(73) = {6.143234e-02,-1.450725e+00,-1.879509e-01, lc};
      Point(74) = {8.903023e-02,-1.450725e+00,-3.002368e-01, lc};
      Point(75) = {1.115507e-01,-1.450725e+00,-4.162669e-01, lc};
      Point(76) = {1.283008e-01,-1.450725e+00,-5.341718e-01, lc};
      Point(77) = {1.367818e-01,-1.450725e+00,-6.518531e-01, lc};
      Point(78) = {1.333820e-01,-1.450725e+00,-7.665202e-01, lc};
      Point(79) = {5.559122e-02,-2.176450e+00,-2.707320e-01, lc};
      Point(80) = {7.430855e-02,-2.176450e+00,-3.509620e-01, lc};
      Point(81) = {8.819689e-02,-2.176450e+00,-4.326616e-01, lc};
      Point(82) = {9.830481e-02,-2.176450e+00,-5.153961e-01, lc};
      Point(83) = {1.035372e-01,-2.176450e+00,-5.986093e-01, lc};
      Point(84) = {1.019885e-01,-2.176450e+00,-6.813373e-01, lc};
      Point(85) = {4.976761e-02,-2.900000e+00,-3.532650e-01, lc};
      Point(86) = {6.061212e-02,-2.900000e+00,-4.086772e-01, lc};
      Point(87) = {5.638986e-02,-2.900000e+00,-3.792563e-01, lc};
      Point(88) = {6.723525e-02,-2.900000e+00,-4.783231e-01, lc};
      Point(89) = {6.421568e-02,-2.900000e+00,-4.413710e-01, lc};
      Point(90) = {6.958285e-02,-2.900000e+00,-5.208510e-01, lc};
      Point(91) = {7.077928e-02,-2.900000e+00,-5.709326e-01, lc};
      Point(92) = {7.037331e-02,-2.900000e+00,-5.447891e-01, lc};
      Point(93) = {7.043682e-02,-2.900000e+00,-6.098985e-01, lc};
      Point(94) = {6.325308e-02,-2.951912e+00,-3.592656e-01, lc};
      Point(95) = {7.062299e-02,-2.947667e+00,-3.994313e-01, lc};
      Point(96) = {7.449834e-02,-2.945427e+00,-4.389036e-01, lc};
      Point(97) = {7.711264e-02,-2.943917e+00,-4.783286e-01, lc};
      Point(98) = {7.888390e-02,-2.942902e+00,-5.184204e-01, lc};
      Point(99) = {7.981609e-02,-2.942379e+00,-5.598482e-01, lc};
      Point(100) = {7.977759e-02,-2.942418e+00,-6.032072e-01, lc};
      Point(101) = {4.962872e-02,-2.942859e+00,-3.534825e-01, lc};
      Point(102) = {5.458624e-02,-2.940822e+00,-3.533904e-01, lc};
      Point(103) = {1.084779e-01,-2.977451e+00,-6.880712e-01, lc};
      Point(104) = {1.093224e-01,-2.976011e+00,-6.402579e-01, lc};
      Point(105) = {1.067871e-01,-2.980396e+00,-6.986628e-01, lc};
      Point(106) = {1.017118e-01,-2.989262e+00,-7.068596e-01, lc};
      Point(107) = {9.493847e-02,-3.001127e+00,-7.070374e-01, lc};
      Point(108) = {8.989976e-02,-3.009978e+00,-6.989938e-01, lc};
      Point(109) = {6.118945e-02,-2.992030e+00,-6.920645e-01, lc};
      Point(110) = {1.531733e-01,-2.989707e+00,-6.789944e-01, lc};
      Point(111) = {1.531733e-01,-2.989184e+00,-6.279182e-01, lc};
      Point(112) = {1.531733e-01,-2.999842e+00,-6.962203e-01, lc};
      Point(113) = {1.531733e-01,-2.992472e+00,-6.888964e-01, lc};
      Point(114) = {1.531733e-01,-3.009908e+00,-6.988441e-01, lc};
      Point(115) = {1.531733e-01,-3.019948e+00,-6.961248e-01, lc};
      Point(116) = {8.832470e-02,-3.012737e+00,-6.882017e-01, lc};
      Point(117) = {1.531733e-01,-3.027250e+00,-6.887316e-01, lc};
      Point(118) = {9.569796e-02,-2.999551e+00,-3.650168e-01, lc};
      Point(119) = {1.531733e-01,-3.029911e+00,-6.787949e-01, lc};
      Point(120) = {1.531733e-01,-3.026445e+00,-5.270461e-01, lc};
      Point(121) = {1.531733e-01,-3.014862e+00,-3.711825e-01, lc};
      Point(122) = {1.682401e-01,-2.989791e+00,-6.763253e-01, lc};
      Point(123) = {1.684540e-01,-2.989636e+00,-6.298215e-01, lc};
      Point(124) = {1.692947e-01,-2.994512e+00,-6.889316e-01, lc};
      Point(125) = {1.697107e-01,-3.000802e+00,-6.938529e-01, lc};
      Point(126) = {1.697726e-01,-3.016856e+00,-6.947206e-01, lc};
      Point(127) = {1.698649e-01,-3.008778e+00,-6.959343e-01, lc};
      Point(128) = {1.693966e-01,-3.023803e+00,-6.903686e-01, lc};
      Point(129) = {1.688300e-01,-3.028422e+00,-6.835877e-01, lc};
      Point(130) = {1.682021e-01,-3.029872e+00,-6.762524e-01, lc};
      Point(131) = {7.963100e-02,-2.973587e+00,-3.621989e-01, lc};
      Point(132) = {7.757504e-02,-2.975602e+00,-3.579005e-01, lc};
      Point(133) = {1.050555e-01,-2.983443e+00,-4.034711e-01, lc};
      Point(134) = {1.011071e-01,-2.990310e+00,-3.651383e-01, lc};
      Point(135) = {1.069927e-01,-2.980083e+00,-4.407838e-01, lc};
      Point(136) = {1.082451e-01,-2.977911e+00,-4.779055e-01, lc};
      Point(137) = {1.090914e-01,-2.976442e+00,-5.156562e-01, lc};
      Point(138) = {1.095757e-01,-2.975597e+00,-5.548165e-01, lc};
      Point(139) = {1.096744e-01,-2.975417e+00,-5.961175e-01, lc};
      Point(140) = {1.531733e-01,-3.004670e+00,-3.711825e-01, lc};
      Point(141) = {1.121943e-01,-2.998978e+00,-3.624204e-01, lc};
      Point(142) = {1.531733e-01,-2.996234e+00,-4.167576e-01, lc};
      Point(143) = {1.531733e-01,-2.999167e+00,-3.925426e-01, lc};
      Point(144) = {1.531733e-01,-2.993907e+00,-4.435881e-01, lc};
      Point(145) = {1.531733e-01,-2.990657e+00,-5.095291e-01, lc};
      Point(146) = {1.531733e-01,-2.992104e+00,-4.740539e-01, lc};
      Point(147) = {1.531733e-01,-2.990078e+00,-5.298189e-01, lc};
      Point(148) = {1.531733e-01,-2.989610e+00,-5.523097e-01, lc};
      Point(149) = {1.531733e-01,-2.989213e+00,-5.867160e-01, lc};
      Point(150) = {1.687312e-01,-3.004795e+00,-3.729572e-01, lc};
      Point(151) = {1.531733e-01,-3.007323e+00,-3.672004e-01, lc};
      Point(152) = {1.685894e-01,-3.007424e+00,-3.690106e-01, lc};
      Point(153) = {1.686263e-01,-3.006391e+00,-3.697504e-01, lc};
      Point(154) = {1.684205e-01,-2.997021e+00,-4.133083e-01, lc};
      Point(155) = {1.685903e-01,-3.000304e+00,-3.886073e-01, lc};
      Point(156) = {1.684808e-01,-2.995236e+00,-4.321413e-01, lc};
      Point(157) = {1.685135e-01,-2.993579e+00,-4.567921e-01, lc};
      Point(158) = {1.685729e-01,-2.992031e+00,-4.889955e-01, lc};
      Point(159) = {1.686133e-01,-2.990701e+00,-5.321881e-01, lc};
      Point(160) = {1.686095e-01,-2.990174e+00,-5.593652e-01, lc};
      Point(161) = {1.685658e-01,-2.989797e+00,-5.914383e-01, lc};
      Point(162) = {7.391028e-02,-2.979264e+00,-3.579074e-01, lc};
      Point(163) = {1.102914e-01,-3.003603e+00,-3.623338e-01, lc};
      Point(164) = {1.531733e-01,-3.009766e+00,-3.665813e-01, lc};
      Point(165) = {1.685187e-01,-3.009774e+00,-3.684009e-01, lc};
      Point(166) = {1.531733e-01,-3.012193e+00,-3.671920e-01, lc};
      Point(167) = {1.684470e-01,-3.012181e+00,-3.689804e-01, lc};
      Point(168) = {1.684116e-01,-3.013184e+00,-3.696758e-01, lc};
      Point(169) = {1.682191e-01,-3.026320e+00,-5.258796e-01, lc};
      Point(170) = {1.683048e-01,-3.014836e+00,-3.729086e-01, lc};
      Point(171) = {1.781733e-01,-3.019872e+00,-6.762381e-01, lc};
      Point(172) = {1.781733e-01,-2.999847e+00,-5.848956e-01, lc};
      Point(173) = {1.781733e-01,-2.999790e+00,-6.762616e-01, lc};
      Point(174) = {1.752547e-01,-2.992729e+00,-6.763066e-01, lc};
      Point(175) = {1.781733e-01,-3.000808e+00,-6.805394e-01, lc};
      Point(176) = {1.781733e-01,-3.017055e+00,-5.419400e-01, lc};
      Point(177) = {1.781733e-01,-3.000921e+00,-5.230415e-01, lc};
      Point(178) = {1.752613e-01,-2.993736e+00,-5.280997e-01, lc};
      Point(179) = {1.752580e-01,-2.992658e+00,-6.022115e-01, lc};
      Point(180) = {1.781733e-01,-3.007950e+00,-4.058484e-01, lc};
      Point(181) = {1.781733e-01,-3.002448e+00,-4.791356e-01, lc};
      Point(182) = {1.752647e-01,-2.996692e+00,-4.539829e-01, lc};
      Point(183) = {1.768528e-01,-3.011912e+00,-3.947200e-01, lc};
      Point(184) = {1.779874e-01,-3.006635e+00,-4.002850e-01, lc};
      Point(185) = {1.769114e-01,-3.010656e+00,-3.890691e-01, lc};
      Point(186) = {1.781733e-01,-3.018566e+00,-6.810852e-01, lc};
      Point(187) = {1.752547e-01,-3.026933e+00,-6.762478e-01, lc};
      Point(188) = {1.781733e-01,-3.004082e+00,-6.843274e-01, lc};
      Point(189) = {1.781733e-01,-3.014663e+00,-6.849008e-01, lc};
      Point(190) = {1.752547e-01,-3.021905e+00,-6.882179e-01, lc};
      Point(191) = {1.781733e-01,-3.009295e+00,-6.860920e-01, lc};
      Point(192) = {1.752547e-01,-3.009861e+00,-6.931671e-01, lc};
      Point(193) = {1.752547e-01,-2.997800e+00,-6.882545e-01, lc};
      Point(194) = {1.732376e-01,-3.014525e+00,-3.836895e-01, lc};
      Point(195) = {1.724638e-01,-3.005054e+00,-3.747231e-01, lc};
      Point(196) = {1.753377e-01,-3.005506e+00,-3.795564e-01, lc};
      Point(197) = {1.750726e-01,-3.005457e+00,-3.788409e-01, lc};
      Point(198) = {1.707426e-01,-3.012771e+00,-3.708714e-01, lc};
      Point(199) = {1.730991e-01,-3.014180e+00,-3.804663e-01, lc};
      Point(200) = {1.719328e-01,-3.013345e+00,-3.738956e-01, lc};
      Point(201) = {1.726394e-01,-3.013808e+00,-3.771528e-01, lc};
      Point(202) = {1.729302e-01,-3.007994e+00,-3.721435e-01, lc};
      Point(203) = {1.765788e-01,-3.005740e+00,-3.846702e-01, lc};
      Point(204) = {1.750841e-01,-3.008823e+00,-3.774759e-01, lc};
      Point(205) = {1.772701e-01,-3.005912e+00,-3.905156e-01, lc};
      Point(206) = {1.776456e-01,-3.006131e+00,-3.951604e-01, lc};
      Point(207) = {1.762637e-01,-3.009693e+00,-3.832306e-01, lc};
      Point(208) = {1.752795e-01,-3.013462e+00,-3.891717e-01, lc};
      Line(1) = {1,2};
      Line(2) = {2,3};
      Line(3) = {3,1};
      Line Loop(1) = {1,2,3};
      Plane Surface(2) = {1};
      Line(4) = {4,3};
      Line(6) = {2,4};
      Line Loop(3) = {4,-2,6};
      Plane Surface(4) = {3};
      Line(7) = {5,1};
      Line(9) = {3,5};
      Line Loop(5) = {7,-3,9};
      Plane Surface(6) = {5};
      Line(10) = {4,5};
      Line Loop(7) = {10,-9,-4};
      Plane Surface(8) = {7};
      Line(13) = {1,6};
      Line(14) = {6,2};
      Line Loop(9) = {13,14,-1};
      Plane Surface(10) = {9};
      Line(16) = {7,2};
      Line(18) = {6,7};
      Line Loop(11) = {16,-14,18};
      Plane Surface(12) = {11};
      Line(21) = {7,4};
      Line Loop(13) = {-6,-16,21};
      Plane Surface(14) = {13};
      Line(22) = {8,6};
      Line(24) = {1,8};
      Line Loop(15) = {22,-13,24};
      Plane Surface(16) = {15};
      Line(27) = {8,7};
      Line Loop(17) = {-18,-22,27};
      Plane Surface(18) = {17};
      Line(30) = {5,8};
      Line Loop(19) = {-24,-7,30};
      Plane Surface(20) = {19};
      Line(33) = {5,7};
      Line Loop(21) = {-27,-30,33};
      Plane Surface(22) = {21};
      Line Loop(23) = {-21,-33,-10};
      Plane Surface(24) = {23};
      Line(37) = {9,10};
      Line(38) = {10,11};
      Line(39) = {11,9};
      Line Loop(25) = {37,38,39};
      Plane Surface(26) = {25};
      Line(40) = {12,11};
      Line(42) = {10,12};
      Line Loop(27) = {40,-38,42};
      Plane Surface(28) = {27};
      Line(43) = {13,9};
      Line(45) = {11,13};
      Line Loop(29) = {43,-39,45};
      Plane Surface(30) = {29};
      Line(46) = {14,13};
      Line(48) = {11,14};
      Line Loop(31) = {46,-45,48};
      Plane Surface(32) = {31};
      Line(49) = {15,14};
      Line(51) = {11,15};
      Line Loop(33) = {49,-48,51};
      Plane Surface(34) = {33};
      Line(52) = {16,15};
      Line(54) = {11,16};
      Line Loop(35) = {52,-51,54};
      Plane Surface(36) = {35};
      Line(55) = {17,16};
      Line(57) = {11,17};
      Line Loop(37) = {55,-54,57};
      Plane Surface(38) = {37};
      Line(58) = {12,17};
      Line Loop(39) = {58,-57,-40};
      Plane Surface(40) = {39};
      Line(61) = {18,19};
      Line(62) = {19,10};
      Line(63) = {10,18};
      Line Loop(41) = {61,62,63};
      Plane Surface(42) = {41};
      Line(64) = {20,10};
      Line(66) = {19,20};
      Line Loop(43) = {64,-62,66};
      Plane Surface(44) = {43};
      Line(67) = {21,18};
      Line(69) = {10,21};
      Line Loop(45) = {67,-63,69};
      Plane Surface(46) = {45};
      Line(70) = {9,21};
      Line Loop(47) = {70,-69,-37};
      Plane Surface(48) = {47};
      Line(73) = {22,12};
      Line(75) = {10,22};
      Line Loop(49) = {73,-42,75};
      Plane Surface(50) = {49};
      Line(76) = {23,22};
      Line(78) = {10,23};
      Line Loop(51) = {76,-75,78};
      Plane Surface(52) = {51};
      Line(79) = {20,23};
      Line Loop(53) = {79,-78,-64};
      Plane Surface(54) = {53};
      Line(82) = {24,25};
      Line(83) = {25,19};
      Line(84) = {19,24};
      Line Loop(55) = {82,83,84};
      Plane Surface(56) = {55};
      Line(85) = {26,19};
      Line(87) = {25,26};
      Line Loop(57) = {85,-83,87};
      Plane Surface(58) = {57};
      Line(88) = {27,24};
      Line(90) = {19,27};
      Line Loop(59) = {88,-84,90};
      Plane Surface(60) = {59};
      Line(91) = {28,27};
      Line(93) = {19,28};
      Line Loop(61) = {91,-90,93};
      Plane Surface(62) = {61};
      Line(94) = {18,28};
      Line Loop(63) = {94,-93,-61};
      Plane Surface(64) = {63};
      Line(97) = {26,20};
      Line Loop(65) = {97,-66,-85};
      Plane Surface(66) = {65};
      Line(100) = {29,30};
      Line(101) = {30,25};
      Line(102) = {25,29};
      Line Loop(67) = {100,101,102};
      Plane Surface(68) = {67};
      Line(103) = {31,25};
      Line(105) = {30,31};
      Line Loop(69) = {103,-101,105};
      Plane Surface(70) = {69};
      Line(106) = {24,29};
      Line Loop(71) = {106,-102,-82};
      Plane Surface(72) = {71};
      Line(111) = {31,26};
      Line Loop(73) = {-87,-103,111};
      Plane Surface(74) = {73};
      Line(112) = {29,32};
      Line(113) = {32,30};
      Line Loop(75) = {112,113,-100};
      Plane Surface(76) = {75};
      Line(115) = {33,30};
      Line(117) = {32,33};
      Line Loop(77) = {115,-113,117};
      Plane Surface(78) = {77};
      Line(118) = {33,31};
      Line Loop(79) = {118,-105,-115};
      Plane Surface(80) = {79};
      Line(121) = {29,34};
      Line(122) = {34,32};
      Line Loop(81) = {121,122,-112};
      Plane Surface(82) = {81};
      Line(124) = {35,32};
      Line(126) = {34,35};
      Line Loop(83) = {124,-122,126};
      Plane Surface(84) = {83};
      Line(127) = {35,33};
      Line Loop(85) = {127,-117,-124};
      Plane Surface(86) = {85};
      Line(130) = {36,34};
      Line(132) = {29,36};
      Line Loop(87) = {130,-121,132};
      Plane Surface(88) = {87};
      Line(133) = {36,35};
      Line Loop(89) = {133,-126,-130};
      Plane Surface(90) = {89};
      Line(138) = {24,36};
      Line Loop(91) = {-132,-106,138};
      Plane Surface(92) = {91};
      Line(139) = {37,24};
      Line(141) = {27,37};
      Line Loop(93) = {139,-88,141};
      Plane Surface(94) = {93};
      Line(144) = {37,36};
      Line Loop(95) = {-138,-139,144};
      Plane Surface(96) = {95};
      Line(145) = {38,27};
      Line(147) = {28,38};
      Line Loop(97) = {145,-91,147};
      Plane Surface(98) = {97};
      Line(148) = {38,37};
      Line Loop(99) = {148,-141,-145};
      Plane Surface(100) = {99};
      Line(151) = {39,28};
      Line(153) = {18,39};
      Line Loop(101) = {151,-94,153};
      Plane Surface(102) = {101};
      Line(154) = {39,38};
      Line Loop(103) = {154,-147,-151};
      Plane Surface(104) = {103};
      Line(157) = {40,18};
      Line(159) = {21,40};
      Line Loop(105) = {157,-67,159};
      Plane Surface(106) = {105};
      Line(160) = {40,39};
      Line Loop(107) = {160,-153,-157};
      Plane Surface(108) = {107};
      Line(163) = {41,21};
      Line(165) = {9,41};
      Line Loop(109) = {163,-70,165};
      Plane Surface(110) = {109};
      Line(166) = {41,40};
      Line Loop(111) = {166,-159,-163};
      Plane Surface(112) = {111};
      Line(169) = {42,9};
      Line(171) = {13,42};
      Line Loop(113) = {169,-43,171};
      Plane Surface(114) = {113};
      Line(172) = {42,41};
      Line Loop(115) = {172,-165,-169};
      Plane Surface(116) = {115};
      Line(177) = {14,42};
      Line Loop(117) = {-171,-46,177};
      Plane Surface(118) = {117};
      Line(178) = {43,14};
      Line(180) = {15,43};
      Line Loop(119) = {178,-49,180};
      Plane Surface(120) = {119};
      Line(181) = {43,42};
      Line Loop(121) = {181,-177,-178};
      Plane Surface(122) = {121};
      Line(184) = {44,45};
      Line(185) = {45,15};
      Line(186) = {15,44};
      Line Loop(123) = {184,185,186};
      Plane Surface(124) = {123};
      Line(187) = {46,15};
      Line(189) = {45,46};
      Line Loop(125) = {187,-185,189};
      Plane Surface(126) = {125};
      Line(190) = {16,44};
      Line Loop(127) = {190,-186,-52};
      Plane Surface(128) = {127};
      Line(195) = {46,43};
      Line Loop(129) = {-180,-187,195};
      Plane Surface(130) = {129};
      Line(196) = {47,45};
      Line(198) = {44,47};
      Line Loop(131) = {196,-184,198};
      Plane Surface(132) = {131};
      Line(199) = {48,46};
      Line(201) = {45,48};
      Line Loop(133) = {199,-189,201};
      Plane Surface(134) = {133};
      Line(202) = {47,48};
      Line Loop(135) = {202,-201,-196};
      Plane Surface(136) = {135};
      Line(205) = {49,44};
      Line(207) = {16,49};
      Line Loop(137) = {205,-190,207};
      Plane Surface(138) = {137};
      Line(208) = {49,47};
      Line Loop(139) = {208,-198,-205};
      Plane Surface(140) = {139};
      Line(211) = {17,49};
      Line Loop(141) = {211,-207,-55};
      Plane Surface(142) = {141};
      Line(214) = {50,46};
      Line(216) = {48,50};
      Line Loop(143) = {214,-199,216};
      Plane Surface(144) = {143};
      Line(217) = {50,43};
      Line Loop(145) = {217,-195,-214};
      Plane Surface(146) = {145};
      Line(220) = {51,48};
      Line(222) = {47,51};
      Line Loop(147) = {220,-202,222};
      Plane Surface(148) = {147};
      Line(225) = {51,50};
      Line Loop(149) = {-216,-220,225};
      Plane Surface(150) = {149};
      Line(226) = {52,47};
      Line(228) = {49,52};
      Line Loop(151) = {226,-208,228};
      Plane Surface(152) = {151};
      Line(229) = {53,51};
      Line(231) = {47,53};
      Line Loop(153) = {229,-222,231};
      Plane Surface(154) = {153};
      Line(232) = {52,53};
      Line Loop(155) = {232,-231,-226};
      Plane Surface(156) = {155};
      Line(235) = {54,49};
      Line(237) = {17,54};
      Line Loop(157) = {235,-211,237};
      Plane Surface(158) = {157};
      Line(238) = {54,52};
      Line Loop(159) = {238,-228,-235};
      Plane Surface(160) = {159};
      Line(241) = {55,17};
      Line(243) = {12,55};
      Line Loop(161) = {241,-58,243};
      Plane Surface(162) = {161};
      Line(244) = {55,54};
      Line Loop(163) = {244,-237,-241};
      Plane Surface(164) = {163};
      Line(247) = {22,55};
      Line Loop(165) = {247,-243,-73};
      Plane Surface(166) = {165};
      Line(250) = {56,51};
      Line(252) = {53,56};
      Line Loop(167) = {250,-229,252};
      Plane Surface(168) = {167};
      Line(253) = {56,50};
      Line Loop(169) = {253,-225,-250};
      Plane Surface(170) = {169};
      Line(256) = {57,53};
      Line(258) = {52,57};
      Line Loop(171) = {256,-232,258};
      Plane Surface(172) = {171};
      Line(261) = {57,56};
      Line Loop(173) = {-252,-256,261};
      Plane Surface(174) = {173};
      Line(262) = {58,52};
      Line(264) = {54,58};
      Line Loop(175) = {262,-238,264};
      Plane Surface(176) = {175};
      Line(265) = {59,57};
      Line(267) = {52,59};
      Line Loop(177) = {265,-258,267};
      Plane Surface(178) = {177};
      Line(268) = {60,59};
      Line(270) = {52,60};
      Line Loop(179) = {268,-267,270};
      Plane Surface(180) = {179};
      Line(271) = {58,60};
      Line Loop(181) = {271,-270,-262};
      Plane Surface(182) = {181};
      Line(274) = {61,54};
      Line(276) = {55,61};
      Line Loop(183) = {274,-244,276};
      Plane Surface(184) = {183};
      Line(277) = {61,58};
      Line Loop(185) = {277,-264,-274};
      Plane Surface(186) = {185};
      Line(280) = {62,55};
      Line(282) = {22,62};
      Line Loop(187) = {280,-247,282};
      Plane Surface(188) = {187};
      Line(283) = {63,61};
      Line(285) = {55,63};
      Line Loop(189) = {283,-276,285};
      Plane Surface(190) = {189};
      Line(286) = {62,63};
      Line Loop(191) = {286,-285,-280};
      Plane Surface(192) = {191};
      Line(289) = {23,62};
      Line Loop(193) = {289,-282,-76};
      Plane Surface(194) = {193};
      Line(292) = {64,57};
      Line(294) = {59,64};
      Line Loop(195) = {292,-265,294};
      Plane Surface(196) = {195};
      Line(295) = {64,56};
      Line Loop(197) = {295,-261,-292};
      Plane Surface(198) = {197};
      Line(298) = {65,59};
      Line(300) = {60,65};
      Line Loop(199) = {298,-268,300};
      Plane Surface(200) = {199};
      Line(301) = {66,64};
      Line(303) = {59,66};
      Line Loop(201) = {301,-294,303};
      Plane Surface(202) = {201};
      Line(306) = {65,66};
      Line Loop(203) = {-303,-298,306};
      Plane Surface(204) = {203};
      Line(307) = {67,60};
      Line(309) = {58,67};
      Line Loop(205) = {307,-271,309};
      Plane Surface(206) = {205};
      Line(310) = {67,65};
      Line Loop(207) = {310,-300,-307};
      Plane Surface(208) = {207};
      Line(313) = {68,58};
      Line(315) = {61,68};
      Line Loop(209) = {313,-277,315};
      Plane Surface(210) = {209};
      Line(316) = {68,67};
      Line Loop(211) = {316,-309,-313};
      Plane Surface(212) = {211};
      Line(319) = {69,61};
      Line(321) = {63,69};
      Line Loop(213) = {319,-283,321};
      Plane Surface(214) = {213};
      Line(322) = {69,68};
      Line Loop(215) = {322,-315,-319};
      Plane Surface(216) = {215};
      Line(325) = {70,63};
      Line(327) = {62,70};
      Line Loop(217) = {325,-286,327};
      Plane Surface(218) = {217};
      Line(328) = {70,69};
      Line Loop(219) = {328,-321,-325};
      Plane Surface(220) = {219};
      Line(333) = {23,70};
      Line Loop(221) = {-327,-289,333};
      Plane Surface(222) = {221};
      Line(334) = {71,23};
      Line(336) = {20,71};
      Line Loop(223) = {334,-79,336};
      Plane Surface(224) = {223};
      Line(337) = {72,70};
      Line(339) = {23,72};
      Line Loop(225) = {337,-333,339};
      Plane Surface(226) = {225};
      Line(340) = {71,72};
      Line Loop(227) = {340,-339,-334};
      Plane Surface(228) = {227};
      Line(343) = {73,37};
      Line(345) = {38,73};
      Line Loop(229) = {343,-148,345};
      Plane Surface(230) = {229};
      Line(348) = {73,36};
      Line Loop(231) = {-144,-343,348};
      Plane Surface(232) = {231};
      Line(349) = {74,38};
      Line(351) = {39,74};
      Line Loop(233) = {349,-154,351};
      Plane Surface(234) = {233};
      Line(352) = {74,73};
      Line Loop(235) = {352,-345,-349};
      Plane Surface(236) = {235};
      Line(355) = {75,39};
      Line(357) = {40,75};
      Line Loop(237) = {355,-160,357};
      Plane Surface(238) = {237};
      Line(358) = {75,74};
      Line Loop(239) = {358,-351,-355};
      Plane Surface(240) = {239};
      Line(361) = {76,40};
      Line(363) = {41,76};
      Line Loop(241) = {361,-166,363};
      Plane Surface(242) = {241};
      Line(364) = {76,75};
      Line Loop(243) = {364,-357,-361};
      Plane Surface(244) = {243};
      Line(367) = {77,41};
      Line(369) = {42,77};
      Line Loop(245) = {367,-172,369};
      Plane Surface(246) = {245};
      Line(370) = {77,76};
      Line Loop(247) = {370,-363,-367};
      Plane Surface(248) = {247};
      Line(373) = {78,42};
      Line(375) = {43,78};
      Line Loop(249) = {373,-181,375};
      Plane Surface(250) = {249};
      Line(376) = {78,77};
      Line Loop(251) = {376,-369,-373};
      Plane Surface(252) = {251};
      Line(379) = {50,78};
      Line Loop(253) = {379,-375,-217};
      Plane Surface(254) = {253};
      Line(382) = {79,73};
      Line(384) = {74,79};
      Line Loop(255) = {382,-352,384};
      Plane Surface(256) = {255};
      Line(387) = {79,36};
      Line Loop(257) = {-348,-382,387};
      Plane Surface(258) = {257};
      Line(388) = {80,74};
      Line(390) = {75,80};
      Line Loop(259) = {388,-358,390};
      Plane Surface(260) = {259};
      Line(391) = {80,79};
      Line Loop(261) = {391,-384,-388};
      Plane Surface(262) = {261};
      Line(394) = {81,75};
      Line(396) = {76,81};
      Line Loop(263) = {394,-364,396};
      Plane Surface(264) = {263};
      Line(397) = {81,80};
      Line Loop(265) = {397,-390,-394};
      Plane Surface(266) = {265};
      Line(400) = {82,76};
      Line(402) = {77,82};
      Line Loop(267) = {400,-370,402};
      Plane Surface(268) = {267};
      Line(403) = {82,81};
      Line Loop(269) = {403,-396,-400};
      Plane Surface(270) = {269};
      Line(406) = {83,77};
      Line(408) = {78,83};
      Line Loop(271) = {406,-376,408};
      Plane Surface(272) = {271};
      Line(409) = {83,82};
      Line Loop(273) = {409,-402,-406};
      Plane Surface(274) = {273};
      Line(412) = {84,78};
      Line(414) = {50,84};
      Line Loop(275) = {412,-379,414};
      Plane Surface(276) = {275};
      Line(415) = {84,83};
      Line Loop(277) = {415,-408,-412};
      Plane Surface(278) = {277};
      Line(418) = {56,84};
      Line Loop(279) = {418,-414,-253};
      Plane Surface(280) = {279};
      Line(421) = {85,79};
      Line(423) = {80,85};
      Line Loop(281) = {421,-391,423};
      Plane Surface(282) = {281};
      Line(426) = {85,36};
      Line Loop(283) = {-387,-421,426};
      Plane Surface(284) = {283};
      Line(427) = {86,80};
      Line(429) = {81,86};
      Line Loop(285) = {427,-397,429};
      Plane Surface(286) = {285};
      Line(430) = {87,85};
      Line(432) = {80,87};
      Line Loop(287) = {430,-423,432};
      Plane Surface(288) = {287};
      Line(433) = {86,87};
      Line Loop(289) = {433,-432,-427};
      Plane Surface(290) = {289};
      Line(436) = {88,81};
      Line(438) = {82,88};
      Line Loop(291) = {436,-403,438};
      Plane Surface(292) = {291};
      Line(439) = {89,86};
      Line(441) = {81,89};
      Line Loop(293) = {439,-429,441};
      Plane Surface(294) = {293};
      Line(442) = {88,89};
      Line Loop(295) = {442,-441,-436};
      Plane Surface(296) = {295};
      Line(445) = {90,82};
      Line(447) = {83,90};
      Line Loop(297) = {445,-409,447};
      Plane Surface(298) = {297};
      Line(448) = {90,88};
      Line Loop(299) = {448,-438,-445};
      Plane Surface(300) = {299};
      Line(451) = {91,83};
      Line(453) = {84,91};
      Line Loop(301) = {451,-415,453};
      Plane Surface(302) = {301};
      Line(454) = {92,90};
      Line(456) = {83,92};
      Line Loop(303) = {454,-447,456};
      Plane Surface(304) = {303};
      Line(457) = {91,92};
      Line Loop(305) = {457,-456,-451};
      Plane Surface(306) = {305};
      Line(460) = {93,84};
      Line(462) = {56,93};
      Line Loop(307) = {460,-418,462};
      Plane Surface(308) = {307};
      Line(463) = {93,91};
      Line Loop(309) = {463,-453,-460};
      Plane Surface(310) = {309};
      Line(466) = {64,93};
      Line Loop(311) = {466,-462,-295};
      Plane Surface(312) = {311};
      Line(469) = {94,85};
      Line(471) = {87,94};
      Line Loop(313) = {469,-430,471};
      Plane Surface(314) = {313};
      Line(472) = {94,36};
      Line Loop(315) = {472,-426,-469};
      Plane Surface(316) = {315};
      Line(475) = {95,87};
      Line(477) = {86,95};
      Line Loop(317) = {475,-433,477};
      Plane Surface(318) = {317};
      Line(478) = {95,94};
      Line Loop(319) = {478,-471,-475};
      Plane Surface(320) = {319};
      Line(481) = {96,86};
      Line(483) = {89,96};
      Line Loop(321) = {481,-439,483};
      Plane Surface(322) = {321};
      Line(484) = {96,95};
      Line Loop(323) = {484,-477,-481};
      Plane Surface(324) = {323};
      Line(489) = {88,96};
      Line Loop(325) = {-483,-442,489};
      Plane Surface(326) = {325};
      Line(490) = {97,88};
      Line(492) = {90,97};
      Line Loop(327) = {490,-448,492};
      Plane Surface(328) = {327};
      Line(493) = {97,96};
      Line Loop(329) = {493,-489,-490};
      Plane Surface(330) = {329};
      Line(496) = {98,90};
      Line(498) = {92,98};
      Line Loop(331) = {496,-454,498};
      Plane Surface(332) = {331};
      Line(499) = {98,97};
      Line Loop(333) = {499,-492,-496};
      Plane Surface(334) = {333};
      Line(502) = {99,92};
      Line(504) = {91,99};
      Line Loop(335) = {502,-457,504};
      Plane Surface(336) = {335};
      Line(505) = {99,98};
      Line Loop(337) = {505,-498,-502};
      Plane Surface(338) = {337};
      Line(508) = {100,91};
      Line(510) = {93,100};
      Line Loop(339) = {508,-463,510};
      Plane Surface(340) = {339};
      Line(511) = {100,99};
      Line Loop(341) = {511,-504,-508};
      Plane Surface(342) = {341};
      Line(516) = {64,100};
      Line Loop(343) = {-510,-466,516};
      Plane Surface(344) = {343};
      Line(517) = {66,100};
      Line Loop(345) = {517,-516,-301};
      Plane Surface(346) = {345};
      Line(520) = {101,31};
      Line(522) = {33,101};
      Line Loop(347) = {520,-118,522};
      Plane Surface(348) = {347};
      Line(523) = {71,26};
      Line(525) = {31,71};
      Line Loop(349) = {523,-111,525};
      Plane Surface(350) = {349};
      Line(528) = {101,71};
      Line Loop(351) = {-525,-520,528};
      Plane Surface(352) = {351};
      Line(529) = {102,33};
      Line(531) = {35,102};
      Line Loop(353) = {529,-127,531};
      Plane Surface(354) = {353};
      Line(534) = {102,101};
      Line Loop(355) = {-522,-529,534};
      Plane Surface(356) = {355};
      Line(537) = {36,102};
      Line Loop(357) = {-531,-133,537};
      Plane Surface(358) = {357};
      Line(540) = {94,102};
      Line Loop(359) = {-537,-472,540};
      Plane Surface(360) = {359};
      Line Loop(361) = {-336,-97,-523};
      Plane Surface(362) = {361};
      Line(544) = {103,65};
      Line(546) = {67,103};
      Line Loop(363) = {544,-310,546};
      Plane Surface(364) = {363};
      Line(547) = {104,65};
      Line(549) = {103,104};
      Line Loop(365) = {547,-544,549};
      Plane Surface(366) = {365};
      Line(550) = {104,66};
      Line Loop(367) = {550,-306,-547};
      Plane Surface(368) = {367};
      Line(553) = {105,67};
      Line(555) = {68,105};
      Line Loop(369) = {553,-316,555};
      Plane Surface(370) = {369};
      Line(556) = {105,103};
      Line Loop(371) = {556,-546,-553};
      Plane Surface(372) = {371};
      Line(559) = {106,68};
      Line(561) = {69,106};
      Line Loop(373) = {559,-322,561};
      Plane Surface(374) = {373};
      Line(562) = {106,105};
      Line Loop(375) = {562,-555,-559};
      Plane Surface(376) = {375};
      Line(565) = {107,69};
      Line(567) = {70,107};
      Line Loop(377) = {565,-328,567};
      Plane Surface(378) = {377};
      Line(568) = {107,106};
      Line Loop(379) = {568,-561,-565};
      Plane Surface(380) = {379};
      Line(571) = {108,70};
      Line(573) = {72,108};
      Line Loop(381) = {571,-337,573};
      Plane Surface(382) = {381};
      Line(574) = {108,107};
      Line Loop(383) = {574,-567,-571};
      Plane Surface(384) = {383};
      Line(577) = {109,108};
      Line(579) = {72,109};
      Line Loop(385) = {577,-573,579};
      Plane Surface(386) = {385};
      Line(580) = {71,109};
      Line Loop(387) = {580,-579,-340};
      Plane Surface(388) = {387};
      Line(583) = {110,103};
      Line(585) = {105,110};
      Line Loop(389) = {583,-556,585};
      Plane Surface(390) = {389};
      Line(586) = {111,103};
      Line(588) = {110,111};
      Line Loop(391) = {586,-583,588};
      Plane Surface(392) = {391};
      Line(589) = {111,104};
      Line Loop(393) = {589,-549,-586};
      Plane Surface(394) = {393};
      Line(592) = {112,105};
      Line(594) = {106,112};
      Line Loop(395) = {592,-562,594};
      Plane Surface(396) = {395};
      Line(595) = {113,110};
      Line(597) = {105,113};
      Line Loop(397) = {595,-585,597};
      Plane Surface(398) = {397};
      Line(598) = {112,113};
      Line Loop(399) = {598,-597,-592};
      Plane Surface(400) = {399};
      Line(601) = {114,106};
      Line(603) = {107,114};
      Line Loop(401) = {601,-568,603};
      Plane Surface(402) = {401};
      Line(604) = {114,112};
      Line Loop(403) = {604,-594,-601};
      Plane Surface(404) = {403};
      Line(607) = {115,107};
      Line(609) = {108,115};
      Line Loop(405) = {607,-574,609};
      Plane Surface(406) = {405};
      Line(610) = {115,114};
      Line Loop(407) = {610,-603,-607};
      Plane Surface(408) = {407};
      Line(613) = {109,116};
      Line(614) = {116,108};
      Line Loop(409) = {613,614,-577};
      Plane Surface(410) = {409};
      Line(616) = {117,108};
      Line(618) = {116,117};
      Line Loop(411) = {616,-614,618};
      Plane Surface(412) = {411};
      Line(619) = {117,115};
      Line Loop(413) = {619,-609,-616};
      Plane Surface(414) = {413};
      Line(622) = {118,116};
      Line(624) = {109,118};
      Line Loop(415) = {622,-613,624};
      Plane Surface(416) = {415};
      Line(625) = {119,117};
      Line(627) = {116,119};
      Line Loop(417) = {625,-618,627};
      Plane Surface(418) = {417};
      Line(628) = {120,119};
      Line(630) = {116,120};
      Line Loop(419) = {628,-627,630};
      Plane Surface(420) = {419};
      Line(631) = {121,116};
      Line(633) = {118,121};
      Line Loop(421) = {631,-622,633};
      Plane Surface(422) = {421};
      Line(636) = {121,120};
      Line Loop(423) = {-630,-631,636};
      Plane Surface(424) = {423};
      Line(639) = {71,118};
      Line Loop(425) = {-624,-580,639};
      Plane Surface(426) = {425};
      Line(640) = {122,110};
      Line(642) = {113,122};
      Line Loop(427) = {640,-595,642};
      Plane Surface(428) = {427};
      Line(643) = {123,111};
      Line(645) = {110,123};
      Line Loop(429) = {643,-588,645};
      Plane Surface(430) = {429};
      Line(648) = {122,123};
      Line Loop(431) = {-645,-640,648};
      Plane Surface(432) = {431};
      Line(649) = {124,113};
      Line(651) = {112,124};
      Line Loop(433) = {649,-598,651};
      Plane Surface(434) = {433};
      Line(652) = {124,122};
      Line Loop(435) = {652,-642,-649};
      Plane Surface(436) = {435};
      Line(655) = {125,112};
      Line(657) = {114,125};
      Line Loop(437) = {655,-604,657};
      Plane Surface(438) = {437};
      Line(658) = {125,124};
      Line Loop(439) = {658,-651,-655};
      Plane Surface(440) = {439};
      Line(661) = {126,114};
      Line(663) = {115,126};
      Line Loop(441) = {661,-610,663};
      Plane Surface(442) = {441};
      Line(664) = {127,125};
      Line(666) = {114,127};
      Line Loop(443) = {664,-657,666};
      Plane Surface(444) = {443};
      Line(667) = {126,127};
      Line Loop(445) = {667,-666,-661};
      Plane Surface(446) = {445};
      Line(670) = {128,115};
      Line(672) = {117,128};
      Line Loop(447) = {670,-619,672};
      Plane Surface(448) = {447};
      Line(673) = {128,126};
      Line Loop(449) = {673,-663,-670};
      Plane Surface(450) = {449};
      Line(676) = {129,117};
      Line(678) = {119,129};
      Line Loop(451) = {676,-625,678};
      Plane Surface(452) = {451};
      Line(679) = {129,128};
      Line Loop(453) = {679,-672,-676};
      Plane Surface(454) = {453};
      Line(682) = {130,119};
      Line(684) = {120,130};
      Line Loop(455) = {682,-628,684};
      Plane Surface(456) = {455};
      Line(687) = {130,129};
      Line Loop(457) = {-678,-682,687};
      Plane Surface(458) = {457};
      Line(688) = {131,94};
      Line(690) = {95,131};
      Line Loop(459) = {688,-478,690};
      Plane Surface(460) = {459};
      Line(691) = {132,94};
      Line(693) = {131,132};
      Line Loop(461) = {691,-688,693};
      Plane Surface(462) = {461};
      Line(694) = {132,102};
      Line Loop(463) = {694,-540,-691};
      Plane Surface(464) = {463};
      Line(697) = {133,95};
      Line(699) = {96,133};
      Line Loop(465) = {697,-484,699};
      Plane Surface(466) = {465};
      Line(700) = {134,131};
      Line(702) = {95,134};
      Line Loop(467) = {700,-690,702};
      Plane Surface(468) = {467};
      Line(703) = {133,134};
      Line Loop(469) = {703,-702,-697};
      Plane Surface(470) = {469};
      Line(706) = {135,96};
      Line(708) = {97,135};
      Line Loop(471) = {706,-493,708};
      Plane Surface(472) = {471};
      Line(709) = {135,133};
      Line Loop(473) = {709,-699,-706};
      Plane Surface(474) = {473};
      Line(712) = {136,97};
      Line(714) = {98,136};
      Line Loop(475) = {712,-499,714};
      Plane Surface(476) = {475};
      Line(715) = {136,135};
      Line Loop(477) = {715,-708,-712};
      Plane Surface(478) = {477};
      Line(718) = {137,98};
      Line(720) = {99,137};
      Line Loop(479) = {718,-505,720};
      Plane Surface(480) = {479};
      Line(721) = {137,136};
      Line Loop(481) = {721,-714,-718};
      Plane Surface(482) = {481};
      Line(724) = {138,99};
      Line(726) = {100,138};
      Line Loop(483) = {724,-511,726};
      Plane Surface(484) = {483};
      Line(727) = {138,137};
      Line Loop(485) = {727,-720,-724};
      Plane Surface(486) = {485};
      Line(730) = {139,100};
      Line(732) = {66,139};
      Line Loop(487) = {730,-517,732};
      Plane Surface(488) = {487};
      Line(733) = {139,138};
      Line Loop(489) = {733,-726,-730};
      Plane Surface(490) = {489};
      Line(736) = {104,139};
      Line Loop(491) = {736,-732,-550};
      Plane Surface(492) = {491};
      Line(741) = {134,132};
      Line Loop(493) = {-693,-700,741};
      Plane Surface(494) = {493};
      Line(742) = {140,134};
      Line(744) = {133,140};
      Line Loop(495) = {742,-703,744};
      Plane Surface(496) = {495};
      Line(745) = {141,134};
      Line(747) = {140,141};
      Line Loop(497) = {745,-742,747};
      Plane Surface(498) = {497};
      Line(748) = {141,132};
      Line Loop(499) = {748,-741,-745};
      Plane Surface(500) = {499};
      Line(751) = {142,133};
      Line(753) = {135,142};
      Line Loop(501) = {751,-709,753};
      Plane Surface(502) = {501};
      Line(754) = {143,140};
      Line(756) = {133,143};
      Line Loop(503) = {754,-744,756};
      Plane Surface(504) = {503};
      Line(757) = {142,143};
      Line Loop(505) = {757,-756,-751};
      Plane Surface(506) = {505};
      Line(760) = {144,135};
      Line(762) = {136,144};
      Line Loop(507) = {760,-715,762};
      Plane Surface(508) = {507};
      Line(763) = {144,142};
      Line Loop(509) = {763,-753,-760};
      Plane Surface(510) = {509};
      Line(766) = {145,136};
      Line(768) = {137,145};
      Line Loop(511) = {766,-721,768};
      Plane Surface(512) = {511};
      Line(769) = {146,144};
      Line(771) = {136,146};
      Line Loop(513) = {769,-762,771};
      Plane Surface(514) = {513};
      Line(772) = {145,146};
      Line Loop(515) = {772,-771,-766};
      Plane Surface(516) = {515};
      Line(775) = {147,137};
      Line(777) = {138,147};
      Line Loop(517) = {775,-727,777};
      Plane Surface(518) = {517};
      Line(778) = {147,145};
      Line Loop(519) = {778,-768,-775};
      Plane Surface(520) = {519};
      Line(781) = {148,138};
      Line(783) = {139,148};
      Line Loop(521) = {781,-733,783};
      Plane Surface(522) = {521};
      Line(784) = {148,147};
      Line Loop(523) = {784,-777,-781};
      Plane Surface(524) = {523};
      Line(787) = {111,139};
      Line Loop(525) = {787,-736,-589};
      Plane Surface(526) = {525};
      Line(790) = {149,148};
      Line(792) = {139,149};
      Line Loop(527) = {790,-783,792};
      Plane Surface(528) = {527};
      Line(793) = {111,149};
      Line Loop(529) = {793,-792,-787};
      Plane Surface(530) = {529};
      Line(796) = {150,140};
      Line(798) = {143,150};
      Line Loop(531) = {796,-754,798};
      Plane Surface(532) = {531};
      Line(799) = {151,141};
      Line(801) = {140,151};
      Line Loop(533) = {799,-747,801};
      Plane Surface(534) = {533};
      Line(802) = {152,151};
      Line(804) = {140,152};
      Line Loop(535) = {802,-801,804};
      Plane Surface(536) = {535};
      Line(805) = {153,140};
      Line(807) = {150,153};
      Line Loop(537) = {805,-796,807};
      Plane Surface(538) = {537};
      Line(808) = {153,152};
      Line Loop(539) = {808,-804,-805};
      Plane Surface(540) = {539};
      Line(811) = {154,143};
      Line(813) = {142,154};
      Line Loop(541) = {811,-757,813};
      Plane Surface(542) = {541};
      Line(814) = {155,150};
      Line(816) = {143,155};
      Line Loop(543) = {814,-798,816};
      Plane Surface(544) = {543};
      Line(817) = {154,155};
      Line Loop(545) = {817,-816,-811};
      Plane Surface(546) = {545};
      Line(820) = {156,142};
      Line(822) = {144,156};
      Line Loop(547) = {820,-763,822};
      Plane Surface(548) = {547};
      Line(823) = {156,154};
      Line Loop(549) = {823,-813,-820};
      Plane Surface(550) = {549};
      Line(826) = {157,144};
      Line(828) = {146,157};
      Line Loop(551) = {826,-769,828};
      Plane Surface(552) = {551};
      Line(829) = {157,156};
      Line Loop(553) = {829,-822,-826};
      Plane Surface(554) = {553};
      Line(832) = {158,146};
      Line(834) = {145,158};
      Line Loop(555) = {832,-772,834};
      Plane Surface(556) = {555};
      Line(835) = {158,157};
      Line Loop(557) = {835,-828,-832};
      Plane Surface(558) = {557};
      Line(840) = {147,158};
      Line Loop(559) = {-834,-778,840};
      Plane Surface(560) = {559};
      Line(841) = {159,147};
      Line(843) = {148,159};
      Line Loop(561) = {841,-784,843};
      Plane Surface(562) = {561};
      Line(844) = {159,158};
      Line Loop(563) = {844,-840,-841};
      Plane Surface(564) = {563};
      Line(847) = {160,148};
      Line(849) = {149,160};
      Line Loop(565) = {847,-790,849};
      Plane Surface(566) = {565};
      Line(850) = {160,159};
      Line Loop(567) = {850,-843,-847};
      Plane Surface(568) = {567};
      Line(853) = {161,149};
      Line(855) = {111,161};
      Line Loop(569) = {853,-793,855};
      Plane Surface(570) = {569};
      Line(856) = {161,160};
      Line Loop(571) = {856,-849,-853};
      Plane Surface(572) = {571};
      Line(859) = {123,161};
      Line Loop(573) = {859,-855,-643};
      Plane Surface(574) = {573};
      Line(864) = {132,101};
      Line Loop(575) = {-534,-694,864};
      Plane Surface(576) = {575};
      Line(865) = {162,132};
      Line(867) = {141,162};
      Line Loop(577) = {865,-748,867};
      Plane Surface(578) = {577};
      Line(868) = {162,101};
      Line Loop(579) = {868,-864,-865};
      Plane Surface(580) = {579};
      Line(871) = {163,141};
      Line(873) = {151,163};
      Line Loop(581) = {871,-799,873};
      Plane Surface(582) = {581};
      Line(874) = {163,162};
      Line Loop(583) = {874,-867,-871};
      Plane Surface(584) = {583};
      Line(877) = {164,163};
      Line(879) = {151,164};
      Line Loop(585) = {877,-873,879};
      Plane Surface(586) = {585};
      Line(880) = {165,164};
      Line(882) = {151,165};
      Line Loop(587) = {880,-879,882};
      Plane Surface(588) = {587};
      Line(883) = {152,165};
      Line Loop(589) = {883,-882,-802};
      Plane Surface(590) = {589};
      Line(888) = {162,71};
      Line Loop(591) = {-528,-868,888};
      Plane Surface(592) = {591};
      Line(889) = {118,162};
      Line(891) = {163,118};
      Line Loop(593) = {889,-874,891};
      Plane Surface(594) = {593};
      Line Loop(595) = {-639,-888,-889};
      Plane Surface(596) = {595};
      Line(895) = {164,166};
      Line(896) = {166,163};
      Line Loop(597) = {895,896,-877};
      Plane Surface(598) = {597};
      Line(900) = {166,118};
      Line Loop(599) = {-891,-896,900};
      Plane Surface(600) = {599};
      Line(901) = {167,166};
      Line(903) = {164,167};
      Line Loop(601) = {901,-895,903};
      Plane Surface(602) = {601};
      Line(906) = {166,121};
      Line Loop(603) = {-633,-900,906};
      Plane Surface(604) = {603};
      Line(907) = {168,121};
      Line(909) = {166,168};
      Line Loop(605) = {907,-906,909};
      Plane Surface(606) = {605};
      Line(910) = {167,168};
      Line Loop(607) = {910,-909,-901};
      Plane Surface(608) = {607};
      Line(913) = {165,167};
      Line Loop(609) = {913,-903,-880};
      Plane Surface(610) = {609};
      Line(916) = {169,120};
      Line(918) = {121,169};
      Line Loop(611) = {916,-636,918};
      Plane Surface(612) = {611};
      Line(919) = {168,170};
      Line(920) = {170,121};
      Line Loop(613) = {919,920,-907};
      Plane Surface(614) = {613};
      Line(924) = {170,169};
      Line Loop(615) = {-918,-920,924};
      Plane Surface(616) = {615};
      Line(925) = {169,130};
      Line Loop(617) = {925,-684,-916};
      Plane Surface(618) = {617};
      Line(928) = {171,172};
      Line(929) = {172,173};
      Line(930) = {173,171};
      Line Loop(619) = {928,929,930};
      Plane Surface(620) = {619};
      Line(931) = {174,173};
      Line(933) = {172,174};
      Line Loop(621) = {931,-929,933};
      Plane Surface(622) = {621};
      Line(934) = {175,171};
      Line(936) = {173,175};
      Line Loop(623) = {934,-930,936};
      Plane Surface(624) = {623};
      Line(937) = {174,175};
      Line Loop(625) = {937,-936,-931};
      Plane Surface(626) = {625};
      Line(940) = {176,177};
      Line(941) = {177,172};
      Line(942) = {172,176};
      Line Loop(627) = {940,941,942};
      Plane Surface(628) = {627};
      Line(943) = {178,172};
      Line(945) = {177,178};
      Line Loop(629) = {943,-941,945};
      Plane Surface(630) = {629};
      Line(946) = {171,176};
      Line Loop(631) = {946,-942,-928};
      Plane Surface(632) = {631};
      Line(949) = {179,172};
      Line(951) = {178,179};
      Line Loop(633) = {949,-943,951};
      Plane Surface(634) = {633};
      Line(954) = {179,174};
      Line Loop(635) = {-933,-949,954};
      Plane Surface(636) = {635};
      Line(955) = {180,181};
      Line(956) = {181,177};
      Line(957) = {177,180};
      Line Loop(637) = {955,956,957};
      Plane Surface(638) = {637};
      Line(960) = {181,178};
      Line Loop(639) = {-945,-956,960};
      Plane Surface(640) = {639};
      Line(961) = {176,180};
      Line Loop(641) = {961,-957,-940};
      Plane Surface(642) = {641};
      Line(964) = {182,181};
      Line(966) = {180,182};
      Line Loop(643) = {964,-955,966};
      Plane Surface(644) = {643};
      Line(969) = {182,178};
      Line Loop(645) = {-960,-964,969};
      Plane Surface(646) = {645};
      Line(970) = {171,180};
      Line Loop(647) = {970,-961,-946};
      Plane Surface(648) = {647};
      Line(973) = {183,180};
      Line(975) = {171,183};
      Line Loop(649) = {973,-970,975};
      Plane Surface(650) = {649};
      Line(976) = {184,182};
      Line(978) = {180,184};
      Line Loop(651) = {976,-966,978};
      Plane Surface(652) = {651};
      Line(979) = {185,184};
      Line(981) = {180,185};
      Line Loop(653) = {979,-978,981};
      Plane Surface(654) = {653};
      Line(984) = {183,185};
      Line Loop(655) = {-981,-973,984};
      Plane Surface(656) = {655};
      Line(985) = {175,186};
      Line(986) = {186,171};
      Line Loop(657) = {985,986,-934};
      Plane Surface(658) = {657};
      Line(988) = {187,171};
      Line(990) = {186,187};
      Line Loop(659) = {988,-986,990};
      Plane Surface(660) = {659};
      Line(993) = {187,183};
      Line Loop(661) = {-975,-988,993};
      Plane Surface(662) = {661};
      Line(994) = {188,189};
      Line(995) = {189,186};
      Line(996) = {186,188};
      Line Loop(663) = {994,995,996};
      Plane Surface(664) = {663};
      Line(997) = {190,186};
      Line(999) = {189,190};
      Line Loop(665) = {997,-995,999};
      Plane Surface(666) = {665};
      Line(1000) = {175,188};
      Line Loop(667) = {1000,-996,-985};
      Plane Surface(668) = {667};
      Line(1003) = {190,187};
      Line Loop(669) = {1003,-990,-997};
      Plane Surface(670) = {669};
      Line(1006) = {188,191};
      Line(1007) = {191,189};
      Line Loop(671) = {1006,1007,-994};
      Plane Surface(672) = {671};
      Line(1009) = {192,189};
      Line(1011) = {191,192};
      Line Loop(673) = {1009,-1007,1011};
      Plane Surface(674) = {673};
      Line(1012) = {192,190};
      Line Loop(675) = {1012,-999,-1009};
      Plane Surface(676) = {675};
      Line(1017) = {188,192};
      Line Loop(677) = {-1011,-1006,1017};
      Plane Surface(678) = {677};
      Line(1018) = {193,188};
      Line(1020) = {175,193};
      Line Loop(679) = {1018,-1000,1020};
      Plane Surface(680) = {679};
      Line(1021) = {193,192};
      Line Loop(681) = {1021,-1017,-1018};
      Plane Surface(682) = {681};
      Line(1026) = {174,193};
      Line Loop(683) = {-1020,-937,1026};
      Plane Surface(684) = {683};
      Line(1027) = {190,129};
      Line(1029) = {130,190};
      Line Loop(685) = {1027,-687,1029};
      Plane Surface(686) = {685};
      Line(1031) = {170,130};
      Line Loop(687) = {-924,1031,-925};
      Plane Surface(688) = {687};
      Line(1033) = {194,130};
      Line(1035) = {170,194};
      Line Loop(689) = {1033,-1031,1035};
      Plane Surface(690) = {689};
      Line(1037) = {130,187};
      Line Loop(691) = {-1029,1037,-1003};
      Plane Surface(692) = {691};
      Line(1039) = {194,187};
      Line Loop(693) = {1039,-1037,-1033};
      Plane Surface(694) = {693};
      Line(1042) = {174,122};
      Line(1044) = {124,174};
      Line Loop(695) = {1042,-652,1044};
      Plane Surface(696) = {695};
      Line(1045) = {179,123};
      Line(1047) = {122,179};
      Line Loop(697) = {1045,-648,1047};
      Plane Surface(698) = {697};
      Line Loop(699) = {-954,-1047,-1042};
      Plane Surface(700) = {699};
      Line(1051) = {193,124};
      Line(1053) = {125,193};
      Line Loop(701) = {1051,-658,1053};
      Plane Surface(702) = {701};
      Line Loop(703) = {-1026,-1044,-1051};
      Plane Surface(704) = {703};
      Line(1059) = {127,193};
      Line Loop(705) = {-1053,-664,1059};
      Plane Surface(706) = {705};
      Line(1060) = {192,127};
      Line(1062) = {126,192};
      Line Loop(707) = {1060,-667,1062};
      Plane Surface(708) = {707};
      Line Loop(709) = {-1059,-1060,-1021};
      Plane Surface(710) = {709};
      Line(1068) = {128,192};
      Line Loop(711) = {-1062,-673,1068};
      Plane Surface(712) = {711};
      Line(1069) = {190,128};
      Line Loop(713) = {1069,-679,-1027};
      Plane Surface(714) = {713};
      Line Loop(715) = {-1068,-1069,-1012};
      Plane Surface(716) = {715};
      Line(1075) = {195,150};
      Line(1077) = {155,195};
      Line Loop(717) = {1075,-814,1077};
      Plane Surface(718) = {717};
      Line(1078) = {195,153};
      Line Loop(719) = {1078,-807,-1075};
      Plane Surface(720) = {719};
      Line(1081) = {196,155};
      Line(1083) = {154,196};
      Line Loop(721) = {1081,-817,1083};
      Plane Surface(722) = {721};
      Line(1084) = {197,195};
      Line(1086) = {155,197};
      Line Loop(723) = {1084,-1077,1086};
      Plane Surface(724) = {723};
      Line(1087) = {196,197};
      Line Loop(725) = {1087,-1086,-1081};
      Plane Surface(726) = {725};
      Line(1092) = {156,196};
      Line Loop(727) = {-1083,-823,1092};
      Plane Surface(728) = {727};
      Line(1093) = {182,156};
      Line(1095) = {157,182};
      Line Loop(729) = {1093,-829,1095};
      Plane Surface(730) = {729};
      Line(1096) = {182,196};
      Line Loop(731) = {1096,-1092,-1093};
      Plane Surface(732) = {731};
      Line(1101) = {158,182};
      Line Loop(733) = {-1095,-835,1101};
      Plane Surface(734) = {733};
      Line(1102) = {178,158};
      Line(1104) = {159,178};
      Line Loop(735) = {1102,-844,1104};
      Plane Surface(736) = {735};
      Line Loop(737) = {-969,-1101,-1102};
      Plane Surface(738) = {737};
      Line(1110) = {160,178};
      Line Loop(739) = {-1104,-850,1110};
      Plane Surface(740) = {739};
      Line(1113) = {161,178};
      Line Loop(741) = {-1110,-856,1113};
      Plane Surface(742) = {741};
      Line(1114) = {179,161};
      Line Loop(743) = {1114,-859,-1045};
      Plane Surface(744) = {743};
      Line Loop(745) = {-951,-1113,-1114};
      Plane Surface(746) = {745};
      Line(1120) = {198,170};
      Line(1122) = {168,198};
      Line Loop(747) = {1120,-919,1122};
      Plane Surface(748) = {747};
      Line(1123) = {199,194};
      Line(1125) = {170,199};
      Line Loop(749) = {1123,-1035,1125};
      Plane Surface(750) = {749};
      Line(1126) = {200,170};
      Line(1128) = {198,200};
      Line Loop(751) = {1126,-1120,1128};
      Plane Surface(752) = {751};
      Line(1129) = {201,170};
      Line(1131) = {200,201};
      Line Loop(753) = {1129,-1126,1131};
      Plane Surface(754) = {753};
      Line(1134) = {201,199};
      Line Loop(755) = {-1125,-1129,1134};
      Plane Surface(756) = {755};
      Line(1137) = {167,198};
      Line Loop(757) = {-1122,-910,1137};
      Plane Surface(758) = {757};
      Line(1138) = {202,167};
      Line(1140) = {165,202};
      Line Loop(759) = {1138,-913,1140};
      Plane Surface(760) = {759};
      Line(1143) = {202,198};
      Line Loop(761) = {-1137,-1138,1143};
      Plane Surface(762) = {761};
      Line(1146) = {152,202};
      Line Loop(763) = {-1140,-883,1146};
      Plane Surface(764) = {763};
      Line(1147) = {195,152};
      Line Loop(765) = {1147,-808,-1078};
      Plane Surface(766) = {765};
      Line(1152) = {195,202};
      Line Loop(767) = {-1146,-1147,1152};
      Plane Surface(768) = {767};
      Line(1155) = {197,202};
      Line Loop(769) = {-1152,-1084,1155};
      Plane Surface(770) = {769};
      Line(1158) = {196,202};
      Line Loop(771) = {-1155,-1087,1158};
      Plane Surface(772) = {771};
      Line(1159) = {203,196};
      Line(1161) = {182,203};
      Line Loop(773) = {1159,-1096,1161};
      Plane Surface(774) = {773};
      Line(1162) = {204,196};
      Line(1164) = {203,204};
      Line Loop(775) = {1162,-1159,1164};
      Plane Surface(776) = {775};
      Line(1165) = {204,202};
      Line Loop(777) = {1165,-1158,-1162};
      Plane Surface(778) = {777};
      Line(1168) = {205,203};
      Line(1170) = {182,205};
      Line Loop(779) = {1168,-1161,1170};
      Plane Surface(780) = {779};
      Line(1171) = {206,205};
      Line(1173) = {182,206};
      Line Loop(781) = {1171,-1170,1173};
      Plane Surface(782) = {781};
      Line(1174) = {184,206};
      Line Loop(783) = {1174,-1173,-976};
      Plane Surface(784) = {783};
      Line(1179) = {205,204};
      Line Loop(785) = {-1164,-1168,1179};
      Plane Surface(786) = {785};
      Line(1180) = {207,205};
      Line(1182) = {206,207};
      Line Loop(787) = {1180,-1171,1182};
      Plane Surface(788) = {787};
      Line(1183) = {207,204};
      Line Loop(789) = {1183,-1179,-1180};
      Plane Surface(790) = {789};
      Line(1186) = {185,206};
      Line Loop(791) = {1186,-1174,-979};
      Plane Surface(792) = {791};
      Line(1189) = {185,207};
      Line Loop(793) = {1189,-1182,-1186};
      Plane Surface(794) = {793};
      Line(1192) = {208,183};
      Line(1194) = {187,208};
      Line Loop(795) = {1192,-993,1194};
      Plane Surface(796) = {795};
      Line(1195) = {194,208};
      Line Loop(797) = {1195,-1194,-1039};
      Plane Surface(798) = {797};
      Line(1198) = {199,183};
      Line(1200) = {208,199};
      Line Loop(799) = {1198,-1192,1200};
      Plane Surface(800) = {799};
      Line(1201) = {199,185};
      Line Loop(801) = {1201,-984,-1198};
      Plane Surface(802) = {801};
      Line Loop(803) = {-1200,-1195,-1123};
      Plane Surface(804) = {803};
      Line(1209) = {204,198};
      Line Loop(805) = {-1143,-1165,1209};
      Plane Surface(806) = {805};
      Line(1210) = {200,204};
      Line(1212) = {207,200};
      Line Loop(807) = {1210,-1183,1212};
      Plane Surface(808) = {807};
      Line Loop(809) = {-1128,-1209,-1210};
      Plane Surface(810) = {809};
      Line(1216) = {201,207};
      Line(1218) = {185,201};
      Line Loop(811) = {1216,-1189,1218};
      Plane Surface(812) = {811};
      Line Loop(813) = {-1131,-1212,-1216};
      Plane Surface(814) = {813};
      Line Loop(815) = {-1134,-1218,-1201};
      Plane Surface(816) = {815};

      Surface Loop(10000) = {2,4,6,8,10,12,14,16,18,20,22,24};
      Surface Loop(10001) = {26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484,486,488,490,492,494,496,498,500,502,504,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700,702,704,706,708,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750,752,754,756,758,760,762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796,798,800,802,804,806,808,810,812,814,816};
      Volume(100000)={10000,10001};

      //Inlet
      Physical Surface (2000)={4,8};
      //outlet
      Physical Surface (2001)={16,18};
      //walls
      Physical Surface(2003)={22,24,2,10,12,14,6,20};
      //volume
      Physical Volume(2004)={100000};

       
    • I got a 2d mesh. 3-d crashes SMSH 1.65 and 2.0. It might have to do with your cl value.  make as small as the smallest line. Also try the new GMSH 2.0. Its nice and fast. also imports STEP files.  One thing that might be happening is that I have all my normals pointing out. In your case, your model, the box should have normals pointing out and the wing should have normals pointing in. That I have not implemented at all. The STL file comes with normals, and I completly ignored them. Maybe I'll take a look at that.

      Fonss

       
    • Thanks a lot Fonss  one more beer to your list

      I did not realize that Gmsh 2.0 was out and that it can import STEP, I will go look for it on Sourceforge

       
    • Hey,

      I kept thinking about it yesterday.  There is no reason why the normals would be bad. I follow the right hand rule all over the stl import and so my script will produce a GEO that has the same normal directions as in the STL, which should be correct.  So I think that it is just a matter of changing the cl. Add more cl sizes and give points where the stl has small lines the smaller cl values  like:

      cl = .3
      kl = .01

      point 1  etc etc kl;
      point 98 etc etc cl;

      so some points get cl which is large and some points get kl, which is small..  I think GMSH is changing that will some special code that will add finer cl where it needs to be finer.

      Fonss

       
    • So even if you did the mesh by hand, you would still get the same results until you play with the mesh cl values.

      Fonss

       
    • I agree - I re-loaded the airfoil with Gmesh 2.0 and a stp file, got the same result. I need to play around with the stp converter - I could not seem to write out a geo file from it, so I cannoot locally control the length factor at specific keyponts. If we can do that, then the airfoil should mesh. Let me know if you are interested and I can post the stp file.

       
    • What are you using for cad?   I've been using pro/e to do these ASCII stl exports. If your stl program does not organize the triangles in the right hand rule, then the output GEO file will not follow the right hand rule (but the exact same order as the original STL file)

      What I would do is I would draw a cube inside another cube, then I would write the triangles to follow the right hand rule. Then I would input that into gmsh and see that the mesh is good. After that I would take at least one triangle and write it in the opposite direction. At that point gmsh would not write a mesh but would give an error.

      WOW!  hey this is the new Firefox browser I'm using here. If you type something wrong, you can just right click and select the correct word,, just like if you were in the email tool or the word processor.  GMSH is not correct, you should change it to gash, gosh, gush, or GM SH.

      Anyway. I think anyone reading this, should show this software to a programmer buddy somewhere. Someone has to pickup the code again and give it a little fixing for compatibility with the new GMSH code.

      I'll be looking into the new mesh format and see if I can write a mesh translator to put it back to OpenFlower standard. I bet its simple. I just haven't had time to write more code. I mean, I spent too much on that last piece (an it isn't even that nice of a code). I got all the time in the world, as long as there is someone who wants to use OpenFlower.

      Fonss

       
    • Fonss,
      Thank you for your comments, the airfoil model is in Pro-E, It is not a real problem, just something that I made up. I have since been investigating the use of Gerris, but have been spending most of my time getting it installed and running on Linux. I think Openflower has a lot of potential, I don't know anything about programming or I would jump in and help.

      Thanks again