diff --git a/examples/polymer_reorder.cpp b/examples/polymer_reorder.cpp index 436ddfe1f..d972b3dcf 100644 --- a/examples/polymer_reorder.cpp +++ b/examples/polymer_reorder.cpp @@ -664,7 +664,7 @@ main(int argc, char** argv) model.initGravityTrans(*grid->c_grid(), psolver.getHalfTrans()); } TransportSolver tsolver(model); - typedef std::map > ColMap; + typedef std::pair, std::vector > > ColMap; ColMap columns; if (use_column_solver) { Opm::extractColumn(*grid->c_grid(), columns); @@ -672,7 +672,6 @@ main(int argc, char** argv) Opm::GravityColumnSolverPolymer colsolver(model, *grid->c_grid(), nltol, maxit); - // Boundary conditions. Opm::FlowBCManager bcs; diff --git a/opm/polymer/GravityColumnSolverPolymer.hpp b/opm/polymer/GravityColumnSolverPolymer.hpp index 04b64d4a0..32f16762b 100644 --- a/opm/polymer/GravityColumnSolverPolymer.hpp +++ b/opm/polymer/GravityColumnSolverPolymer.hpp @@ -45,7 +45,7 @@ namespace Opm /// problem. For each column, its cells must be in a single /// vertical column, and ordered /// (direction doesn't matter). - void solve(const std::map >& columns, + void solve(const std::pair, std::vector > >& columns, const double dt, std::vector& s, std::vector& c, diff --git a/opm/polymer/GravityColumnSolverPolymer_impl.hpp b/opm/polymer/GravityColumnSolverPolymer_impl.hpp index c27b20498..a7ecc3dc7 100644 --- a/opm/polymer/GravityColumnSolverPolymer_impl.hpp +++ b/opm/polymer/GravityColumnSolverPolymer_impl.hpp @@ -117,7 +117,7 @@ namespace Opm /// vertical column, and ordered /// (direction doesn't matter). template - void GravityColumnSolverPolymer::solve(const std::map >& columns, + void GravityColumnSolverPolymer::solve(const std::pair, std::vector > >& columns, const double dt, std::vector& s, std::vector& c, @@ -134,9 +134,9 @@ namespace Opm double max_delta = 1e100; while (iter < maxit_) { model_.initIteration(state, grid_, sys); - std::map >::const_iterator it; - for (it = columns.begin(); it != columns.end(); ++it) { - solveSingleColumn(it->second, dt, s, c, cmax, increment); + int size = columns.second.size(); + for(int i = 0; i < size; ++i) { + solveSingleColumn(columns.second[i], dt, s, c, cmax, increment); } for (int cell = 0; cell < grid_.number_of_cells; ++cell) { sys.vector().writableSolution()[2*cell + 0] += increment[2*cell + 0];