On Mon, Aug 31, 2020 at 9:45 AM Thibault Bridel-Bertomeu < [email protected]> wrote:
> Hi Matt, > > OK so I tried to replicate the problem starting from one of the tests in > PETSc repo. > I found > https://gitlab.com/petsc/petsc/-/blob/master/src/dm/impls/plex/tests/ex20.c > that > actually uses DMAdaptLabel. > Just add > > { > DM > <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DM.html#DM> > gdm; > DMPlexConstructGhostCells > <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMPLEX/DMPlexConstructGhostCells.html#DMPlexConstructGhostCells>(dm, > NULL, NULL, &gdm); DMDestroy > <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMDestroy.html#DMDestroy>(&dm); > > dm = gdm; > > } > > after line 24 where the box mesh is generated. Then compile and run with ex20 > -dim 2.It should tell you that Triangle 18 has an invalid vertex index. > That's the minimal example that I found that replicates the problem. > > Ah, okay. p4est knows to discard the ghost cells. I can add that to Triangle. > Regarding the serial character of the technique, I tried with a distributed > mesh and it works. > > Hmm, it can't work. Maybe it appears to work. Triangle knows nothing about parallelism. So this must be feeding the local mesh to triangle and replacing it by a refined mesh, but the parallel boundaries will not be correct, and might not even match up. Thanks, Matt > So do you mean that intrinsically it gathers all the cells on the master proc > before proceeding to the coarsening & refinement and only then broadcast the > info back to the other processors ? > > Thanks, > > Thibault > > Le lun. 31 août 2020 à 12:55, Matthew Knepley <[email protected]> a > écrit : > >> On Mon, Aug 31, 2020 at 5:34 AM Thibault Bridel-Bertomeu < >> [email protected]> wrote: >> >>> Dear all, >>> >>> I have recently been playing around with the AMR capabilities embedded >>> in PETSc for quad meshes using p4est. Based on the TS tutorial ex11, I was >>> able to incorporate the AMR into a pre-existing code with different metrics >>> for the adaptation process. >>> Now I would like to do something similar using tri meshes. I read that >>> compiling PETSc with Triangle (in 2D and Tetgen for 3D) gives access to >>> refinement and coarsening capabilities on triangular meshes.When I try to >>> execute the code with a triangular mesh (that i manipulate as a DMPLEX), it >>> yields "Triangle 1700 has an invalid vertex index" when trying to adapt the >>> mesh (the initial mesh indeed has 1700 cells). From what i could tell, it >>> comes from the reconstruct method called by the triangulate method of >>> triangle.c, the latter being called by either *DMPlexGenerate_Triangle * >>> or *DMPlexRefine_Triangle *in PETSc, I cannot be sure. >>> >>> In substance, the code is the same as in ex11.c and the crash occurs in >>> the first adaptation pass, i.e. an equivalent in ex11 is that it crashes >>> after the SetInitialCondition in the first if (useAMR) located line 1835 >>> when it calls adaptToleranceFVM (which I copied basically so the code is >>> the same). >>> >>> Is the automatic mesh refinement feature on tri meshes supposed to work >>> or am I trying something that has not been completed yet ? >>> >> >> It is supposed to work, and does for some tests in the library. I stopped >> using it because it is inherently serial and it is isotropic. However, it >> should be fixed. >> Is there something I can run to help me track down the problem? >> >> Thanks, >> >> Matt >> >> >>> Thank you very much for your help, as always. >>> >>> Thibault Bridel-Bertomeu >>> — >>> Eng, MSc, PhD >>> Research Engineer >>> CEA/CESTA >>> 33114 LE BARP >>> Tel.: (+33)557046924 >>> Mob.: (+33)611025322 >>> Mail: [email protected] >>> >> >> >> -- >> What most experimenters take for granted before they begin their >> experiments is infinitely more interesting than any results to which their >> experiments lead. >> -- Norbert Wiener >> >> https://www.cse.buffalo.edu/~knepley/ >> <http://www.cse.buffalo.edu/~knepley/> >> > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
