Draft: Block-AMG in parallel
Supersedes !1950 (closed)
Make the BlockDiagAMGBiCGSTABSolver
work in parallel.
On the user side, this requires passing argument and template tuples. For the currently working test in multidomain/poroelastic/el1p
, this amounts to
using GridGeometries = std::tuple<OnePFVGridGeometry, PoroMechFVGridGeometry>;
using LinearSolver = BlockDiagAMGBiCGSTABSolver<GridGeometries>;
auto views = std::make_tuple(std::cref(leafGridView), std::cref(leafGridView));
auto mappers = std::make_tuple(onePFvGridGeometry->dofMapper(), poroMechFvGridGeometry->dofMapper());
auto groups = std::make_tuple(std::string("OneP"), std::string("PoroElastic"));
auto linearSolver = std::make_shared<LinearSolver>(views, mappers, groups);
-
Make it work for dumux-sediment. -
Make it work for YaspGrid
,UGGrid
andALUGrid
. -
Decide where to put what.