MmgTools / ParMmg

Distributed parallelization of 3D volume mesh adaptation
Other
34 stars 19 forks source link

`_MMG5_boulernm` removal #97

Closed Algiane closed 1 year ago

Algiane commented 1 year ago
          @Algiane, this PR breaks ParMmg.
Undefined symbols for architecture arm64:
  "_MMG5_boulernm", referenced from:
      _PMMG_update_singul in analys_pmmg.c.o

Originally posted by @prj- in https://github.com/MmgTools/mmg/issues/217#issuecomment-1595629806

Algiane commented 1 year ago

Commit 1d6af3b and PR #219 (https://github.com/MmgTools/mmg/pull/219#issue-1780452594) of Mmg should provide a fast fix but it has to be improved.

Algiane commented 1 year ago

Finally, the previous commit was solving the compilation issue but another error was raised at execution (with distributed input meshes):

Assertion failed: (isfinite(dd)), function PMMG_hashNorver_normals, file analys_pmmg.c, line 990.

nm-save.0.mesh.txt nm-save.1.mesh.txt nm-save.2.mesh.txt nm-save.3.mesh.txt

A minimal reproducer is attached and can be run on 4 procs (the .txt extension of the mesh files has to be removed):

mpirun -n 4  ./bin/parmmg_debug nm-save

Bug description

Commit a34f67dc4 of Mmg introduce the use of the tmp field of points in the setVertexNmTag function which breaks the parallel analysis of ParMmg because it uses the same field to store the global node numbering. Having a wrong global numbering leads to errors during the computation of the normal at vertices (the triangle contribution can be accumulated in the ~wrong~ normal at ridge or non-manifold points).

Fix

Commit ae01e57f2 of Mmg replace the use of the tmp point field by the use of a temporary array.

prj- commented 1 year ago

Nice!

Algiane commented 1 year ago

Hi, I think that it is finally fixed in both develop branches of Mmg and ParMmg. I will let you close this issue if it works for you too. Best,

prj- commented 1 year ago

I cannot close the GitHub issue as I am not a maintainer, but the problem is fixed indeed.

Algiane commented 1 year ago

Thanks