When loading from restart: set wells active control also for SHUT

This commit is contained in:
Joakim Hove 2020-10-20 08:36:35 +02:00
parent 5c6fa9cc51
commit 67f24bd3a7

View File

@ -188,43 +188,42 @@ Well::Well(const RestartIO::RstWell& rst_well,
p->addProductionControl( Well::ProducerCMode::THP );
}
if (this->status == Well::Status::OPEN) {
switch (rst_well.active_control) {
case CModeVal::Group:
p->controlMode = Well::ProducerCMode::GRUP;
p->addProductionControl(Well::ProducerCMode::GRUP);
break;
case CModeVal::OilRate:
p->controlMode = Well::ProducerCMode::ORAT;
break;
case CModeVal::WatRate:
p->controlMode = Well::ProducerCMode::WRAT;
p->addProductionControl(Well::ProducerCMode::WRAT);
break;
case CModeVal::GasRate:
p->controlMode = Well::ProducerCMode::GRAT;
p->addProductionControl(Well::ProducerCMode::GRAT);
break;
case CModeVal::LiqRate:
p->controlMode = Well::ProducerCMode::LRAT;
p->addProductionControl(Well::ProducerCMode::LRAT);
break;
case CModeVal::ResVRate:
p->controlMode = Well::ProducerCMode::RESV;
p->addProductionControl(Well::ProducerCMode::RESV);
break;
case CModeVal::THP:
p->controlMode = Well::ProducerCMode::THP;
p->addProductionControl(Well::ProducerCMode::THP);
break;
case CModeVal::BHP:
p->controlMode = Well::ProducerCMode::BHP;
p->addProductionControl(Well::ProducerCMode::BHP);
break;
default:
throw std::invalid_argument("Can not convert integer value: " + std::to_string(rst_well.active_control)
+ " to control type");
}
switch (rst_well.active_control) {
case CModeVal::Group:
p->controlMode = Well::ProducerCMode::GRUP;
p->addProductionControl(Well::ProducerCMode::GRUP);
break;
case CModeVal::OilRate:
p->controlMode = Well::ProducerCMode::ORAT;
p->addProductionControl(Well::ProducerCMode::ORAT);
break;
case CModeVal::WatRate:
p->controlMode = Well::ProducerCMode::WRAT;
p->addProductionControl(Well::ProducerCMode::WRAT);
break;
case CModeVal::GasRate:
p->controlMode = Well::ProducerCMode::GRAT;
p->addProductionControl(Well::ProducerCMode::GRAT);
break;
case CModeVal::LiqRate:
p->controlMode = Well::ProducerCMode::LRAT;
p->addProductionControl(Well::ProducerCMode::LRAT);
break;
case CModeVal::ResVRate:
p->controlMode = Well::ProducerCMode::RESV;
p->addProductionControl(Well::ProducerCMode::RESV);
break;
case CModeVal::THP:
p->controlMode = Well::ProducerCMode::THP;
p->addProductionControl(Well::ProducerCMode::THP);
break;
case CModeVal::BHP:
p->controlMode = Well::ProducerCMode::BHP;
p->addProductionControl(Well::ProducerCMode::BHP);
break;
default:
throw std::invalid_argument(fmt::format("Can not convert integer value:{} to control type", rst_well.active_control));
}
p->addProductionControl(Well::ProducerCMode::BHP);
@ -236,33 +235,33 @@ Well::Well(const RestartIO::RstWell& rst_well,
i->VFPTableNumber = rst_well.vfp_table;
i->predictionMode = this->prediction_mode;
if (this->status == Well::Status::OPEN) {
switch (rst_well.active_control) {
case CModeVal::Group:
i->controlMode = Well::InjectorCMode::GRUP;
break;
case CModeVal::OilRate: [[fallthrough]];
case CModeVal::WatRate: [[fallthrough]];
case CModeVal::GasRate: [[fallthrough]];
case CModeVal::LiqRate:
i->controlMode = Well::InjectorCMode::RATE;
i->addInjectionControl(Well::InjectorCMode::RATE);
break;
case CModeVal::ResVRate:
i->controlMode = Well::InjectorCMode::RESV;
i->addInjectionControl(Well::InjectorCMode::RESV);
break;
case CModeVal::THP:
i->controlMode = Well::InjectorCMode::THP;
i->addInjectionControl(Well::InjectorCMode::THP);
break;
case CModeVal::BHP:
i->controlMode = Well::InjectorCMode::BHP;
break;
default:
throw std::invalid_argument(
"Could not convert integer value: " + std::to_string(rst_well.active_control) + " to control type");
}
switch (rst_well.active_control) {
case CModeVal::Group:
i->controlMode = Well::InjectorCMode::GRUP;
break;
case CModeVal::OilRate:
[[fallthrough]];
case CModeVal::WatRate:
[[fallthrough]];
case CModeVal::GasRate:
[[fallthrough]];
case CModeVal::LiqRate:
i->controlMode = Well::InjectorCMode::RATE;
i->addInjectionControl(Well::InjectorCMode::RATE);
break;
case CModeVal::ResVRate:
i->controlMode = Well::InjectorCMode::RESV;
i->addInjectionControl(Well::InjectorCMode::RESV);
break;
case CModeVal::THP:
i->controlMode = Well::InjectorCMode::THP;
i->addInjectionControl(Well::InjectorCMode::THP);
break;
case CModeVal::BHP:
i->controlMode = Well::InjectorCMode::BHP;
break;
default:
throw std::invalid_argument(fmt::format("Can not convert integer value:{} to control type", rst_well.active_control));
}
i->injectorType = rst_well.wtype.injector_type();