[petsc-users] DMAdaptLabel with triangle mesh

Thibault Bridel-Bertomeu thibault.bridelbertomeu at gmail.com
Mon Aug 31 08:45:11 CDT 2020


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.

Regarding the serial character of the technique, I tried with a
distributed mesh and it works.

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 <knepley at gmail.com> a écrit :

> On Mon, Aug 31, 2020 at 5:34 AM Thibault Bridel-Bertomeu <
> thibault.bridelbertomeu at gmail.com> 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: thibault.bridelbertomeu at gmail.com
>>
>
>
> --
> 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/>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200831/a437ffd9/attachment.html>


More information about the petsc-users mailing list