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