Draft: Ginkgo distributed backend
This MR enables distributed solvers in the Ginkgo backend. It is still very much work in progress. For now it is a draft as we still are working on distributed preconditioners.
So far, we have a one level additive Schwarz preconditioner available. That lacks global coupling, a distributed coarsening implementation is in the works.
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