mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Store columns of ParallelOverlappingILU0::upper in descending order
This is the order used by ILU in dune-istl
This commit is contained in:
@@ -120,20 +120,18 @@ namespace Opm
|
|||||||
// relative to ILU
|
// relative to ILU
|
||||||
for (auto i=A.beforeEnd(); i!=rendi; --i, ++ row )
|
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();
|
const size_type iIndex = i.index();
|
||||||
upper.reserveAdditional( (*i).size() );
|
upper.reserveAdditional( (*i).size() );
|
||||||
|
|
||||||
// store in reverse row order
|
// store in reverse row order
|
||||||
// eliminate entries left of diagonal; store L factor
|
// 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();
|
const size_type jIndex = j.index();
|
||||||
if( j.index() == iIndex )
|
if( j.index() == iIndex )
|
||||||
{
|
{
|
||||||
inv[ row ] = (*j);
|
inv[ row ] = (*j);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else if ( j.index() >= i.index() )
|
else if ( j.index() >= i.index() )
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user