Hi Florian,

This should now be fixed on master.

Christophe

> On 5 Jun 2019, at 14:11, Florian Lindner <[email protected]> wrote:
> 
> Hey,
> 
> thanks again four your explanation. The Resclassify 2D in the GUI works fine
> 
> The meshing, both GUI and command line gives me segfaults on the original 
> Stanford bunny.
> 
> When doing 2D meshing with automatic algorithm:
> 
> Thread 1 "gmsh" received signal SIGSEGV, Segmentation fault.
> 0x0000555555a8b15c in getColorByElement (ele=0x5555573e0530) at 
> /home/lindnefn/software/gmsh/Geo/GModelVertexArrays.cpp:75
> 75            if(e && (e->dim() == ele->getDim())) return getColorByEntity(e);
> (gdb) bt
> #0  0x0000555555a8b15c in getColorByElement (ele=0x5555573e0530) at 
> /home/lindnefn/software/gmsh/Geo/GModelVertexArrays.cpp:75
> #1  getColorByElement (ele=0x5555573e0530) at 
> /home/lindnefn/software/gmsh/Geo/GModelVertexArrays.cpp:46
> #2  0x0000555555a8b6d2 in addElementsInArrays<MTriangle> 
> (e=e@entry=0x555558f32880, elements=std::vector of length 17353, capacity 
> 32768 = {...}, edges=edges@entry=true, faces=faces@entry=false)
>    at /usr/include/c++/8.3.0/bits/stl_vector.h:930
> #3  0x0000555555a8d51d in initMeshGFace::operator() (f=0x555558f32880, 
> this=<synthetic pointer>) at 
> /home/lindnefn/software/gmsh/Geo/GModelVertexArrays.cpp:348
> #4  std::for_each<std::_Rb_tree_const_iterator<GFace*>, initMeshGFace> 
> (__f=..., __last=..., __first=0x555558f32880) at 
> /usr/include/c++/8.3.0/bits/stl_algo.h:3882
> #5  GModel::fillVertexArrays (this=this@entry=0x5555568a5260) at 
> /home/lindnefn/software/gmsh/Geo/GModelVertexArrays.cpp:471
> #6  0x0000555555f76cb7 in drawContext::drawMesh 
> (this=this@entry=0x5555568d5330) at 
> /home/lindnefn/software/gmsh/Graphics/drawMesh.cpp:712
> #7  0x0000555555f74855 in drawContext::draw3d (this=0x5555568d5330) at 
> /home/lindnefn/software/gmsh/Graphics/drawContext.cpp:321
> #8  0x0000555555ebcd60 in openglWindow::draw (this=0x5555568d5010) at 
> /home/lindnefn/software/gmsh/Fltk/openglWindow.cpp:355
> #9  openglWindow::draw (this=0x5555568d5010) at 
> /home/lindnefn/software/gmsh/Fltk/openglWindow.cpp:172
> #10 0x00007ffff7c79186 in Fl_Gl_Window::flush() () from 
> /usr/lib/libfltk_gl.so.1.3
> #11 0x00007ffff7877218 in Fl::flush() () from /usr/lib/libfltk.so.1.3
> #12 0x00007ffff7878352 in Fl::wait(double) () from /usr/lib/libfltk.so.1.3
> #13 0x00007ffff787842e in Fl::check() () from /usr/lib/libfltk.so.1.3
> #14 0x00007ffff78ce872 in Fl_Widget::do_callback(Fl_Widget*, void*) () from 
> /usr/lib/libfltk.so.1.3
> #15 0x00007ffff787ebf5 in Fl_Button::handle(int) () from 
> /usr/lib/libfltk.so.1.3
> #16 0x00007ffff7876a8a in ?? () from /usr/lib/libfltk.so.1.3
> #17 0x00007ffff787896e in Fl::handle_(int, Fl_Window*) () from 
> /usr/lib/libfltk.so.1.3
> #18 0x00007ffff78d596b in fl_handle(_XEvent const&) () from 
> /usr/lib/libfltk.so.1.3
> #19 0x00007ffff78d7206 in ?? () from /usr/lib/libfltk.so.1.3
> #20 0x00007ffff78d7522 in fl_wait(double) () from /usr/lib/libfltk.so.1.3
> #21 0x00007ffff78782d6 in Fl::wait(double) () from /usr/lib/libfltk.so.1.3
> #22 0x00007ffff78783de in Fl::run() () from /usr/lib/libfltk.so.1.3
> #23 0x0000555555e90cdb in FlGui::run () at 
> /home/lindnefn/software/gmsh/Fltk/FlGui.cpp:655
> #24 0x00005555558aac9c in GmshFLTK (argc=<optimized out>, argv=<optimized 
> out>) at /home/lindnefn/software/gmsh/Common/GmshGlobal.cpp:438
> #25 0x00005555558ab04d in GmshMainFLTK (argc=2, argv=0x7fffffffd878) at 
> /home/lindnefn/software/gmsh/Common/GmshGlobal.cpp:494
> #26 0x00007ffff47d9ce3 in __libc_start_main () from /usr/lib/libc.so.6
> #27 0x00005555558a958e in _start () at 
> /usr/include/c++/8.3.0/bits/char_traits.h:287
> 
> 
> or when selecting the frontal-delauney algo:
> 
> Thread 1 "gmsh" received signal SIGSEGV, Segmentation fault.
> 0x000055555762a0b0 in ?? ()
> (gdb) bt
> #0  0x000055555762a0b0 in ?? ()
> #1  0x000055555609481c in Patch::Patch (this=0x7fffffffb9d0, 
> element2entity=std::map with 0 elements, bndEl2Ent=std::map with 0 elements, 
> els=std::set with 342 elements = {...}, toFix=std::set with 110 elements = 
> {...}, 
>    bndEls=std::set with 0 elements, fixBndNodes=false) at 
> /home/lindnefn/software/gmsh/contrib/MeshOptimizer/Patch.cpp:69
> #2  0x000055555608bdaf in MeshOpt::MeshOpt (this=0x7fffffffb9d0, 
> element2entity=..., bndEl2Ent=..., els=..., toFix=..., bndEls=..., par=...) 
> at /home/lindnefn/software/gmsh/contrib/MeshOptimizer/MeshOpt.cpp:45
> #3  0x0000555556085132 in (anonymous namespace)::optimizeDisjointPatches 
> (vertex2elements=..., element2entity=..., el2BndEl=..., bndEl2Ent=std::map 
> with 0 elements, badasses=..., par=...)
>    at /home/lindnefn/software/gmsh/contrib/MeshOptimizer/MeshOptimizer.cpp:484
> #4  0x00005555560879f7 in MeshOptimizer (entities=std::vector of length 102, 
> capacity 152 = {...}, par=...) at 
> /home/lindnefn/software/gmsh/contrib/MeshOptimizer/MeshOptimizer.cpp:785
> #5  0x000055555605855e in HighOrderMeshOptimizer (entities=std::vector of 
> length 102, capacity 152 = {...}, p=...) at 
> /home/lindnefn/software/gmsh/contrib/HighOrderMeshOptimizer/HighOrderMeshOptimizer.cpp:380
> #6  0x0000555556058a0e in HighOrderMeshOptimizer (gm=<optimized out>, p=...) 
> at 
> /home/lindnefn/software/gmsh/contrib/HighOrderMeshOptimizer/HighOrderMeshOptimizer.cpp:393
> #7  0x0000555555bb5e21 in OptimizeHighOrderMesh (m=<optimized out>) at 
> /home/lindnefn/software/gmsh/Mesh/Generator.cpp:1011
> #8  0x0000555555bbb882 in GenerateMesh (m=m@entry=0x5555568a5260, 
> ask=ask@entry=2) at /home/lindnefn/software/gmsh/Mesh/Generator.cpp:1147
> #9  0x0000555555a5e959 in GModel::mesh (this=0x5555568a5260, 
> dimension=dimension@entry=2) at 
> /home/lindnefn/software/gmsh/Geo/GModel.cpp:890
> #10 0x0000555555e962cb in mesh_2d_cb (w=<optimized out>, data=<optimized 
> out>) at /home/lindnefn/software/gmsh/Fltk/graphicWindow.cpp:1919
> #11 0x00007ffff78ce872 in Fl_Widget::do_callback(Fl_Widget*, void*) () from 
> /usr/lib/libfltk.so.1.3
> #12 0x00007ffff787ebf5 in Fl_Button::handle(int) () from 
> /usr/lib/libfltk.so.1.3
> #13 0x00007ffff7876a8a in ?? () from /usr/lib/libfltk.so.1.3
> #14 0x00007ffff787896e in Fl::handle_(int, Fl_Window*) () from 
> /usr/lib/libfltk.so.1.3
> #15 0x00007ffff78d596b in fl_handle(_XEvent const&) () from 
> /usr/lib/libfltk.so.1.3
> #16 0x00007ffff78d7206 in ?? () from /usr/lib/libfltk.so.1.3
> #17 0x00007ffff78d7522 in fl_wait(double) () from /usr/lib/libfltk.so.1.3
> #18 0x00007ffff78782d6 in Fl::wait(double) () from /usr/lib/libfltk.so.1.3
> #19 0x00007ffff78783de in Fl::run() () from /usr/lib/libfltk.so.1.3
> #20 0x0000555555e90cdb in FlGui::run () at 
> /home/lindnefn/software/gmsh/Fltk/FlGui.cpp:655
> #21 0x00005555558aac9c in GmshFLTK (argc=<optimized out>, argv=<optimized 
> out>) at /home/lindnefn/software/gmsh/Common/GmshGlobal.cpp:438
> #22 0x00005555558ab04d in GmshMainFLTK (argc=2, argv=0x7fffffffd878) at 
> /home/lindnefn/software/gmsh/Common/GmshGlobal.cpp:494
> #23 0x00007ffff47d9ce3 in __libc_start_main () from /usr/lib/libc.so.6
> #24 0x00005555558a958e in _start () at 
> /usr/include/c++/8.3.0/bits/char_traits.h:287
> 
> 
> Using the command line works better:
> 
> gmsh -2 -algo frontal -clscale 0.1 bun_zipper.msh -o bunny.msh
> 
> works. However, when I want to ouput VTK
> 
> gmsh -2 -algo frontal -clscale 0.1 bun_zipper.msh -o bunny.vtk
> 
> 
> Info    : Writing 'bunny.vtk'...
> 
> Thread 1 "gmsh" received signal SIGSEGV, Segmentation fault.
> 0x0000555555a5d2f1 in GModel::indexMeshVertices 
> (this=this@entry=0x5555568a5260, all=true, 
> singlePartition=singlePartition@entry=0, renumber=renumber@entry=true) at 
> /home/lindnefn/software/gmsh/Geo/MVertex.h:86
> 86        long int getIndex() const { return _index; }
> (gdb) bt
> #0  0x0000555555a5d2f1 in GModel::indexMeshVertices 
> (this=this@entry=0x5555568a5260, all=true, 
> singlePartition=singlePartition@entry=0, renumber=renumber@entry=true) at 
> /home/lindnefn/software/gmsh/Geo/MVertex.h:86
> #1  0x0000555555ac88d1 in GModel::writeVTK (this=this@entry=0x5555568a5260, 
> name="bunny.vtk", binary=false, saveAll=true, saveAll@entry=false, 
> scalingFactor=scalingFactor@entry=1, bigEndian=bigEndian@entry=false)
>    at /home/lindnefn/software/gmsh/Geo/GModelIO_VTK.cpp:31
> #2  0x000055555590298c in CreateOutputFile (fileName=..., format=<optimized 
> out>, status=<optimized out>, redraw=<optimized out>) at 
> /home/lindnefn/software/gmsh/Common/CreateFile.cpp:355
> #3  0x0000555555901ead in CreateOutputFile (fileName="bunny.vtk", format=10, 
> status=status@entry=true, redraw=redraw@entry=true) at 
> /home/lindnefn/software/gmsh/Common/CreateFile.cpp:295
> #4  0x00005555558aa1cd in GmshBatch () at 
> /home/lindnefn/software/gmsh/Common/GmshGlobal.cpp:354
> #5  0x00005555558ab0cf in GmshMainFLTK (argc=9, argv=0x7fffffffd808) at 
> /home/lindnefn/software/gmsh/Common/GmshGlobal.cpp:488
> #6  0x00007ffff47d9ce3 in __libc_start_main () from /usr/lib/libc.so.6
> #7  0x00005555558a958e in _start () at 
> /usr/include/c++/8.3.0/bits/char_traits.h:287
> 
> Saving as STL file works, but according to paraview the STL file in no way 
> reflects the actual geometry.
> 
> The .msh file you sent me, however, seems to work and produce fine VTKs.
> 
> If I can help debugging the segfaults above, I am happy to provide any help. 
> The Bunny STLs are from http://graphics.stanford.edu/data/3Dscanrep/
> 
> Best Regards,
> Florian
> 
> Am 04.06.19 um 17:13 schrieb Christophe Geuzaine:
>> 
>> 
>>> On 3 Jun 2019, at 16:04, Florian Lindner <[email protected]> wrote:
>>> 
>>> Hi Christophe,
>>> 
>>> thanks for your help! I have compiled gmsh from git to try it.
>>> 
>>> I am able to successfully remesh (double click on viewport -> change Global 
>>> Mesh Size Factor), then click Mesh -> 2D to remesh.
>>> 
>>> Some questions:
>>> 
>>> * How can I change the meshing algorithm?
>> 
>> The same as for CAD surfaces: Tool->Options->Mesh->General and choose the 2D 
>> algo you want. You can also do all of this from the command line, e.g. 'gmsh 
>> file.msh -2 -clscale 0.1 -algo frontal', or in a script.
>> 
>>> 
>>> * Is there a way to achieve a smiliar semi-automatic meshing on the STL 
>>> file of the bunny? Or is underlying parametrization you provided required?
>>> 
>> 
>> You need to create the parametrization. With the current development version 
>> you can do it this way:
>> 
>> - open the stl
>> - launch the "Reclassify 2D" tool (in the module tree, under Mesh)
>> - select all elements, check "Create parametrized discrete model" then 
>> "Reclassify"
>> - 'File->Save as' and choose a filename with an '.msh' extension
>> 
>> This procedure will change (will be made simpler! :-) in the final release.
>> 
>> Christophe
>> 
>> 
>>> Thanks a lot!
>>> Florian
>>> 
>>> Am 29.05.19 um 16:07 schrieb Christophe Geuzaine:
>>>> 
>>>> Hi Florian,
>>>> 
>>>> This is a nice test-case for our new remeshing pipeline. It's still quite 
>>>> experimental, but you can give it a try with the latest development 
>>>> snapshot: just open the attached .msh file, which contains a mesh of the 
>>>> bunny as well as an underlying parametrization. You can remesh this file 
>>>> simply by selecting the algorithm ("Frontal-Delaunay" in the attached 
>>>> picture) and the mesh size you want (e.g. by double-clicking in the window 
>>>> and changing the global mesh size factor).
>>>> 
>>>> Nothing about the new remeshing features is documented yet, but feel free 
>>>> to play around with it and report your findings ;-)
>>>> 
>>>> Christophe
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>>> On 29 May 2019, at 15:25, Florian Lindner <[email protected]> wrote:
>>>>> 
>>>>> Hello,
>>>>> 
>>>>> I have an existing surface geometry, which is the Stanford bunny [1] as 
>>>>> PLY format.
>>>>> 
>>>>> My goal is too evaluate a mapping algorithm on a non-trivial geometry. 
>>>>> The algorithm works only on point data, therefore I don't need an 
>>>>> triangulation.
>>>>> 
>>>>> From the existing surface data I want to generate sampled points of 
>>>>> various densities on the surface of the geometry and save these as a 
>>>>> standard data format (e.g. VTK).
>>>>> 
>>>>> As I want to generate different mesh sizes, I need something like a 
>>>>> background mesh size or a characteristic length which controls the 
>>>>> sampling frequency. The exact placement of the points is not important, 
>>>>> it should "make sense", i.e. be roughly equidistant or maybe influenced 
>>>>> by the curvature.
>>>>> 
>>>>> So far I have only Merge "bun_zipper.ply"; in my .geo file. 
>>>>> 
>>>>> I think you can feel, that I am very uncertain how to progress and I 
>>>>> would be very happy for guidance!
>>>>> 
>>>>> Thanks!
>>>>> Florian
>>>>> 
>>>>> 
>>>>> [1] http://graphics.stanford.edu/pub/3Dscanrep/bunny.tar.gz
>>>>> 
>>>>> _______________________________________________
>>>>> gmsh mailing list
>>>>> [email protected]
>>>>> http://onelab.info/mailman/listinfo/gmsh
>>>> 
>>>> — 
>>>> Prof. Christophe Geuzaine
>>>> University of Liege, Electrical Engineering and Computer Science 
>>>> http://www.montefiore.ulg.ac.be/~geuzaine
>>>> 
>>>> 
>>>> 
>> 
>> — 
>> Prof. Christophe Geuzaine
>> University of Liege, Electrical Engineering and Computer Science 
>> http://www.montefiore.ulg.ac.be/~geuzaine
>> 
>> 
>> 

— 
Prof. Christophe Geuzaine
University of Liege, Electrical Engineering and Computer Science 
http://www.montefiore.ulg.ac.be/~geuzaine




_______________________________________________
gmsh mailing list
[email protected]
http://onelab.info/mailman/listinfo/gmsh

Reply via email to