From 7d9beb3506d757b9efd71f1c8a39b21efe08da2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A5rd=20Skaflestad?= Date: Tue, 18 Oct 2022 18:17:01 +0200 Subject: [PATCH] Support Using Different Types for Surface and Reservoir Rates Simplifies using pointers here. --- opm/simulators/wells/RateConverter.hpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/opm/simulators/wells/RateConverter.hpp b/opm/simulators/wells/RateConverter.hpp index 91ac14afe..3d50211d7 100644 --- a/opm/simulators/wells/RateConverter.hpp +++ b/opm/simulators/wells/RateConverter.hpp @@ -422,18 +422,16 @@ namespace Opm { * \param[out] voidage_rates Reservoir volume flow rates for all * active phases. */ - template - void calcReservoirVoidageRates(const int pvtRegionIdx, - const double p, - const double rs, - const double rv, - const double T, - const double saltConcentration, - const Rates& surface_rates, - Rates& voidage_rates) const + template + void calcReservoirVoidageRates(const int pvtRegionIdx, + const double p, + const double rs, + const double rv, + const double T, + const double saltConcentration, + const SurfaceRates& surface_rates, + VoidageRates& voidage_rates) const { - std::fill(voidage_rates.begin(), voidage_rates.end(), 0.0); - const auto& pu = this->phaseUsage_; const auto iw = RegionAttributeHelpers::PhasePos::water(pu); const auto io = RegionAttributeHelpers::PhasePos::oil (pu); @@ -442,6 +440,8 @@ namespace Opm { const auto [Rs, Rv] = this-> dissolvedVaporisedRatio(io, ig, rs, rv, surface_rates); + std::fill_n(&voidage_rates[0], pu.num_phases, 0.0); + if (RegionAttributeHelpers::PhaseUsed::water(pu)) { // q[w]_r = q[w]_s / bw const auto bw = FluidSystem::waterPvt()