<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Apr 19, 2015 at 5:20 PM, Justin Chang <span dir="ltr"><<a href="mailto:jchang27@uh.edu" target="_blank">jchang27@uh.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div>Hi all,<br><br></div>I have the following lines for mesh generation:<br><br>      DM boundary;<br>      ierr = DMCreate(comm,&boundary);CHKERRQ(ierr);<br>      ierr = DMSetType(boundary, DMPLEX);CHKERRQ(ierr);<br>      ierr = DMSetDimension(boundary, spatialDim-1);CHKERRQ(ierr);<br>      switch (spatialDim) {<br>        case 2:<br>        {<br>          ierr = DMPlexCreateSquareBoundary(boundary,lower,upper,edges);CHKERRQ(ierr);<br>          break;<br>        }<br>        case 3:<br>        {<br>          ierr = DMPlexCreateCubeBoundary(boundary,lower,upper,edges);CHKERRQ(ierr);<br>          break;<br>        }<br>        default:<br>          SETERRQ1(comm,PETSC_ERR_SUP,"Dimension not supported: %d",spatialDim);<br>      }<br>      ierr = DMPlexGenerate(boundary,NULL,PETSC_TRUE,dm);CHKERRQ(ierr);<br>      ierr = DMDestroy(&boundary);CHKERRQ(ierr);<br><br></div>where lower and upper are global PetscScalars * and edges is a global PetscInt *. These values are PetscCalloc'ed and initialized via commandline options (PetscOptionsGetScalar/IntArray). When I run my code with valgrind, I get the following messages:<br><br>==12706== Conditional jump or move depends on uninitialised value(s)<br>==12706==    at 0x65E778C: TetGenMeshPointTraverse(TetGenMesh*, double**) (ctetgen.c:4107)<br>==12706==    by 0x661C8F8: TetGenMeshDelaunizeVertices(TetGenMesh*) (ctetgen.c:12091)<br>==12706==    by 0x6661A8E: TetGenTetrahedralize(TetGenOpts*, PLC*, PLC*) (ctetgen.c:21483)<br>==12706==    by 0x5B655EB: DMPlexGenerate_CTetgen(_p_DM*, PetscBool, _p_DM**) (plexgenerate.c:834)<br>==12706==    by 0x5B685F4: DMPlexGenerate (plexgenerate.c:1080)<br>==12706==    by 0x409B6D: CreateMesh(int, AppCtx*, _p_DM**) (main.c:657)<br>==12706==    by 0x40DBA8: main (main.c:1005)<br>==12706== <br>==12706== Conditional jump or move depends on uninitialised value(s)<br>==12706==    at 0x661BF6C: TetGenMeshDelaunayIncrFlip(TetGenMesh*, triface*, double**, long, PetscBool, PetscBool, double, Queue*) (ctetgen.c:12011)<br>==12706==    by 0x661CD0B: TetGenMeshDelaunizeVertices(TetGenMesh*) (ctetgen.c:12113)<br>==12706==    by 0x6661A8E: TetGenTetrahedralize(TetGenOpts*, PLC*, PLC*) (ctetgen.c:21483)<br>==12706==    by 0x5B655EB: DMPlexGenerate_CTetgen(_p_DM*, PetscBool, _p_DM**) (plexgenerate.c:834)<br>==12706==    by 0x5B685F4: DMPlexGenerate (plexgenerate.c:1080)<br>==12706==    by 0x409B6D: CreateMesh(int, AppCtx*, _p_DM**) (main.c:657)<br>==12706==    by 0x40DBA8: main (main.c:1005)<br>==12706== <br>==12706== Conditional jump or move depends on uninitialised value(s)<br>==12706==    at 0x661BFB6: TetGenMeshDelaunayIncrFlip(TetGenMesh*, triface*, double**, long, PetscBool, PetscBool, double, Queue*) (ctetgen.c:12014)<br>==12706==    by 0x661CD0B: TetGenMeshDelaunizeVertices(TetGenMesh*) (ctetgen.c:12113)<br>==12706==    by 0x6661A8E: TetGenTetrahedralize(TetGenOpts*, PLC*, PLC*) (ctetgen.c:21483)<br>==12706==    by 0x5B655EB: DMPlexGenerate_CTetgen(_p_DM*, PetscBool, _p_DM**) (plexgenerate.c:834)<br>==12706==    by 0x5B685F4: DMPlexGenerate (plexgenerate.c:1080)<br>==12706==    by 0x409B6D: CreateMesh(int, AppCtx*, _p_DM**) (main.c:657)<br>==12706==    by 0x40DBA8: main (main.c:1005)<br>==12706== <br>==12706== Conditional jump or move depends on uninitialised value(s)<br>==12706==    at 0x661C004: TetGenMeshDelaunayIncrFlip(TetGenMesh*, triface*, double**, long, PetscBool, PetscBool, double, Queue*) (ctetgen.c:12017)<br>==12706==    by 0x661CD0B: TetGenMeshDelaunizeVertices(TetGenMesh*) (ctetgen.c:12113)<br>==12706==    by 0x6661A8E: TetGenTetrahedralize(TetGenOpts*, PLC*, PLC*) (ctetgen.c:21483)<br>==12706==    by 0x5B655EB: DMPlexGenerate_CTetgen(_p_DM*, PetscBool, _p_DM**) (plexgenerate.c:834)<br>==12706==    by 0x5B685F4: DMPlexGenerate (plexgenerate.c:1080)<br>==12706==    by 0x409B6D: CreateMesh(int, AppCtx*, _p_DM**) (main.c:657)<br>==12706==    by 0x40DBA8: main (main.c:1005)<br>==12706== <br>==12706== Conditional jump or move depends on uninitialised value(s)<br>==12706==    at 0x661C048: TetGenMeshDelaunayIncrFlip(TetGenMesh*, triface*, double**, long, PetscBool, PetscBool, double, Queue*) (ctetgen.c:12020)<br>==12706==    by 0x661CD0B: TetGenMeshDelaunizeVertices(TetGenMesh*) (ctetgen.c:12113)<br>==12706==    by 0x6661A8E: TetGenTetrahedralize(TetGenOpts*, PLC*, PLC*) (ctetgen.c:21483)<br>==12706==    by 0x5B655EB: DMPlexGenerate_CTetgen(_p_DM*, PetscBool, _p_DM**) (plexgenerate.c:834)<br>==12706==    by 0x5B685F4: DMPlexGenerate (plexgenerate.c:1080)<br>==12706==    by 0x409B6D: CreateMesh(int, AppCtx*, _p_DM**) (main.c:657)<br>==12706==    by 0x40DBA8: main (main.c:1005)<br>==12706== <br>==12706== Conditional jump or move depends on uninitialised value(s)<br>==12706==    at 0x661B232: TetGenMeshInsertVertexBW(TetGenMesh*, double*, triface*, PetscBool, PetscBool, PetscBool, PetscBool, locateresult*) (ctetgen.c:11905)<br>==12706==    by 0x661C2AF: TetGenMeshDelaunayIncrFlip(TetGenMesh*, triface*, double**, long, PetscBool, PetscBool, double, Queue*) (ctetgen.c:12046)<br>==12706==    by 0x661CD0B: TetGenMeshDelaunizeVertices(TetGenMesh*) (ctetgen.c:12113)<br>==12706==    by 0x6661A8E: TetGenTetrahedralize(TetGenOpts*, PLC*, PLC*) (ctetgen.c:21483)<br>==12706==    by 0x5B655EB: DMPlexGenerate_CTetgen(_p_DM*, PetscBool, _p_DM**) (plexgenerate.c:834)<br>==12706==    by 0x5B685F4: DMPlexGenerate (plexgenerate.c:1080)<br>==12706==    by 0x409B6D: CreateMesh(int, AppCtx*, _p_DM**) (main.c:657)<br>==12706==    by 0x40DBA8: main (main.c:1005)<br>==12706== <br><br></div>What does this mean? Is there something wrong/missing with the current implementation of the mesh generation?<br></div></div></div></blockquote><div><br></div><div>Honestly, I have no idea. That is my mechanical translation of TetGen to C, which could have bugs but I could never</div><div>find them. It seems to work on all problems I have tried. I did it so I could open up the interface beyond what he exposes</div><div>in the command line interface. Also I made it use PetscMalloc, etc.</div><div><br></div><div>  Thanks,</div><div><br></div><div>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div></div>Thanks,<br></div>Justin<span class="HOEnZb"><font color="#888888"><br><div><div><div><br></div></div></div><br clear="all"><br>-- <br><div><div dir="ltr"><div><div><div>Justin Chang<br></div>PhD Candidate, Civil Engineering - Computational Sciences<br></div>University of Houston, Department of Civil and Environmental Engineering<br></div>Houston, TX 77004<br><a href="tel:%28512%29%20963-3262" value="+15129633262" target="_blank">(512) 963-3262</a><br></div></div></font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>