wells under zero injection target are also treated as stopped well

when formulating the well control equations
This commit is contained in:
Kai Bao
2023-03-28 13:14:33 +02:00
parent b4b8e7aff1
commit f4e0a996b9
10 changed files with 53 additions and 33 deletions

View File

@@ -450,6 +450,24 @@ bool WellInterfaceGeneric::isPressureControlled(const WellState& well_state) con
}
}
bool WellInterfaceGeneric::wellUnderZeroRateControl(const SummaryState& summary_state,
const WellState& well_state) const
{
if (this->wellIsStopped()) return true;
if (this->isProducer()) { // producers
const auto prod_controls = this->well_ecl_.productionControls(summary_state);
const auto prod_mode = well_state.well(this->indexOfWell()).production_cmode;
return wellhelpers::rateControlWithZeroProdTarget(prod_controls, prod_mode);
} else { // injectors
const auto inj_controls = this->well_ecl_.injectionControls(summary_state);
const auto inj_mode = well_state.well(this->indexOfWell()).injection_cmode;
return wellhelpers::rateControlWithZeroInjTarget(inj_controls, inj_mode);
}
}
double WellInterfaceGeneric::wmicrobes_() const
{
auto injectorType = this->well_ecl_.injectorType();