This MR enables distributed solvers in the Ginkgo backend.
So far, our preconditioners that support distributed matrices are additive Schwarz and Algebraic Multigrid (AMG).
One thing I am not quite clear about is the add_scaled_matrix
function. So far, in the examples I ran it was always only adding values to the diagonal blocks stored in each rank, which is fine. In case it also alters the sparsity pattern in the offdiagonal block, this would result in a new communication pattern for SpMVs and would be harder to implement, so I would prefer only doing this if it actually happens. Some feedback concerning this would be highly appreciated.
The Ginkgo branch needed for this to work is: https://github.com/ginkgo-project/ginkgo/tree/openCARP_experimental
This now needs no special Ginkgo branch anymore but can just be used with the current develop
branch.