Skip to content

WIP: Block-diagonal AMG in parallel

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);
  1. Make it work for dumux-sediment.
  2. Make it work for YaspGrid, UGGrid and ALUGrid.
  3. Decide where to put what.
Edited by Timo Koch

Merge request reports