Fix in WTEST

If a well is shut due to physical or economical reason the wellstate status is shut
so we can not check the wellstate we instead check the well from the schedule to
make sure we don't test wells that are shut by the user.
This commit is contained in:
Tor Harald Sandve 2021-11-26 09:39:07 +00:00
parent 842766d6d6
commit c4b0a0d9e2

View File

@ -384,16 +384,16 @@ namespace Opm {
if (!wtest_config.empty()) { // there is a WTEST request
const std::vector<std::string> wellsForTesting = wellTestState()
.test_wells(wtest_config, simulationTime);
for (const std::string& well_name : wellsForTesting) {
const auto& ws = this->wellState().well(well_name);
if (ws.status != Well::Status::OPEN)
const Well& wellEcl = schedule().getWell(well_name, timeStepIdx);
if (wellEcl.getStatus() == Well::Status::SHUT)
continue;
WellInterfacePtr well = createWellForWellTest(well_name, timeStepIdx, deferred_logger);
// some preparation before the well can be used
well->init(&phase_usage_, depth_, gravity_, local_num_cells_, B_avg_);
const Well& wellEcl = schedule().getWell(well_name, timeStepIdx);
double well_efficiency_factor = wellEcl.getEfficiencyFactor();
WellGroupHelpers::accumulateGroupEfficiencyFactor(schedule().getGroup(wellEcl.groupName(), timeStepIdx),
schedule(), timeStepIdx, well_efficiency_factor);