Skip to content

Poly2TriTriangulator fixes for DistributedMesh#3324

Merged
roystgnr merged 13 commits intolibMesh:develfrom
roystgnr:distmesh_fixes
Jul 6, 2022
Merged

Poly2TriTriangulator fixes for DistributedMesh#3324
roystgnr merged 13 commits intolibMesh:develfrom
roystgnr:distmesh_fixes

Conversation

@roystgnr
Copy link
Copy Markdown
Member

This is the set of changes needed to fix our Poly2Tri unit tests (and the tests in idaholab/moose#21303) with --enable-distmesh, but that MeshSerializer update ought to make the serializer potentially more flexible for other use cases too.

@roystgnr
Copy link
Copy Markdown
Member Author

Well, I spoke too soon. Half the proposed MOOSE poly2tri tests now work with DistributedMesh, but I'll need to look deeper into the rest. This ought to be merged regardless so we can get --enable-distmesh tests in our regular CI here.

@moosebuild
Copy link
Copy Markdown

moosebuild commented Jun 25, 2022

Job Coverage on 1e7ffca wanted to post the following:

Coverage

6cd1a3 #3324 1e7ffc
Total Total +/- New
Rate 55.72% 55.71% -0.02% 100.00%
Hits 44899 44899 - 48
Misses 35674 35699 +25 0

Diff coverage report

Full coverage report

This comment will be updated on new commits.

@roystgnr
Copy link
Copy Markdown
Member Author

Okay, with these last few commits (plus changes in MOOSE) my tests there are also working on DistributedMesh, and our unit test suite here is find with --enable-distmesh builds up to 8 ranks. I'm still seeing something weird from an Exodus test at 9 ranks, but that looks like a separate issue so I'd like to merge this once CI is happy.

Comment thread src/mesh/poly2tri_triangulator.C Outdated
@roystgnr
Copy link
Copy Markdown
Member Author

roystgnr commented Jul 5, 2022

If this passes I'll add some DistributedMesh sweeps to CI, and if that works too I'll merge.

@roystgnr
Copy link
Copy Markdown
Member Author

roystgnr commented Jul 5, 2022

Well, at least it's a new example failing this time.

@roystgnr
Copy link
Copy Markdown
Member Author

roystgnr commented Jul 5, 2022

Looks like my fixes for Triangle+PSLG+DistributedMesh failed horribly with Triangle+GENERATE_CONVEX_HULL+anything.

roystgnr added 10 commits July 5, 2022 17:41
This fixes most of the bugs I see when running with DistributedMesh
This fixes another few --enable-distmesh unit test bugs for me.
I don't this actually fixed any bugs, in hindsight, but it doesn't hurt
to use an a priori numbering.
This lets us call `prepare_for_use()` within serialized sections, as I'd
been trying to do in our poly2tri code.

This fixes all our unit tests with DistributedMesh in parallel for me.
In a real application we're currently happy just to get a sane error
message from one rank before we die, but here we really need to be able
to recover afterward, not lose sync.
The DistributedMesh invocation no longer fails on 9+ ranks.
This isn't a good fix, because it precludes users carefully setting up
ghosting manually between meshes... but since we're already serializing
the solution here, we might as well serialize the mesh too.

This fixes --enable-distmesh runs of miscellaneous_ex10 on 3+
processors.
roystgnr added 3 commits July 6, 2022 09:19
Our interpretation of number of interpolation points didn't match our
documentation or intentions, so some unit tests here had to be changed
along with the code.

Other than that, this just refactors us to be more robust to use cases
like incoming meshes with weird node numberings.

Poly2Tri is now passing all the tests I can throw at this in both MOOSE
and libMesh.
This fixes Triangle unit tests on distributed meshes for me.

... which means we really ought to be finding whatever it is in our
Triangle interface that doesn't support non-contiguous node numbering,
but I couldn't find it on a quick glance, so "don't trigger the bug in
my other code" is the best I can do right now.
@roystgnr roystgnr merged commit 904e8c2 into libMesh:devel Jul 6, 2022
@roystgnr roystgnr deleted the distmesh_fixes branch July 6, 2022 20:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants