diff --git a/opm/autodiff/BlackoilTransportModel.hpp b/opm/autodiff/BlackoilTransportModel.hpp index 41ddc56d6..ed28b5e16 100644 --- a/opm/autodiff/BlackoilTransportModel.hpp +++ b/opm/autodiff/BlackoilTransportModel.hpp @@ -111,6 +111,16 @@ namespace Opm { SolutionState state = asImpl().variableState(reservoir_state, well_state); if (initial_assembly) { + + // HACK + const_cast(total_flux_) + = Eigen::Map(reservoir_state.faceflux().data(), reservoir_state.faceflux().size()); + const_cast(total_wellperf_flux_) + = Eigen::Map(well_state.perfRates().data(), well_state.perfRates().size()); + const_cast(comp_wellperf_flux_) + = Eigen::Map(well_state.perfPhaseRates().data(), well_state.perfRates().size(), numPhases()); + assert(numPhases() * well_state.perfRates().size() == well_state.perfPhaseRates().size()); + is_first_iter_ = true; // Create the (constant, derivativeless) initial state. SolutionState state0 = state; @@ -228,15 +238,6 @@ namespace Opm { variableState(const ReservoirState& x, const WellState& xw) const { - // HACK - const_cast(total_flux_) - = Eigen::Map(x.faceflux().data(), x.faceflux().size()); - const_cast(total_wellperf_flux_) - = Eigen::Map(xw.perfRates().data(), xw.perfRates().size()); - const_cast(comp_wellperf_flux_) - = Eigen::Map(xw.perfPhaseRates().data(), xw.perfRates().size(), numPhases()); - assert(numPhases() * xw.perfRates().size() == xw.perfPhaseRates().size()); - // As Base::variableState(), except making Pressure, Qs and Bhp constants. std::vector vars0 = asImpl().variableStateInitials(x, xw); std::vector vars = ADB::variables(vars0);