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?

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

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

Reply via email to