On 05 Apr 2013, at 22:31, Bruno Correia da Silva <[email protected]> wrote:

> Greetings Prof. Geuzaine,
> 
> Thanks for the answer.
> In my case, i wanted fuse the two mesh. My grid needs to be continue.
> About your tips, i did make this change in code and run with same mesh
> send before:
> 
> else if (argc >2){
>    GmshSetOption("General", "Terminal", 1.);
>    GModel *m = new GModel();
>    m->readMSH(argv[1]);//mesh1.msh
>    GmshMergeFile(argv[2]);//mesh2.msh
>    m->removeDuplicateMeshVertices(0.001);
>    m->writeMSH("test.msh", 1.0);
>    delete m;
>  }
> 
> And show me this errors:
> "
> Info    : 76 vertices
> Info    : Vertex numbering is dense
> Info    : 153 elements
> Info    : Reading 'M2.msh'...
> Info    : 76 vertices
> Info    : Vertex numbering is dense
> Info    : 153 elements
> Info    : Done reading 'M2.msh'
> Info    : Removing duplicate mesh vertices...
> Error   : Could not find vertex (0,10,0) (tol 0.0141421)
> Error   : Could not recreate element 12
> Error   : Could not find vertex (0,10,0) (tol 0.0141421)
> Error   : Could not recreate element 13
> Error   : Could not find vertex (0,10,0) (tol 0.0141421)
> Error   : Could not recreate element 63
> Error   : Could not find vertex (0,10,0) (tol 0.0141421)
> Error   : Could not recreate element 64
> Info    : Removed 13 duplicate mesh vertices
> Info    : Done removing duplicate mesh vertices
> 
> I can't understand why this element cannot be found and recreated.
> I don't use tags. This two mesh was generated by GMSH.
> 
> One more question: Doesn't GMSH make this fuse in mesh?
> 

No, in order to fuse the meshes you'll need to have the vertices/elements with 
different tags in both files. Another solution is to merge "untagged" meshes 
(e.g. STL).


> Thanks for help,
> 
> Att.
> 
> 
> 2013/4/5 Christophe Geuzaine <[email protected]>:
>> 
>> On 26 Mar 2013, at 21:25, Bruno Correia da Silva <[email protected]> wrote:
>> 
>>> Hi everyone,
>>> 
>>> I am using of GMSH  to make merge in meshes.
>>> I did this cpp:
>>> 
>> 
>> Merge simply adds everything in the same model: in your case this results in 
>> an invalid resulting mesh (you can reproduce the same behavior in the GUI). 
>> To fuse two grids, you would need to make sure they don't contain entities 
>> with clashing tags, then remove the duplicate vertices 
>> (m->removeDuplicateMeshVertices()).
>> 
>>> 
>>> #include <stdio.h>
>>> #include "Gmsh.h"
>>> #include "GModel.h"
>>> #include "MElement.h"
>>> 
>>> #include <iostream>
>>> using namespace std;
>>> #include <stdio.h>
>>> #include <string.h>
>>> 
>>> int main(int argc, char **argv)
>>> {
>>> GmshInitialize(argc, argv);
>>> if(argc ==1){
>>>              GmshSetOption("General", "Terminal", 1.);
>>>       char str[80];
>>>       strcpy (str,argv[1]);
>>>       strcat (str,".msh");
>>>              GModel *m = new GModel();
>>>       m->readGEO(argv[1]);
>>>       m->mesh(3);
>>>       m->writeMSH(str, 1.0);
>>>       delete m;
>>> }
>>> else if (argc >2){
>>>   GmshSetOption("General", "Terminal", 1.);
>>>   GModel *m = new GModel();
>>>   m->readMSH(argv[1]);//mesh1.msh
>>>   GmshMergeFile(argv[2]);//mesh2.msh
>>>   m->writeMSH("test.msh", 1.0);
>>>   delete m;
>>> }
>>> GmshFinalize();
>>> }
>>> 
>>> The GMSH show me this error when i try open the test.msh:
>>> Error  Wrong vertex index 0
>>> Error Error loading 'test.msh'
>>> 
>>> The two input files are attached.
>>> 
>>> Some clues to correct this?
>>> 
>>> att.
>>> Bruno Correia
>>> <M1.msh><M2.msh>_______________________________________________
>>> 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
>> 
>> 
>> 

-- 
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