Dear Serban,

Thanks for the patch - it's been integrated in SVN. Let us know if you find 
other similar problems!

Christophe

> On 09 Dec 2014, at 17:32, Serban Georgescu <[email protected]> 
> wrote:
> 
> For reference, an update to the modifications below.
>  
> MVertexLessThanNum should be used instead if MVertexLessThanLexicographic.
> For some reason that I do not understand, MVertexLessThanLexicographic leads 
> to crashes in some cases.
>  
> Serban
>  
> From: gmsh [mailto:[email protected]] On Behalf Of 
> Serban Georgescu
> Sent: 05 December 2014 12:40
> To: David Bernstein
> Cc: [email protected] Geuzaine
> Subject: Re: [Gmsh] Setting random seed in geo file
>  
> Hi,
>  
> Actually I had the same problem and in the last few days I put some time into 
> finding the reason why this happens.
> The random seeds are actually hard-coded, the reason for the lack of 
> reproducibility comes from a few STL containers that store pointers and were 
> left with the default ordering – which means that the order will be dependent 
> on the pointer addresses – hence the lack of reproducibility.
>  
> Here are the modifications that you need to make in order to have full 
> reproducibility:
> Note that these are made with respect to the source code of Gmsh 2.8.5.
>  
> Mesh/meshGFace.cpp à added ordering to the set
>  
> 1080c1080
> <   std::set<MVertex*, MVertexLessThanLexicographic> all_vertices, boundary;
> ---
> >   std::set<MVertex*> all_vertices, boundary;
>  
> 1155c1155
> <     for(std::set<MVertex*, MVertexLessThanLexicographic>::iterator it = 
> all_vertices.begin();
> ---
> >     for(std::set<MVertex*>::iterator it = all_vertices.begin();
>  
> 1173c1173
> <   for(std::set<MVertex*, MVertexLessThanLexicographic>::iterator it = 
> all_vertices.begin();
> ---
> >   for(std::set<MVertex*>::iterator it = all_vertices.begin();
>  
> ----------------
> Mesh/meshGFaceBDS.cpp à defined what happens when we have two identical 
> values in the sort
>  
> 482,489d481
> < bool edges_sort (std::pair<double, BDS_Edge*> a , std::pair<double, 
> BDS_Edge*> b) 
> < { 
> <             if (a.first == b.first)
> <                             return ((*a.second) < (*b.second));
> <             else
> <                             return (a.first < b.first);
> < }
> < 
> 505c497
> <   std::sort(edges.begin(), edges.end(), edges_sort);
> ---
> >   std::sort(edges.begin(), edges.end());
> 558c550
> <   std::sort(edges.begin(), edges.end(), edges_sort);
> ---
> >   std::sort(edges.begin(), edges.end());
>  
>  
> ----------------
> Mesh/meshGRegion.cpp à added ordering to the set
> 1417c1417
> < static void getAllBoundingVertices(GRegion *gr, std::set<MVertex*, 
> MVertexLessThanLexicographic> &allBoundingVertices)
> ---
> > static void getAllBoundingVertices(GRegion *gr, std::set<MVertex*> 
> > &allBoundingVertices)
> 1440c1440
> <   std::set<MVertex*, MVertexLessThanLexicographic> allBoundingVertices;
> ---
> >   std::set<MVertex*> allBoundingVertices;
> 1443c1443
> <   std::set<MVertex*, MVertexLessThanLexicographic>::iterator itv = 
> allBoundingVertices.begin();
> ---
> >   std::set<MVertex*>::iterator itv = allBoundingVertices.begin();
> 1673,1680d1672
> < struct GFaceOrderedByTag
> < {
> <             bool operator() (const GFace* first, const GFace* second) const
> <             {
> <                             return (first->tag() < second->tag());
> <             }
> < };
> < 
> 1713c1705
> <     std::set<GFace*, GFaceOrderedByTag> mySet;
> ---
> >     std::set<GFace*> mySet;
>  
>  
> ----------------
>  
> That’s about it.
> It would be nice if these modifications could be added to the SVN version.
>  
> Cheers,
> Serban
>  
> From: gmsh [mailto:[email protected]] On Behalf Of 
> David Bernstein
> Sent: 02 November 2014 00:45
> To: [email protected] Geuzaine
> Subject: [Gmsh] Setting random seed in geo file
>  
> Sorry, I missed this post back in May.  What is the geo file command to set 
> the global random number seed?
>  
> Thanks,
> Dave
>  
> Hello,
>  
> This issue has been fixed in the last versions. What is the version you are 
> using ?
>  
> JFR
> Le 22 mai 2014 à 23:29, David Bernstein <david at terafrac.org> a écrit :
>  
> > Hi Everyone, I’m using Gmsh as a backend mesh generator in a project and 
> > it’s been working very well so far.  One issue that we’ve encountered is 
> > reproducing a problem from a given set of simulation input parameters 
> > because Gmsh produces a different mesh every time it’s run with the same 
> > input.
> > 
> > I’ve looked through the documentation and have not been able to find a way 
> > to set a random number seed so that the same mesh is produced every time 
> > for a given input .geo file.  If anyone knows a way to do this please let 
> > me know.
> > 
> > Thanks,
> > Dave
>  
> This e-mail is covered by the Electronic Communication Privacy Act, 18 U.S.C. 
> Section 2510-2521 and may be legally privileged. If you have received this 
> transmission in error, please notify the original sender immediately by 
> return e-mail or by telephone at the telephone number provided above and 
> delete/trash the original message from your system. Thank you for your 
> assistance. The information contained herein is confidential information 
> provided only for the use of the individual or entity for whom it was 
> intended. If the reader of this message received it in error, is not the 
> intended recipient, or if an attachment is made in error, the reader is 
> hereby notified that any dissemination, distribution or copying of this 
> communication is strictly prohibited. 
> ______________________________________________________________________
>                                         
>  Fujitsu Laboratories of Europe Limited
>  Hayes Park Central, Hayes End Road, Hayes, Middlesex, UB4 8FE
>  Registered No. 4153469
>  
>  This e-mail and any attachments are for the sole use of addressee(s) and
>  may contain information which is privileged and confidential. Unauthorised
>  use or copying for disclosure is strictly prohibited. The fact that this
>  e-mail has been scanned by Trendmicro Interscan does not guarantee that 
>  it has not been intercepted or amended nor that it is virus-free.
>  
> ______________________________________________________________________
> 
>  Fujitsu Laboratories of Europe Limited
>  Hayes Park Central, Hayes End Road, Hayes, Middlesex, UB4 8FE
>  Registered No. 4153469
> 
>  This e-mail and any attachments are for the sole use of addressee(s) and
>  may contain information which is privileged and confidential. Unauthorised
>  use or copying for disclosure is strictly prohibited. The fact that this
>  e-mail has been scanned by Trendmicro Interscan does not guarantee that
>  it has not been intercepted or amended nor that it is virus-free.
> 
> _______________________________________________
> gmsh mailing list
> [email protected]
> http://www.geuz.org/mailman/listinfo/gmsh

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




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

Reply via email to