[Gmsh] too slow coherence function

andrew armitatz at gmail.com
Tue Aug 30 19:06:53 CEST 2016


Hi,

I downloaded the latest build and tested it for the removal of double nodes
with the 'coherence Mesh' function. It is indeed very fast. ​It needed
almost an hour for the removal of 100.000+ vertices and now it needs a few
minutes. I don't have exact times but the difference is almost 20x.

I did the tests on 1. the win 64bit build on a quad core @3G and 2. at the
Linux 64bit buld on a i7 3.6G at Ubuntu 14.04. On both the difference was
very big.

Thank you for your response.

kind regards

Andrew Tsiantis


2016-08-28 17:44 GMT+03:00 andrew <armitatz at gmail.com>:

> Thank you for your reply,
>
> I will try it.
>
> Sorry for the latest line​ in my previous post "Salome is written in
> python which is no faster than C++ so ... " because it might sounded
> judgemental which was not my intention.
>
> kind regards
>
> Andrew tsiantis
>
>
> 2016-08-28 17:32 GMT+03:00 Christophe Geuzaine <cgeuzaine at ulg.ac.be>:
>
>>
>> > On 28 Aug 2016, at 13:57, andrew <armitatz at gmail.com> wrote:
>> >
>> > Hi,
>> >
>> > Thank you for your response.
>> >
>> > I have tried the suggestion you made but this way I don't get the
>> internal surfaces which I need. The surface ​mesh is constructed correctly
>> but as you can see from the first image I don't have the internal regions.
>> I do get the points but openfoam does not understand them no matter what I
>> do. In the second image is the mesh that I want with the internal surfaces.
>> >
>> > In the third image is a mesh I get with the loops but without the 'Line
>> In Surface' set of commands where you can see that I get a bad mesh near
>> the narrow areas where the mesh crosses the boundaries of the loop lines. I
>> would expect that since I construct the surface with the loops, even if
>> they were of zero width, they would be embedded in the surface since its
>> creation making the need for the 'Line In Surface' commands obsolete.
>> >
>>
>> I see; indeed this is a valid approach.
>>
>> I have recoded the "Coherence Mesh;" function to make it much faster.
>> Could you download the next build and give it a try?
>>
>> Thanks for the detailed feedback,
>>
>> Christophe
>>
>>
>>
>> > Anyway I found a workaround but it involves the Salome mesh generator.
>> >
>> > In the first step I create the mesh in Gmsh without the coherence
>> function. I save it in unv format. I reload it in Salome and I remove the
>> duplicate nodes there with 'merge nodes'. I delete the 'vol' since I don't
>> need it and I save the mesh with only the surfaces I need again in unv
>> format.
>> >
>> > It sounds cybersome but all these are done by scripts and Salome needs
>> a few minutes to load a 3+ million cells mesh and save it back and less
>> than a minute to remove the duplicates. Gmsh needs a few minutes for the
>> mesh and 2+hrs for the removal so the procedure through Salome is way
>> faster.
>> >
>> > Salome is written in python which is no faster than C++ so I guess the
>> coherence routine in gmsh could take a refinement to a faster way.
>> >
>> > Kind regards
>> >
>> > Andrew Tsiantis
>> >
>> >
>> > 2016-08-28 12:10 GMT+03:00 Christophe Geuzaine <cgeuzaine at ulg.ac.be>:
>> >
>> > Andrew,
>> >
>> > The problem actually seems to come from the way you define the surface:
>> can you regenerate your geometry script after
>> >
>> > - removing all the zero-area line loops (e.g. "Line Loop(6) = {5, -5};")
>> > - removing these loops from the definition of the main surface (i.e.
>> simply have "Plane Surface(1) = {205};")
>> >
>> > With this you should not have duplicate vertices anymore, which should
>> make "Coherence Mesh" unnecessary.
>> >
>> > Let us know,
>> >
>> > Christophe
>> >
>> >
>> > > On 21 Aug 2016, at 17:33, andrew <armitatz at gmail.com> wrote:
>> > >
>> > > hi,
>> > >
>> > > Thank you for the response. The file I submitted was a small one and
>> the problem was not so obvious. I am attaching a 'real' file​ that I use on
>> my simulations. It has 3000 cuts in it. This takes 2 hours on a quad core
>> and 1+ hour on a i7 @4ghz. I am using the version 2.13.1.
>> > >
>> > > Kind regards
>> > >
>> > > Andrew Tsiantis
>> > >
>> > >
>> > > 2016-08-21 17:50 GMT+03:00 Christophe Geuzaine <cgeuzaine at ulg.ac.be>:
>> > >
>> > > > On 19 Aug 2016, at 21:34, andrew <armitatz at gmail.com> wrote:
>> > > >
>> > > > ​Hi,
>> > > >
>> > > > I try to create a 3d mesh from an extruded 2d mesh. The mesh is a
>> simple box but with cuts in it of zero width. The geometry is created ok
>> and the meshing even when I have 2000-3000 cuts is done in less than a few
>> minutes. However when I convert the mesh for use with openfoam I was
>> getting errors. By adding the command 'Coherence mesh;' after the creation
>> of the mesh, the mesh is converted correctly for use with openfoam by using
>> the ultility 'gmshToFoam'.
>> > >
>> > > Indeed, it's a limitation of our extrusion algorithm with embedded
>> curves ("Line In Surface"): it currently creates duplicate vertices. The
>> real fix is thus for us to enhance extrusion of embedded curves, but it's
>> not trivial due to the way extruded meshes are generated.
>> > >
>> > > > The problem is in the use of the 'Coherence Mesh'. It takes almost
>> two hours to execute while the meshing takes a few minutes. Is there a way
>> to improve the Coherence command or to make the same geometry without the
>> duplicate nodes that need so much time to be removed?
>> > > >
>> > > > I attached a file that needs 2.5 minutes on a quad core for meshing
>> and more than ten minutes to remove 1600 duplicates.
>> > > > I have to create thousands of these meshes so a speedup would be
>> welcomed.
>> > > >
>> > >
>> > > That seems a bit slow: on my laptop meshing and duplicate removal
>> take about the same time (2 minutes each). Which version of Gmsh do you use?
>> > >
>> > > > kind regards
>> > > >
>> > > > Andrew tsiantis
>> > > >
>> > > > <se.geo>_______________________________________________
>> > > > gmsh mailing list
>> > > > gmsh at onelab.info
>> > > > http://onelab.info/mailman/listinfo/gmsh
>> > >
>> > > --
>> > > Prof. Christophe Geuzaine
>> > > University of Liege, Electrical Engineering and Computer Science
>> > > http://www.montefiore.ulg.ac.be/~geuzaine
>> > >
>> > > Tetrahedron V, July 4-5 2016: http://tetrahedron.montefiore.ulg.ac.be
>> > > Free software: http://gmsh.info | http://getdp.info |
>> http://onelab.info
>> > >
>> > >
>> > > <3k_cuts.zip>_______________________________________________
>> > > gmsh mailing list
>> > > gmsh at onelab.info
>> > > http://onelab.info/mailman/listinfo/gmsh
>> >
>> > --
>> > Prof. Christophe Geuzaine
>> > University of Liege, Electrical Engineering and Computer Science
>> > http://www.montefiore.ulg.ac.be/~geuzaine
>> >
>> > Free software: http://gmsh.info | http://getdp.info |
>> http://onelab.info
>> >
>> >
>> > <gmsh-1.jpg><gmsh-2.jpg><gmsh-3.jpg><se.geo>________________
>> _______________________________
>> > gmsh mailing list
>> > gmsh at onelab.info
>> > http://onelab.info/mailman/listinfo/gmsh
>>
>> --
>> Prof. Christophe Geuzaine
>> University of Liege, Electrical Engineering and Computer Science
>> http://www.montefiore.ulg.ac.be/~geuzaine
>>
>> Free software: http://gmsh.info | http://getdp.info | http://onelab.info
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://onelab.info/pipermail/gmsh/attachments/20160830/2fc200a4/attachment.html>


More information about the gmsh mailing list