From c2129185ae71ba96bca72c107cfab5ac73e6e189 Mon Sep 17 00:00:00 2001 From: Markus Blatt Date: Wed, 14 Jun 2017 09:09:26 +0000 Subject: [PATCH] Store columns of ParallelOverlappingILU0::upper in descending order This is the order used by ILU in dune-istl --- opm/autodiff/ParallelOverlappingILU0.hpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/opm/autodiff/ParallelOverlappingILU0.hpp b/opm/autodiff/ParallelOverlappingILU0.hpp index a7eccb548..78f755ed3 100644 --- a/opm/autodiff/ParallelOverlappingILU0.hpp +++ b/opm/autodiff/ParallelOverlappingILU0.hpp @@ -120,20 +120,18 @@ namespace Opm // relative to ILU for (auto i=A.beforeEnd(); i!=rendi; --i, ++ row ) { - // coliterator is diagonal after the following loop - const auto endij=(*i).end(); // end of row i - const size_type iIndex = i.index(); upper.reserveAdditional( (*i).size() ); // store in reverse row order // eliminate entries left of diagonal; store L factor - for (auto j=(*i).begin(); j != endij; ++j ) + for (auto j=(*i).beforeEnd(); j.index()>=iIndex; --j ) { const size_type jIndex = j.index(); if( j.index() == iIndex ) { inv[ row ] = (*j); + break; } else if ( j.index() >= i.index() ) {