diff --git a/opm/simulators/linalg/PreconditionerFactory.hpp b/opm/simulators/linalg/PreconditionerFactory.hpp index c2fa06488..fc1647f6a 100644 --- a/opm/simulators/linalg/PreconditionerFactory.hpp +++ b/opm/simulators/linalg/PreconditionerFactory.hpp @@ -138,6 +138,11 @@ private: // graph might be unsymmetric and hence not supported by the PTScotch/ParMetis // calls in DUNE. Accumulating to 1 skips PTScotch/ParMetis criterion.setAccumulate(static_cast(prm.get("accumulate", 1))); + criterion.setProlongationDampingFactor(prm.get("prolongationdamping", 1.6)); + criterion.setMaxDistance(prm.get("maxdistance", 2)); + criterion.setMaxConnectivity(prm.get("maxconnectivity", 15)); + criterion.setMaxAggregateSize(prm.get("maxaggsize", 6)); + criterion.setMinAggregateSize(prm.get("minaggsize", 4)); return criterion; } diff --git a/opm/simulators/linalg/setupPropertyTree.cpp b/opm/simulators/linalg/setupPropertyTree.cpp index 6cfed90e0..209324319 100644 --- a/opm/simulators/linalg/setupPropertyTree.cpp +++ b/opm/simulators/linalg/setupPropertyTree.cpp @@ -65,6 +65,11 @@ setupCPR(const std::string& conf, const FlowLinearSolverParameters& p) // graph might be unsymmetric and hence not supported by the PTScotch/ParMetis // calls in DUNE. Accumulating to 1 skips PTScotch/ParMetis prm.put("preconditioner.coarsesolver.preconditioner.accumulate", 1); + prm.put("preconditioner.coarsesolver.preconditioner.prolongationdamping", 1.6); + prm.put("preconditioner.coarsesolver.preconditioner.maxdistance", 2); + prm.put("preconditioner.coarsesolver.preconditioner.maxconnectivity", 15); + prm.put("preconditioner.coarsesolver.preconditioner.maxaggsize", 6); + prm.put("preconditioner.coarsesolver.preconditioner.minaggsize", 4); return prm; } @@ -93,6 +98,11 @@ setupAMG([[maybe_unused]] const std::string& conf, const FlowLinearSolverParamet // graph might be unsymmetric and hence not supported by the PTScotch/ParMetis // calls in DUNE. Accumulating to 1 skips PTScotch/ParMetis prm.put("preconditioner.accumulate", 1); + prm.put("preconditioner.prolongationdamping", 1.6); + prm.put("preconditioner.maxdistance", 2); + prm.put("preconditioner.maxconnectivity", 15); + prm.put("preconditioner.maxaggsize", 6); + prm.put("preconditioner.minaggsize", 4); return prm; }