Use well index when iterating over brine perforation rates

This commit is contained in:
Joakim Hove 2021-05-21 07:49:09 +02:00
parent f9e142dc8d
commit 2f901f1012
2 changed files with 6 additions and 4 deletions

View File

@ -844,7 +844,8 @@ namespace Opm
cq_s_sm *= extendEval(intQuants.fluidState().saltConcentration());
}
// Note. Efficiency factor is handled in the output layer
well_state.perfRateBrine()[first_perf_ + perf] = cq_s_sm.value();
auto * perf_rate_brine = &well_state.perfRateBrine()[this->first_perf_];
perf_rate_brine[perf] = cq_s_sm.value();
cq_s_sm *= well_efficiency_factor_;
connectionRates[perf][contiBrineEqIdx] = Base::restrictEval(cq_s_sm);

View File

@ -792,7 +792,8 @@ void WellState::reportConnections(data::Well& well,
comp.rates.set( rt::polymer, perf_polymer_rate[local_comp_index]);
}
if ( pu.has_brine ) {
comp.rates.set( rt::brine, this->perfRateBrine()[wt.second[1] + local_comp_index]);
const auto * perf_brine_rate = &this->perfRateBrine()[wt.second[1]];
comp.rates.set( rt::brine, perf_brine_rate[local_comp_index]);
}
if ( pu.has_solvent ) {
const auto * perf_solvent_rate = &this->perfRateSolvent()[wt.second[1]];
@ -1024,8 +1025,8 @@ double WellState::polymerWellRate(const int w) const
double WellState::brineWellRate(const int w) const
{
return parallel_well_info_[w]->sumPerfValues(&perfRateBrine_[0] + first_perf_index_[w],
&perfRateBrine_[0] + first_perf_index_[w] + num_perf_[w]);
const auto * perf_rates_brine = &perfRateBrine_[first_perf_index_[w]];
return parallel_well_info_[w]->sumPerfValues(perf_rates_brine, perf_rates_brine + this->num_perf_[w]);
}
int WellState::topSegmentIndex(const int w) const