[cleanup[ use Dune::Amg::SequentialInformation instead of int.

This commit is contained in:
Robert Kloefkorn 2017-05-29 18:34:55 +02:00
parent 38300a4c9b
commit 0b90b7863b

View File

@ -24,13 +24,14 @@
#include <dune/istl/preconditioner.hh> #include <dune/istl/preconditioner.hh>
#include <dune/istl/paamg/smoother.hh> #include <dune/istl/paamg/smoother.hh>
#include <dune/istl/paamg/pinfo.hh>
namespace Opm namespace Opm
{ {
//template<class M, class X, class Y, class C> //template<class M, class X, class Y, class C>
//class ParallelOverlappingILU0; //class ParallelOverlappingILU0;
template<class Matrix, class Domain, class Range, class ParallelInfo = int> template<class Matrix, class Domain, class Range, class ParallelInfo = Dune::Amg::SequentialInformation>
class ParallelOverlappingILU0; class ParallelOverlappingILU0;
} // end namespace Opm } // end namespace Opm
@ -164,11 +165,7 @@ template<class Matrix, class Domain, class Range, class ParallelInfoT>
class ParallelOverlappingILU0 class ParallelOverlappingILU0
: public Dune::Preconditioner<Domain,Range> : public Dune::Preconditioner<Domain,Range>
{ {
// if ParallelInfoT = int was passed then sequential preconditioner is selected typedef ParallelInfoT ParallelInfo;
typedef typename std::conditional<
std::is_same<ParallelInfoT,int>::value,
Dune::OwnerOverlapCopyCommunication<int, int>,
ParallelInfoT>::type ParallelInfo;
public: public:
//! \brief The matrix type the preconditioner is for. //! \brief The matrix type the preconditioner is for.
@ -232,7 +229,7 @@ public:
// define the category // define the category
enum { enum {
//! \brief The category the preconditioner is part of. //! \brief The category the preconditioner is part of.
category = std::is_same<ParallelInfoT,int>::value ? category = std::is_same<ParallelInfoT, Dune::Amg::SequentialInformation>::value ?
Dune::SolverCategory::sequential : Dune::SolverCategory::overlapping Dune::SolverCategory::sequential : Dune::SolverCategory::overlapping
}; };