Mike,

here is the way you should follow with Gmsh:

w3.geo just includes w.geo

No need of an intermediate step with a .stl file. You should avoid to define 
twice the same line between two patches.

Cheers,

Dave

--
David Colignon, Ph.D.
Collaborateur Logistique du F.R.S.-FNRS
CÉCI - Consortium des Équipements de Calcul Intensif
ACE - Applied & Computational Electromagnetics
Sart-Tilman B28
Université de Liège
4000 Liège - BELGIQUE
Tél: +32 (0)4 366 37 32
Fax: +32 (0)4 366 29 10
WWW:    http://hpc.montefiore.ulg.ac.be/
Agenda: http://www.google.com/calendar/embed?src=david.colignon%40gmail.com



Mike B. wrote:
Hi Dave,

I generate the STL in Gmsh.  Please find the script attached.

Cheers and thanks,
Mike.

--- On *Fri, 8/7/09, David Colignon /<[email protected]>/* wrote:


    From: David Colignon <[email protected]>
    Subject: Re: [Gmsh] Gmsh fails to create a volume mesh around an STL
    surface mesh
    To: "Mike B." <[email protected]>
    Date: Friday, August 7, 2009, 7:19 PM




    Mike B. wrote:
     > Hi Dave,
     >
     > Thanks for checking this.
     >
     > 1. I'm getting : `Tetgen not compiled with this version'. How do
    I enable it?.

    Download and run the latest version from the website.

     >
     > 2. I generate the STL as a surface mesh of the wing since this
    gives only a single patch and not tens of them (when the wing is
    defined by individual ruled surfaces).

    But with which software do you generate the .stl file ? If it is
    with Gmsh, can you send the file you use ?

    Dave


    I need a single patch since otherwise the
     > CFD solver fails.
     >
     > Cheers and thanks,
     > Mike.
     >
     > Cheers and thanks,
     > Mike.
     >
     > --- On *Fri, 8/7/09, David Colignon /<[email protected]
    </mc/[email protected]>>/* wrote:
     >
     >
     >     From: David Colignon <[email protected]
    </mc/[email protected]>>
     >     Subject: Re: [Gmsh] Gmsh fails to create a volume mesh around
    an STL
     >     surface mesh
     >     To: "Mike B.." <[email protected]
    </mc/[email protected]>>
     >     Date: Friday, August 7, 2009, 7:00 PM
     >
     >     The following works for me: w2.geo
     >
     >     Note that I force the use of the Tetgen 3D Meshing algo. I don't
     >     understand why Netgen complains and fails.
     >
     >     ...
     >     ...
     >     Error   : ERROR: Edge 161 - 166 multiple times in surface mesh
     >     Error   : ERROR: Edge 165 - 166 multiple times in surface mesh
     >     Error   : ERROR: Surface mesh not consistent
     >     Error   : ERROR: Stop meshing since surface mesh not consistent
     >
     >
     >     Where do your .stl file comes from ?
     >
     >     Cheers,
     >
     >     Dave
     >
     >
     >     -- David Colignon, Ph.D..
     >     Collaborateur Logistique du F.R.S.-FNRS
     >     CÉCI - Consortium des Équipements de Calcul Intensif
     >     ACE - Applied & Computational Electromagnetics
     >     Sart-Tilman B28
     >     Université de Liège
     >     4000 Liège - BELGIQUE
     >     Tél: +32 (0)4 366 37 32
     >     Fax: +32 (0)4 366 29 10
     >     WWW:    http://hpc.montefiore.ulg.ac.be/
     >     Agenda:
> http://www.google.com/calendar/embed?src=david.colignon%40gmail.com
     >
     >
     >
     >     Mike B. wrote:
     >      > Hi Dave,
     >      >
     >      > Please find them attached..
     >      >
     >      > Cheers and thanks,
     >      > Mike.
     >      >
     >      > --- On *Fri, 8/7/09, David Colignon
    /<[email protected] </mc/[email protected]>
     >     </mc/[email protected]
    </mc/[email protected]>>>/* wrote:
     >      >
     >      >
     >      >     From: David Colignon <[email protected]
    </mc/[email protected]>
     >     </mc/[email protected]
    </mc/[email protected]>>>
     >      >     Subject: Re: [Gmsh] Gmsh fails to create a volume mesh
    around
     >     an STL
     >      >     surface mesh
     >      >     To: "Mike B." <[email protected]
    </mc/[email protected]>
     >     </mc/[email protected]
    </mc/[email protected]>>>
     >      >     Cc: "Gmsh mai.. lis." <[email protected]
    </mc/[email protected]>
     >     </mc/[email protected] </mc/[email protected]>>>
     >      >     Date: Friday, August 7, 2009, 5:38 PM
     >      >
     >      >     Hi Mike,
     >      >
     >      >     can you send us your files ?
     >      >
     >      >     Cheers,
     >      >
     >      >     Dave
     >      >
     >      >     -- David Colignon, Ph.D.
     >      >     Collaborateur Logistique du F.R.S.-FNRS
     >      >     CÉCI - Consortium des Équipements de Calcul Intensif
     >      >     ACE - Applied & Computational Electromagnetics
     >      >     Sart-Tilman B28
     >      >     Université de Liège
     >      >     4000 Liège - BELGIQUE
     >      >     Tél: +32 (0)4 366 37 32
     >      >     Fax: +32 (0)4 366 29 10
     >      >     WWW:    http://hpc.montefiore.ulg.ac.be/
     >      >     Agenda:
> > http://www.google.com/calendar/embed?src=david.colignon%40gmail.com > <http://www..google.com/calendar/embed?src=david.colignon%40gmail..com
    <http://www..google.com/calendar/embed?src=david.colignon%40gmail.com>>
     >      >
     >      >
     >      >
     >      >     Mike B. wrote:
     >      >      > Dear All,
     >      >      >
     >      >      > I have a surface mesh saved as and STL file (similar to
     >      >     `sphere-surf..stl' from `demos/sphere-discrete.geo').
     >      >      >
     >      >      > I merge the STL file, define a cuboid around it and
    request a
     >      >     volume mesh (`Mesh 3;'). Gmsh meshes the cuboid faces but
     >     fails to
     >      >     mesh the volume, giving multiple error lines such as:
     >      >      > Error: ERROR: Edge 190-191 multiple times in
    surface mesh
     >      >      >
     >      >      > This problem is also mentioned in:
     >      >      >
> > http://article.gmane.org/gmane.comp.cad.gmsh.general/380/match=multiple+edges
     >      >      >
     >      >      > This seems to be a problem with mesh algoritm. Any
    ideas
     >     how to
     >      >     solve this?.
     >      >      >
     >      >      > Cheers and thanks,
     >      >      > Mike.
     >      >      >
     >      >      >
     >      >      > __________________________________________________
     >      >      > Do You Yahoo!?
     >      >      > Tired of spam? Yahoo! Mail has the best spam
    protection around
     >      >      > http://mail.yahoo.com
     >      >      >
     >      >      >
     >      >      >
> > ------------------------------------------------------------------------
     >      >      >
     >      >      > _______________________________________________
     >      >      > gmsh mailing list
     >      >      > [email protected] </mc/[email protected]>
    </mc/[email protected] </mc/[email protected]>>
     >     </mc/[email protected] </mc/[email protected]>
    </mc/[email protected] </mc/[email protected]>>>
     >      >      > http://www.geuz..org/mailman/listinfo/gmsh
     >     <http://www.geuz.org/mailman/listinfo/gmsh>
     >      >
     >      >
     >
     >     -----Inline Attachment Follows-----
     >
     >
     >     Merge "w.stl";
     >
     >     Surface Loop( 1 ) = { 1 };
     >
     >
     >     lc1 = 0.1 ;
     >
     >     Point( 3001 ) = { -00002.750, -00001.500, -00000.699 , lc1 };
     >     Point( 3002 ) = { +00003.250, -00001.500, -00000.699 , lc1 };
     >     Point( 3003 ) = { +00003.250, +00002.500, -00000.699 , lc1 };
     >     Point( 3004 ) = { -00002.750, +00002.500, -00000.699 , lc1 };
     >     Point( 3005 ) = { -00002.750, -00001.500, +00001.095 , lc1 };
     >     Point( 3006 ) = { +00003.250, -00001.500, +00001.095 , lc1 };
     >     Point( 3007 ) = { +00003..250, +00002.500, +00001.095 , lc1 };
     >     Point( 3008 ) = { -00002.750, +00002.500, +00001.095 , lc1 };
     >
     >     Line( 3001 ) = { 3001, 3002 };
     >     Line( 3002 ) = { 3002, 3003 };
     >     Line( 3003 ) = { 3003, 3004 };
     >     Line( 3004 ) = { 3004, 3001 };
     >     Line( 3005 ) = { 3001, 3005 };
     >     Line( 3006 ) = { 3002, 3006 };
     >     Line( 3007 ) = { 3003, 3007 };
     >     Line( 3008 ) = { 3004, 3008 };
     >     Line( 3009 ) = { 3005, 3006 };
     >     Line( 3010 ) = { 3006, 3007 };
     >     Line( 3011 ) = { 3007, 3008 };
     >     Line( 3012 ) = { 3008, 3005 };
     >
     >     Line Loop( 3001 ) = { 3001, 3002, 3003, 3004 };
     >     Plane Surface( 3011 ) = { 3001 };
     >     Line Loop( 3002 ) = { 3001, 3006, -3009, -3005 };
     >     Plane Surface( 3012 ) = { 3002 };
     >     Line Loop( 3003 ) = { 3006, 3010, -3007, -3002 };
     >     Plane Surface( 3013 ) = { 3003 };
     >     Line Loop( 3004 ) = { 3007, 3011, -3008, -3003 };
     >     Plane Surface( 3014 ) = { 3004 };
     >     Line Loop( 3005 ) = { 3005, -3012, -3008, 3004 };
     >     Plane Surface( 3015 ) = { 3005 };
     >     Line Loop( 3006 ) = { 3009, 3010, 3011, 3012 };
     >     Plane Surface( 3016 ) = { 3006 };
     >
     >     Surface Loop( 2 ) = { 3011, 3012, 3013, 3014, 3015, 3016 };
     >
     >     Volume( 1 ) = { 1, 2 };
     >
     >     Mesh.Algorithm3D = 1; // 3D mesh algorithm
    (1=Tetgen+Delaunay, 4=Netgen)
     >
     >     //Mesh 3;
     >
     >


Include "w.geo" ;

lc1 = 0.5 ;

Point( 3001 ) = { -00002.750, -00001.500, -00000.699 , lc1 };
Point( 3002 ) = { +00003.250, -00001.500, -00000.699 , lc1 };
Point( 3003 ) = { +00003.250, +00002.500, -00000.699 , lc1 };
Point( 3004 ) = { -00002.750, +00002.500, -00000.699 , lc1 };
Point( 3005 ) = { -00002.750, -00001.500, +00001.095 , lc1 };
Point( 3006 ) = { +00003.250, -00001.500, +00001.095 , lc1 };
Point( 3007 ) = { +00003.250, +00002.500, +00001.095 , lc1 };
Point( 3008 ) = { -00002.750, +00002.500, +00001.095 , lc1 };

Line( 3001 ) = { 3001, 3002 };
Line( 3002 ) = { 3002, 3003 };
Line( 3003 ) = { 3003, 3004 };
Line( 3004 ) = { 3004, 3001 };
Line( 3005 ) = { 3001, 3005 };
Line( 3006 ) = { 3002, 3006 };
Line( 3007 ) = { 3003, 3007 };
Line( 3008 ) = { 3004, 3008 };
Line( 3009 ) = { 3005, 3006 };
Line( 3010 ) = { 3006, 3007 };
Line( 3011 ) = { 3007, 3008 };
Line( 3012 ) = { 3008, 3005 };

Line Loop( 3001 ) = { 3001, 3002, 3003, 3004 };
Plane Surface( 3011 ) = { 3001 };
Line Loop( 3002 ) = { 3001, 3006, -3009, -3005 };
Plane Surface( 3012 ) = { 3002 };
Line Loop( 3003 ) = { 3006, 3010, -3007, -3002 };
Plane Surface( 3013 ) = { 3003 };
Line Loop( 3004 ) = { 3007, 3011, -3008, -3003 };
Plane Surface( 3014 ) = { 3004 };
Line Loop( 3005 ) = { 3005, -3012, -3008, 3004 };
Plane Surface( 3015 ) = { 3005 };
Line Loop( 3006 ) = { 3009, 3010, 3011, 3012 };
Plane Surface( 3016 ) = { 3006 };

Surface Loop( 2 ) = { 3011, 3012, 3013, 3014, 3015, 3016 };

Volume( 1 ) = { 2 , 1 };

//Mesh 3;
lcw = 0.1 ; 

Point( 1001 ) = { -00000.250, +00000.000, +00000.000 , lcw };
Point( 1002 ) = { -00000.150, +00000.000, +00000.057 , lcw };
Point( 1003 ) = { -00000.050, +00000.000, +00000.075 , lcw };
Point( 1004 ) = { +00000.050, +00000.000, +00000.077 , lcw };
Point( 1005 ) = { +00000.150, +00000.000, +00000.076 , lcw };
Point( 1006 ) = { +00000.250, +00000.000, +00000.075 , lcw };
Point( 1007 ) = { +00000.350, +00000.000, +00000.074 , lcw };
Point( 1008 ) = { +00000.450, +00000.000, +00000.066 , lcw };
Point( 1009 ) = { +00000.550, +00000.000, +00000.047 , lcw };
Point( 1010 ) = { +00000.650, +00000.000, +00000.018 , lcw };
Point( 1011 ) = { +00000.750, +00000.000, +00000.000 , lcw };
Point( 1012 ) = { +00000.650, +00000.000, -00000.000 , lcw };
Point( 1013 ) = { +00000.550, +00000.000, -00000.004 , lcw };
Point( 1014 ) = { +00000.450, +00000.000, -00000.010 , lcw };
Point( 1015 ) = { +00000.350, +00000.000, -00000.017 , lcw };
Point( 1016 ) = { +00000.250, +00000.000, -00000.022 , lcw };
Point( 1017 ) = { +00000.150, +00000.000, -00000.025 , lcw };
Point( 1018 ) = { +00000.050, +00000.000, -00000.025 , lcw };
Point( 1019 ) = { -00000.050, +00000.000, -00000.025 , lcw };
Point( 1020 ) = { -00000.150, +00000.000, -00000.026 , lcw };
Point( 2001 ) = { -00000.125, +00001.000, +00000.364 , lcw };
Point( 2002 ) = { -00000.075, +00001.000, +00000.400 , lcw };
Point( 2003 ) = { -00000.025, +00001.000, +00000.412 , lcw };
Point( 2004 ) = { +00000.025, +00001.000, +00000.414 , lcw };
Point( 2005 ) = { +00000.075, +00001.000, +00000.415 , lcw };
Point( 2006 ) = { +00000.125, +00001.000, +00000.418 , lcw };
Point( 2007 ) = { +00000.175, +00001.000, +00000.422 , lcw };
Point( 2008 ) = { +00000.225, +00001.000, +00000.420 , lcw };
Point( 2009 ) = { +00000.275, +00001.000, +00000.405 , lcw };
Point( 2010 ) = { +00000.325, +00001.000, +00000.380 , lcw };
Point( 2011 ) = { +00000.375, +00001.000, +00000.364 , lcw };
Point( 2012 ) = { +00000.325, +00001.000, +00000.339 , lcw };
Point( 2013 ) = { +00000.275, +00001.000, +00000.301 , lcw };
Point( 2014 ) = { +00000.225, +00001.000, +00000.275 , lcw };
Point( 2015 ) = { +00000.175, +00001.000, +00000.265 , lcw };
Point( 2016 ) = { +00000.125, +00001.000, +00000.264 , lcw };
Point( 2017 ) = { +00000.075, +00001.000, +00000.263 , lcw };
Point( 2018 ) = { +00000.025, +00001.000, +00000.263 , lcw };
Point( 2019 ) = { -00000.025, +00001.000, +00000.271 , lcw };
Point( 2020 ) = { -00000.075, +00001.000, +00000.303 , lcw };

Line( 1 ) = { 1001, 1002 };
Line( 2 ) = { 1002, 1003 };
Line( 3 ) = { 1003, 1004 };
Line( 4 ) = { 1004, 1005 };
Line( 5 ) = { 1005, 1006 };
Line( 6 ) = { 1006, 1007 };
Line( 7 ) = { 1007, 1008 };
Line( 8 ) = { 1008, 1009 };
Line( 9 ) = { 1009, 1010 };
Line( 10 ) = { 1010, 1011 };
Line( 11 ) = { 1011, 1012 };
Line( 12 ) = { 1012, 1013 };
Line( 13 ) = { 1013, 1014 };
Line( 14 ) = { 1014, 1015 };
Line( 15 ) = { 1015, 1016 };
Line( 16 ) = { 1016, 1017 };
Line( 17 ) = { 1017, 1018 };
Line( 18 ) = { 1018, 1019 };
Line( 19 ) = { 1019, 1020 };
Line( 20 ) = { 1020, 1001 };

Line Loop( 1 ) = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 };
Plane Surface( 1 ) = { -1 };

Line( 2001 ) = { 2001, 2002 };
Line( 2002 ) = { 2002, 2003 };
Line( 2003 ) = { 2003, 2004 };
Line( 2004 ) = { 2004, 2005 };
Line( 2005 ) = { 2005, 2006 };
Line( 2006 ) = { 2006, 2007 };
Line( 2007 ) = { 2007, 2008 };
Line( 2008 ) = { 2008, 2009 };
Line( 2009 ) = { 2009, 2010 };
Line( 2010 ) = { 2010, 2011 };
Line( 2011 ) = { 2011, 2012 };
Line( 2012 ) = { 2012, 2013 };
Line( 2013 ) = { 2013, 2014 };
Line( 2014 ) = { 2014, 2015 };
Line( 2015 ) = { 2015, 2016 };
Line( 2016 ) = { 2016, 2017 };
Line( 2017 ) = { 2017, 2018 };
Line( 2018 ) = { 2018, 2019 };
Line( 2019 ) = { 2019, 2020 };
Line( 2020 ) = { 2020, 2001 };
Line Loop( 2001 ) = { 
2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020
 };
Plane Surface( 2101 ) = { 2001 };

//Line( 1011 ) = { 1001, 1002 };
Line( 1012 ) = { 1002, 2002 };
//Line( 1013 ) = { 2002, 2001 };
Line( 1014 ) = { 2001, 1001 };
Line Loop( 1001 ) = { 1, 1012, -2001, 1014 };
Ruled Surface( 1101 ) = { 1001 };

//Line( 1021 ) = { 1002, 1003 };
Line( 1022 ) = { 1003, 2003 };
//Line( 1023 ) = { 2003, 2002 };
Line Loop( 1002 ) = { 2, 1022, -2002, -1012 };
Ruled Surface( 1102 ) = { 1002 };

//Line( 1031 ) = { 1003, 1004 };
Line( 1032 ) = { 1004, 2004 };
//Line( 1033 ) = { 2004, 2003 };
Line Loop( 1003 ) = { 3, 1032, -2003, -1022 };
Ruled Surface( 1103 ) = { 1003 };

//Line( 1041 ) = { 1004, 1005 };
Line( 1042 ) = { 1005, 2005 };
//Line( 1043 ) = { 2005, 2004 };
Line Loop( 1004 ) = { 4, 1042, -2004, -1032 };
Ruled Surface( 1104 ) = { 1004 };

//Line( 1051 ) = { 1005, 1006 };
Line( 1052 ) = { 1006, 2006 };
//Line( 1053 ) = { 2006, 2005 };
Line Loop( 1005 ) = { 5, 1052, -2005, -1042 };
Ruled Surface( 1105 ) = { 1005 };

//Line( 1061 ) = { 1006, 1007 };
Line( 1062 ) = { 1007, 2007 };
//Line( 1063 ) = { 2007, 2006 };
Line Loop( 1006 ) = { 6, 1062, -2006, -1052 };
Ruled Surface( 1106 ) = { 1006 };

//Line( 1071 ) = { 1007, 1008 };
Line( 1072 ) = { 1008, 2008 };
//Line( 1073 ) = { 2008, 2007 };
Line Loop( 1007 ) = { 7, 1072, -2007, -1062 };
Ruled Surface( 1107 ) = { 1007 };

//Line( 1081 ) = { 1008, 1009 };
Line( 1082 ) = { 1009, 2009 };
//Line( 1083 ) = { 2009, 2008 };
Line Loop( 1008 ) = { 8, 1082, -2008, -1072 };
Ruled Surface( 1108 ) = { 1008 };

//Line( 1091 ) = { 1009, 1010 };
Line( 1092 ) = { 1010, 2010 };
//Line( 1093 ) = { 2010, 2009 };
Line Loop( 1009 ) = { 9, 1092, -2009, -1082 };
Ruled Surface( 1109 ) = { 1009 };

//Line( 1101 ) = { 1010, 1011 };
Line( 1102 ) = { 1011, 2011 };
//Line( 1103 ) = { 2011, 2010 };
Line Loop( 1010 ) = { 10, 1102, -2010, -1092 };
Ruled Surface( 1110 ) = { 1010 };

//Line( 1111 ) = { 1011, 1012 };
Line( 1112 ) = { 1012, 2012 };
//Line( 1113 ) = { 2012, 2011 };
Line Loop( 1011 ) = { 11, 1112, -2011, -1102 };
Ruled Surface( 1111 ) = { 1011 };

//Line( 1121 ) = { 1012, 1013 };
Line( 1122 ) = { 1013, 2013 };
//Line( 1123 ) = { 2013, 2012 };
Line Loop( 1012 ) = { 12, 1122, -2012, -1112 };
Ruled Surface( 1112 ) = { 1012 };

//Line( 1131 ) = { 1013, 1014 };
Line( 1132 ) = { 1014, 2014 };
//Line( 1133 ) = { 2014, 2013 };
Line Loop( 1013 ) = { 13, 1132, -2013, -1122 };
Ruled Surface( 1113 ) = { 1013 };

//Line( 1141 ) = { 1014, 1015 };
Line( 1142 ) = { 1015, 2015 };
//Line( 1143 ) = { 2015, 2014 };
Line Loop( 1014 ) = { 14, 1142, -2014, -1132 };
Ruled Surface( 1114 ) = { 1014 };

//Line( 1151 ) = { 1015, 1016 };
Line( 1152 ) = { 1016, 2016 };
//Line( 1153 ) = { 2016, 2015 };
Line Loop( 1015 ) = { 15, 1152, -2015, -1142 };
Ruled Surface( 1115 ) = { 1015 };

//Line( 1161 ) = { 1016, 1017 };
Line( 1162 ) = { 1017, 2017 };
//Line( 1163 ) = { 2017, 2016 };
Line Loop( 1016 ) = { 16, 1162, -2016, -1152 };
Ruled Surface( 1116 ) = { 1016 };

//Line( 1171 ) = { 1017, 1018 };
Line( 1172 ) = { 1018, 2018 };
//Line( 1173 ) = { 2018, 2017 };
Line Loop( 1017 ) = { 17, 1172, -2017, -1162 };
Ruled Surface( 1117 ) = { 1017 };

//Line( 1181 ) = { 1018, 1019 };
Line( 1182 ) = { 1019, 2019 };
//Line( 1183 ) = { 2019, 2018 };
Line Loop( 1018 ) = { 18, 1182, -2018, -1172 };
Ruled Surface( 1118 ) = { 1018 };

//Line( 1191 ) = { 1019, 1020 };
Line( 1192 ) = { 1020, 2020 };
//Line( 1193 ) = { 2020, 2019 };
Line Loop( 1019 ) = { 19, 1192, -2019, -1182 };
Ruled Surface( 1119 ) = { 1019 };

//Line( 1201 ) = { 1020, 1001 };
//Line( 1202 ) = { 1001, 2001 };
//Line( 1203 ) = { 2001, 2020 };
Line Loop( 1020 ) = { 20, -1014, -2020, -1192 };
Ruled Surface( 1120 ) = { 1020 };

Surface Loop( 1 ) = { 1, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 
1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 2101};

// Mesh 2;
// Mesh.Format = 27;
// Save 'w.stl';

_______________________________________________
gmsh mailing list
[email protected]
http://www.geuz.org/mailman/listinfo/gmsh

Reply via email to