The ParMmg developers have the following rule of thumb: if the adaptation process takes less than 10 minutes, stick to Mmg. I have experimented on numerous occasions that this is indeed a good rule. Once you have reached such a scale (that’s about a couple of millions of tetrahedra, at least how we do it in FreeFEM without DMPlex) and the error persists, please let me know.
Thanks, Pierre On 7 Oct 2024, at 6:12 PM, Zongze Yang <yangzon...@gmail.com> wrote:
Hi Pierre,
Thank you for the advice. I will look into implementing it as suggested.
This is just a toy example; the mesh may be larger in the actual calculations.
Best wishes, Zongze On 7 Oct 2024, at 23:34, Pierre Jolivet <pie...@joliv.et> wrote:
Your mesh is tiny, you should not use ParMmg but plain Mmg instead which is much more robust.I don’t know how easy it is to do with DMPlex though (gather a DM and a metric on a single process), especially from the command line.Thanks,PierreOn 7 Oct 2024, at 4:46 PM, Zongze Yang <yangzon...@gmail.com> wrote:
Hi PETSc team,
I noticed that the ParMmg interface for overlap (https://urldefense.us/v3/__https://gitlab.com/petsc/petsc/-/merge_requests/7593__;!!G_uCfscf7eWS!bh5eQHxA8QXn10TtTUOI5lmjFbfxFBtZz9CQoiYgyZSR7oDMYp8NK2HHP2UaWRXmU82ddDBpMx3ctAfX8GFQAuL_$ ) has been fixed. I tried using the updated version in my code, but it did not perform as expected when refining the attached mesh (or fine mesh of the same geometry) in parallel.
Here are the details output: The first two sequential runs work correctly. However, when running the code in parallel without refinement, some warnings are generated. After refining the mesh in parallel, the code crashes.
``` ❯ mpiexec -n 1 python test_adapt.py -dm_adaptor parmmg
❯ mpiexec -n 1 python test_adapt.py -dm_adaptor parmmg -refine 1
❯ mpiexec -n 2 python test_adapt.py -dm_adaptor parmmg ## Warning: MMG5_interpreg_ani: 608: unexpected case (null normal), impossible interpolation.
## Warning: MMG5_movbdyregpt_ani: unable to compute optimal position for at least 1 point. ## Warning: MMG5_interpreg_ani: 608: unexpected case (null normal), impossible interpolation.
## Warning: MMG5_movbdyregpt_ani: unable to compute optimal position for at least 1 point.
❯ mpiexec -n 2 python test_adapt.py -dm_adaptor parmmg -refine 1 Assertion failed: (isfinite(dd)), function PMMG_hashNorver_normals, file analys_pmmg.c, line 1072. Assertion failed: (isfinite(dd)), function PMMG_hashNorver_normals, file analys_pmmg.c, line 1072.
=================================================================================== = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES = PID 22704 RUNNING AT yzzs-mac.local = EXIT CODE: 6 = CLEANING UP REMAINING PROCESSES = YOU CAN IGNORE THE BELOW CLEANUP MESSAGES =================================================================================== YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Abort trap: 6 (signal 6) This typically refers to a problem with your application. Please see the FAQ page for debugging suggestions
❯ mpiexec -n 2 python test_adapt.py -dm_adaptor parmmg -overlap ## Warning: MMG5_interpreg_ani: 608: unexpected case (null normal), impossible interpolation.
## Warning: MMG5_movbdyregpt_ani: unable to compute optimal position for at least 1 point. ## Warning: MMG5_interpreg_ani: 608: unexpected case (null normal), impossible interpolation.
## Warning: MMG5_movbdyregpt_ani: unable to compute optimal position for at least 1 point.
❯ mpiexec -n 2 python test_adapt.py -dm_adaptor parmmg -overlap -refine Assertion failed: (isfinite(dd)), function PMMG_hashNorver_normals, file analys_pmmg.c, line 1072. Assertion failed: (isfinite(dd)), function PMMG_hashNorver_normals, file analys_pmmg.c, line 1072.
=================================================================================== = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES = PID 25424 RUNNING AT yzzs-mac.local = EXIT CODE: 6 = CLEANING UP REMAINING PROCESSES = YOU CAN IGNORE THE BELOW CLEANUP MESSAGES =================================================================================== YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Abort trap: 6 (signal 6) This typically refers to a problem with your application. Please see the FAQ page for debugging suggestions ```
The mesh geometry is a cylinder with an interface. The geometry file of gmsh, the mesh file, and the code are attached. Could someone take a look and help identify the issue?
Thank you!
Best regards, Zongze
<cylinder_test.msh> <test_adapt.py> <geometry.png> <cylinder.geo>
|