diff --git a/opm/autodiff/BlackoilModelEbos.hpp b/opm/autodiff/BlackoilModelEbos.hpp index d331af89d..60dcb2627 100644 --- a/opm/autodiff/BlackoilModelEbos.hpp +++ b/opm/autodiff/BlackoilModelEbos.hpp @@ -527,12 +527,20 @@ namespace Opm { typedef Dune::CollectiveCommunication< Grid > communication_type; #endif +#if DUNE_VERSION_NEWER(DUNE_ISTL, 2, 6) + Dune::SolverCategory::Category category() const override + { + return overlapping ? + Dune::SolverCategory::overlapping : Dune::SolverCategory::sequential; + } +#else enum { //! \brief The solver category. category = overlapping ? Dune::SolverCategory::overlapping : Dune::SolverCategory::sequential }; +#endif //! constructor: just store a reference to a matrix WellModelMatrixAdapter (const M& A, const WellModel& wellMod, const boost::any& parallelInformation = boost::any() ) diff --git a/opm/autodiff/CPRPreconditioner.hpp b/opm/autodiff/CPRPreconditioner.hpp index d06512958..ab15ac4d0 100644 --- a/opm/autodiff/CPRPreconditioner.hpp +++ b/opm/autodiff/CPRPreconditioner.hpp @@ -385,11 +385,19 @@ createAMGPreconditionerPointer( Op& opA, const double relax, const P& comm, std: typedef typename X::field_type field_type; // define the category +#if DUNE_VERSION_NEWER(DUNE_ISTL, 2, 6) + Dune::SolverCategory::Category category() const override + { + return std::is_same::value ? + Dune::SolverCategory::sequential : Dune::SolverCategory::overlapping; + } +#else enum { //! \brief The category the preconditioner is part of. category = std::is_same::value? Dune::SolverCategory::sequential:Dune::SolverCategory::overlapping }; +#endif typedef ISTLUtility::CPRSelector CPRSelectorType ; diff --git a/opm/autodiff/ParallelOverlappingILU0.hpp b/opm/autodiff/ParallelOverlappingILU0.hpp index 1bcc50790..bfa7fb2c1 100644 --- a/opm/autodiff/ParallelOverlappingILU0.hpp +++ b/opm/autodiff/ParallelOverlappingILU0.hpp @@ -22,6 +22,7 @@ #include +#include #include #include #include @@ -227,12 +228,21 @@ protected: }; public: +#if DUNE_VERSION_NEWER(DUNE_ISTL, 2, 6) + Dune::SolverCategory::Category category() const override + { + return std::is_same::value ? + Dune::SolverCategory::sequential : Dune::SolverCategory::overlapping; + } + +#else // define the category enum { //! \brief The category the preconditioner is part of. category = std::is_same::value ? Dune::SolverCategory::sequential : Dune::SolverCategory::overlapping }; +#endif /*! \brief Constructor.