From fd6319fe387d84ced6a5bdfd048a7a2d23a8ffbf Mon Sep 17 00:00:00 2001 From: Tobias Meyer Andersen Date: Tue, 28 Nov 2023 10:57:19 +0100 Subject: [PATCH] add SSOR smoother --- opm/simulators/linalg/PreconditionerFactory_impl.hpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/opm/simulators/linalg/PreconditionerFactory_impl.hpp b/opm/simulators/linalg/PreconditionerFactory_impl.hpp index 07eaceefa..1531477d5 100644 --- a/opm/simulators/linalg/PreconditionerFactory_impl.hpp +++ b/opm/simulators/linalg/PreconditionerFactory_impl.hpp @@ -253,6 +253,15 @@ struct StandardPreconditioners auto crit = AMGHelper::criterion(prm); PrecPtr prec = std::make_shared>(op, crit, sargs, comm); return prec; + } + else if (smoother == "SSOR") { + using SeqSmoother = SeqSSOR; + using Smoother = Dune::BlockPreconditioner; + using SmootherArgs = typename Dune::Amg::SmootherTraits::Arguments; + SmootherArgs sargs; + auto crit = AMGHelper::criterion(prm); + PrecPtr prec = std::make_shared>(op, crit, sargs, comm); + return prec; }else { OPM_THROW(std::invalid_argument, "Properties: No smoother with name " + smoother + "."); }