Fixes usage of firstmatrixelement with DUNE 2.8

The function name is now CamelCase and the old
naming scheme is deprecated. Hence we use the new naming
for 2.8
There was also a compilation problem due to header inclusion
order for that function. The compiler did not find our version
the correct version. With this change compilation succeeds again.
This commit is contained in:
Markus Blatt
2021-07-26 15:03:16 +02:00
parent f4dab07a68
commit 7fb622bba6
5 changed files with 53 additions and 10 deletions

View File

@@ -25,12 +25,14 @@
#include <dune/istl/scalarproducts.hh>
#include <dune/istl/operators.hh>
#include <dune/istl/preconditioners.hh>
#include <dune/istl/solvers.hh>
#include <dune/istl/owneroverlapcopy.hh>
#include <dune/istl/paamg/amg.hh>
#include <dune/istl/superlu.hh>
#include <dune/istl/umfpack.hh>
#include <dune/common/fmatrix.hh>
#include <dune/common/typetraits.hh>
namespace Opm {
namespace MatrixBlockHelp {
@@ -247,10 +249,6 @@ void print_row(std::ostream& s, const Opm::MatrixBlock<K, n, m>& A,
int precision)
{ print_row(s, A.asBase(), I, J, therow, width, precision); }
template<class K, int n, int m>
K& firstmatrixelement(Opm::MatrixBlock<K, n, m>& A)
{ return firstmatrixelement(A.asBase()); }
template <typename Scalar, int n, int m>
struct MatrixDimension<Opm::MatrixBlock<Scalar, n, m> >
: public MatrixDimension<typename Opm::MatrixBlock<Scalar, n, m>::BaseType>
@@ -297,6 +295,11 @@ public:
};
#endif
template<typename T, int n, int m>
struct IsNumber<Opm::MatrixBlock<T, n, m>>
: public IsNumber<Dune::FieldMatrix<T,n,m>>
{};
} // end namespace Dune