Towards Tpetra support#6990
Conversation
|
The OS X tester says: We may simply not have exported |
|
Other than that, if I read your diffs correctly, you have changes such as So this has gotten vastly worse. We use our own |
d44251e to
087b4eb
Compare
|
I fixed the support for older deal.II versions, the failing tests are unrelated. And I agree there are quite a number of tests where in particular the Stokes solver seems to need many more iterations than with Epetra and I was thinking in the same directions. The most obvious candidate to me is that we no longer remove the constant modes from the AMG preconditioner, but a bug is of course also possible. I dont know the reasoning behind the removed option for constant modes in MueLu, maybe it was thought to be no longer necessary. I will need to take a closer look at the MueLu documentation, there is some mention of the near nullspace, but it is not explained in much detail. Maybe we can emulate similar behavior to ML with some additional settings. |
|
I confirmed in at least one test that the support for constant modes (or nullspace removal) makes a huge difference for the solver performance of the MueLu preconditioner. This may not be the whole story (I have seen melt tests without periodicity suffer from worse iteration numbers as well), but a part of the problem. The test With the current version of MueLu/Tpetra: With MueLu/Tpetra if I remove the periodic boundaries and replace them with tangential boundaries (flow field changes a bit, but not dramatically): I will need to look closer at how to implement this properly in deal.II. It will probably require porting the function This will likely be a bigger undertaking. Do you think we need it for this PR? I had mentioned in the changelog entry that performance may not be as good as the ML preconditioner. |
087b4eb to
bfe1b35
Compare
|
With the changes in dealii/dealii#28453 I can now activate the extraction of constant modes for ASPECT in this PR as well and it significantly improves the performance compared to the results I posted above. I have run the full testsuite with Tpetra MueLu in this commit. For example the test I compared above Epetra/ML: Tpetra/MueLu without nullspace removal: Tpetra/MueLu with nullspace removal: This one is still worse than before, but for most tests iteration count is actually within +/- 10% (and quite a few tests, particularly the ones with two-phase flow actually perform better than before). The one you pointed out Wolfgang (adiabatic_heating_with_melt) is back to normal: These tests were not run in our docker tester container so there can be other changes as well, but I think this is close enough in performance that we can say we support Tpetra/MueLu in ASPECT (with deal.II 9.8 and when dealii/dealii#28453 is merged). |
With the changes in #6985 all ASPECT tests now finish the tester system that we also use for the deal.II development version when using the Tpetra vectors and solvers. I have also checked that the solkz and solcx results are similar in accuracy, which they are and the overall test output differences between Epetra and Tpetra solutions are reasonably small (see https://github.com/gassmoeller/aspect/tree/tpetra_test_differences). However, solver performance is another matter, sometimes the Tpetra Stokes solver needs many more iterations than the Epetra based solver (in particular for the Stokes equation, advection is almost equal), I have not checked runtime or scalability yet.
But by now it could be safe to enable using Tpetra, if the user requests it, or the user builds deal.II without Epetra (essentially equal to using Trilinos 17). But we could also keep this PR open for a while. I think eventually someone will have to spend a bit of time with the Stokes solver parameters and check if we should adjust any for Tpetra (similar to the experiments in #234).