From f2089f5a1bbf29e4329503d600e71a902a2fdfd7 Mon Sep 17 00:00:00 2001 From: Kai Bao Date: Tue, 16 Jun 2015 14:32:47 +0200 Subject: [PATCH] avoiding creating dx_V unnecessarily by using dx.array() in function solveWellEq(). --- opm/autodiff/BlackoilModelBase_impl.hpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/opm/autodiff/BlackoilModelBase_impl.hpp b/opm/autodiff/BlackoilModelBase_impl.hpp index 31ffb4248..6666e5591 100644 --- a/opm/autodiff/BlackoilModelBase_impl.hpp +++ b/opm/autodiff/BlackoilModelBase_impl.hpp @@ -1266,10 +1266,7 @@ namespace detail { const std::vector& Jn = total_residual.derivative(); const Eigen::SparseLU< M > solver(Jn[0]); const Eigen::VectorXd& dx = solver.solve(total_residual.value().matrix()); - const int numeq = well_state.numWells()*(well_state.numPhases()+1); - V dx_V = V(numeq); - std::copy_n(dx.data(), numeq, dx_V.data()); - updateWellState(dx_V, well_state); + updateWellState(dx.array(), well_state); updateWellControls(well_state); } while (it < 15);