Poly2TriTriangulator fixes for DistributedMesh#3324
Conversation
|
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 |
|
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 |
|
If this passes I'll add some DistributedMesh sweeps to CI, and if that works too I'll merge. |
|
Well, at least it's a new example failing this time. |
|
Looks like my fixes for Triangle+PSLG+DistributedMesh failed horribly with Triangle+GENERATE_CONVEX_HULL+anything. |
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.
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.
This is the set of changes needed to fix our Poly2Tri unit tests (and the tests in idaholab/moose#21303) with
--enable-distmesh, but thatMeshSerializerupdate ought to make the serializer potentially more flexible for other use cases too.