move string conversion of WellWELTARGCMode to WellEnums.cpp

This commit is contained in:
Arne Morten Kvarving
2023-01-17 21:12:09 +01:00
parent 0ef729ba72
commit 6565ea0f1f
5 changed files with 42 additions and 40 deletions

View File

@@ -88,7 +88,6 @@ public:
using ProducerCMode = WellProducerCMode;
using WELTARGCMode = WellWELTARGCMode;
static WELTARGCMode WELTARGCModeFromString(const std::string& stringValue);
using GuideRateTarget = WellGuideRateTarget;
static const std::string GuideRateTarget2String(GuideRateTarget enumValue);

View File

@@ -114,6 +114,8 @@ std::string WellProducerCMode2String(WellProducerCMode enumValue);
WellProducerCMode WellProducerCModeFromString(const std::string& stringValue);
std::ostream& operator<<(std::ostream& os, const WellProducerCMode& cm);
WellWELTARGCMode WellWELTARGCModeFromString(const std::string& stringValue);
}
#endif

View File

@@ -1533,7 +1533,7 @@ Well{0} entered with disallowed 'FIELD' parent group:
if (well_names.empty())
this->invalidNamePattern( wellNamePattern, handlerContext);
const auto cmode = Well::WELTARGCModeFromString(record.getItem("CMODE").getTrimmedString(0));
const auto cmode = WellWELTARGCModeFromString(record.getItem("CMODE").getTrimmedString(0));
const auto new_arg = record.getItem("NEW_VALUE").get<UDAValue>(0);
for (const auto& well_name : well_names) {
@@ -2205,7 +2205,7 @@ Well{0} entered with disallowed 'FIELD' parent group:
throw OpmInputError(reason, handlerContext.keyword.location());
}
const auto cmode = Well::WELTARGCModeFromString(control);
const auto cmode = WellWELTARGCModeFromString(control);
if (cmode == Well::WELTARGCMode::GUID)
throw std::logic_error("Multiplying guide rate is not implemented");

View File

@@ -1557,43 +1557,6 @@ void Well::setWellTemperature(const double temp) {
this->well_temperature = temp;
}
Well::WELTARGCMode Well::WELTARGCModeFromString(const std::string& string_value) {
if (string_value == "ORAT")
return WELTARGCMode::ORAT;
if (string_value == "WRAT")
return WELTARGCMode::WRAT;
if (string_value == "GRAT")
return WELTARGCMode::GRAT;
if (string_value == "LRAT")
return WELTARGCMode::LRAT;
if (string_value == "CRAT")
return WELTARGCMode::CRAT;
if (string_value == "RESV")
return WELTARGCMode::RESV;
if (string_value == "BHP")
return WELTARGCMode::BHP;
if (string_value == "THP")
return WELTARGCMode::THP;
if (string_value == "VFP")
return WELTARGCMode::VFP;
if (string_value == "LIFT")
return WELTARGCMode::LIFT;
if (string_value == "GUID")
return WELTARGCMode::GUID;
throw std::invalid_argument("WELTARG control mode: " + string_value + " not recognized.");
}
const std::string Well::GuideRateTarget2String( GuideRateTarget enumValue ) {
switch( enumValue ) {
case GuideRateTarget::OIL:

View File

@@ -166,4 +166,42 @@ std::ostream& operator<<(std::ostream& os, const WellProducerCMode& cm)
return os;
}
WellWELTARGCMode WellWELTARGCModeFromString(const std::string& string_value)
{
if (string_value == "ORAT")
return WellWELTARGCMode::ORAT;
if (string_value == "WRAT")
return WellWELTARGCMode::WRAT;
if (string_value == "GRAT")
return WellWELTARGCMode::GRAT;
if (string_value == "LRAT")
return WellWELTARGCMode::LRAT;
if (string_value == "CRAT")
return WellWELTARGCMode::CRAT;
if (string_value == "RESV")
return WellWELTARGCMode::RESV;
if (string_value == "BHP")
return WellWELTARGCMode::BHP;
if (string_value == "THP")
return WellWELTARGCMode::THP;
if (string_value == "VFP")
return WellWELTARGCMode::VFP;
if (string_value == "LIFT")
return WellWELTARGCMode::LIFT;
if (string_value == "GUID")
return WellWELTARGCMode::GUID;
throw std::invalid_argument("WELTARG control mode: " + string_value + " not recognized.");
}
}