<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div dir="ltr"></div><div dir="ltr">The ParMmg developers have the following rule of thumb: if the adaptation process takes less than 10 minutes, stick to Mmg.</div><div dir="ltr">I have experimented on numerous occasions that this is indeed a good rule.</div><div dir="ltr">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.</div><div dir="ltr"><br></div><div dir="ltr">Thanks,</div><div dir="ltr">Pierre </div><div dir="ltr"><br><blockquote type="cite">On 7 Oct 2024, at 6:12 PM, Zongze Yang <yangzongze@gmail.com> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><meta http-equiv="content-type" content="text/html; charset=utf-8"><div>Hi Pierre,</div><div><br></div><div>Thank you for the advice. I will look into implementing it as suggested.</div><div><br></div><div><div>This is just a toy example; the mesh may be larger in the actual calculations.</div><div><br></div></div><div>Best wishes,</div><div>Zongze</div><div><br><blockquote type="cite"><div>On 7 Oct 2024, at 23:34, Pierre Jolivet <pierre@joliv.et> wrote:</div><br class="Apple-interchange-newline"><div><meta charset="UTF-8"><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">Your mesh is tiny, you should not use ParMmg but plain Mmg instead which is much more robust.</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">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.</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">Thanks,</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">Pierre</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><blockquote type="cite" style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">On 7 Oct 2024, at 4:46 PM, Zongze Yang <<a href="mailto:yangzongze@gmail.com">yangzongze@gmail.com</a>> wrote:<br><br>Hi PETSc team,<br><br>I noticed that the ParMmg interface for overlap (<a href="https://urldefense.us/v3/__https://gitlab.com/petsc/petsc/-/merge_requests/7593__;!!G_uCfscf7eWS!bh5eQHxA8QXn10TtTUOI5lmjFbfxFBtZz9CQoiYgyZSR7oDMYp8NK2HHP2UaWRXmU82ddDBpMx3ctAfX8GFQAuL_$">https://urldefense.us/v3/__https://gitlab.com/petsc/petsc/-/merge_requests/7593__;!!G_uCfscf7eWS!bh5eQHxA8QXn10TtTUOI5lmjFbfxFBtZz9CQoiYgyZSR7oDMYp8NK2HHP2UaWRXmU82ddDBpMx3ctAfX8GFQAuL_$</a><span class="Apple-converted-space"> </span>) 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.<br><br>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.<br><br>```<br>❯ mpiexec -n 1 python test_adapt.py -dm_adaptor parmmg <br><br>❯ mpiexec -n 1 python test_adapt.py -dm_adaptor parmmg -refine 1<br><br>❯ mpiexec -n 2 python test_adapt.py -dm_adaptor parmmg <br>## Warning: MMG5_interpreg_ani: 608: unexpected case (null normal), impossible interpolation.<br><br>## Warning: MMG5_movbdyregpt_ani: unable to compute optimal position for at least 1 point.<br>## Warning: MMG5_interpreg_ani: 608: unexpected case (null normal), impossible interpolation.<br><br>## Warning: MMG5_movbdyregpt_ani: unable to compute optimal position for at least 1 point.<br><br>❯ mpiexec -n 2 python test_adapt.py -dm_adaptor parmmg -refine 1<br>Assertion failed: (isfinite(dd)), function PMMG_hashNorver_normals, file analys_pmmg.c, line 1072.<br>Assertion failed: (isfinite(dd)), function PMMG_hashNorver_normals, file analys_pmmg.c, line 1072.<br><br>===================================================================================<br>= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES<br>= PID 22704 RUNNING AT yzzs-mac.local<br>= EXIT CODE: 6<br>= CLEANING UP REMAINING PROCESSES<br>= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES<br>===================================================================================<br>YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Abort trap: 6 (signal 6)<br>This typically refers to a problem with your application.<br>Please see the FAQ page for debugging suggestions<br><br><br>❯ mpiexec -n 2 python test_adapt.py -dm_adaptor parmmg -overlap<br>## Warning: MMG5_interpreg_ani: 608: unexpected case (null normal), impossible interpolation.<br><br>## Warning: MMG5_movbdyregpt_ani: unable to compute optimal position for at least 1 point.<br>## Warning: MMG5_interpreg_ani: 608: unexpected case (null normal), impossible interpolation.<br><br>## Warning: MMG5_movbdyregpt_ani: unable to compute optimal position for at least 1 point.<br><br><br>❯ mpiexec -n 2 python test_adapt.py -dm_adaptor parmmg -overlap -refine<br>Assertion failed: (isfinite(dd)), function PMMG_hashNorver_normals, file analys_pmmg.c, line 1072.<br>Assertion failed: (isfinite(dd)), function PMMG_hashNorver_normals, file analys_pmmg.c, line 1072.<br><br>===================================================================================<br>= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES<br>= PID 25424 RUNNING AT yzzs-mac.local<br>= EXIT CODE: 6<br>= CLEANING UP REMAINING PROCESSES<br>= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES<br>===================================================================================<br>YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Abort trap: 6 (signal 6)<br>This typically refers to a problem with your application.<br>Please see the FAQ page for debugging suggestions<br>```<br><br>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?<br><br>Thank you!<br><br>Best regards,<br>Zongze<br><br><cylinder_test.msh><br><test_adapt.py><br><geometry.png><br><cylinder.geo></blockquote></div></blockquote></div><br></div></blockquote></body></html>