[Gmsh] Remeshing multisolid STL with CreateTopology: "Unknown surface" + "Could not make generatrices"

Sudden Imphead s.imphead at gmail.com
Wed Jan 7 17:51:52 CET 2015


Hi, I enjoy gmsh but I ran into a bug I think.

My test.stl file is closed and contains no self-intersections. In fact,
gmsh will tetrahedralize it! But my FEA diverges, so I'd like to remesh the
four surfaces in the "multisolid" STL to improve and simplify the 3D mesh.
I just can't get the remeshing to work, except for STL "solid" number 3,
which becomes surface(4) in gmsh when merged.

~/bin/gmsh-2.8.5-Linux/bin/gmsh -o test_remeshed.msh -2 remesh.geo

gives me

...
Error   : Unknown surface 1
Warning : Could not make generatrices list for compound surface 252
Error   : Unknown surface 2
Warning : Could not make generatrices list for compound surface 253
Error   : Unknown surface 3
Warning : Could not make generatrices list for compound surface 254
...

Note that surface 4 is *not* reported, in fact, if I do this surface alone,
I can remesh it. The .geo file is shown below, it should obviously work
(?). Also, full log is enclosed below. An additional complaint would be the
infinite loop that gmsh dives into in this case (^C at the end)!

Did I do something overwhelmingly stupid? Or is this a bug?

/si
------------------------------------------------------------------------------

Mesh.CharacteristicLengthFactor=2;

Mesh.RemeshParametrization=1;

Mesh.RemeshAlgorithm=1;
//--------------------------------------------

Merge "test.stl";

// Surface(i), for i {1 : number_surfaces}, results from merging stl!
// How many are there?
ss[] = Surface "*";
number_surfaces = #ss[];
Printf("#Surfaces: %g", number_surfaces);

CreateTopology;

new_cs = news;

For i In {1 : number_surfaces}
  Compound Surface(new_cs + i) = {i};
EndFor

// Express each stl surface as a physical one
For i In {1 : number_surfaces}
  Physical Surface(i) = {new_cs + i};
EndFor

-----------------------------------



Info    : Running '/home/simphead/bin/gmsh-2.8.5-Linux/bin/gmsh -o
test_remeshed.msh -2 remesh.geo' [Gmsh 2.8.5, 1 node, max. 1 thread]
Info    : Started on Wed Jan  7 10:57:57 2015
Info    : Reading 'remesh.geo'...
Info    : Reading 'test.stl'...
Info    : 11244 facets in solid 0
Info    : 141845 facets in solid 1
Info    : 1013 facets in solid 2
Info    : 196 facets in solid 3
Info    : Done reading 'test.stl'
#Surfaces: 4
Info    : Creating topology from mesh...
Info    : Removing duplicate mesh vertices...
Info    : Found 0 duplicate vertices
Info    : No duplicate vertices found
Info    : Done creating topology from mesh (2.12813 s)
Error   : Unknown surface 1
Warning : Could not make generatrices list for compound surface 252
Error   : Unknown surface 2
Warning : Could not make generatrices list for compound surface 253
Error   : Unknown surface 3
Warning : Could not make generatrices list for compound surface 254
Info    : Done reading 'remesh.geo'
Info    : Meshing 1D...
Info    : Done meshing 1D (0 s)
Info    : Meshing 2D...
Info    : Meshing surface 252 (Compound surface, MeshAdapt)
Info    : Wrong topology: Genus=1, Nb boundaries=0, AR=-nan
Info    : -----------------------------------------------------------
Info    : --- Split surface 252 in 3 parts with Multilevel Mesh partitioner
Info    : Building graph...
Error   : No mesh elements were found
Info    : Partitioning graph...
Info    : Multiscale Partition SUCCESSFULLY PERFORMED : 0 parts
(-1.86049e-16 s)
Info    : *** Starting parametrize compounds:
Info    : *** Parametrize compounds done (0.004 s)
Info    : *** Starting meshing 1D edges ...:
Info    : *** Meshing 1D edges done (-3.41307e-16s)
Info    : *** Starting Mesh of surface 252 ...
Info    : *** Mesh of surface 252 done by assembly 0 remeshed faces
(-3.41307e-16 s)
Info    : -----------------------------------------------------------
Info    : Re-orient all 0 face normals coherently


^C
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.geuz.org/pipermail/gmsh/attachments/20150107/19c988ec/attachment.html>