Use well index for brine perf rates

This commit is contained in:
Joakim Hove
2021-06-02 11:56:18 +02:00
parent fa829cce7a
commit a2195f367d
3 changed files with 10 additions and 5 deletions

View File

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

View File

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

View File

@@ -172,8 +172,13 @@ public:
double polymerWellRate(const int w) const;
/// One rate pr well connection.
std::vector<double>& perfRateBrine() { return perfRateBrine_; }
const std::vector<double>& perfRateBrine() const { return perfRateBrine_; }
double* perfRateBrine(std::size_t well_index) {
return &this->perfRateBrine_[this->first_perf_index_[well_index]];
}
const double* perfRateBrine(std::size_t well_index) const {
return &this->perfRateBrine_[this->first_perf_index_[well_index]];
}
/// One rate pr well
double brineWellRate(const int w) const;