diff --git a/opm/parser/eclipse/EclipseState/Schedule/Well/Well.hpp b/opm/parser/eclipse/EclipseState/Schedule/Well/Well.hpp index 8b97ba2fa..e267dbf1b 100644 --- a/opm/parser/eclipse/EclipseState/Schedule/Well/Well.hpp +++ b/opm/parser/eclipse/EclipseState/Schedule/Well/Well.hpp @@ -205,7 +205,21 @@ public: bool operator==(const WellInjectionProperties& other) const; bool operator!=(const WellInjectionProperties& other) const; + WellInjectionProperties(); WellInjectionProperties(const std::string& wname); + WellInjectionProperties(const std::string& wname, + const UDAValue& surfaceInjRate, + const UDAValue& reservoirInjRate, + const UDAValue& BHP, + const UDAValue& THP, + double temp, double bhph, + double thph, + int vfpTableNum, + bool predMode, + int injControls, + Well::InjectorType injType, + InjectorCMode ctrlMode); + void handleWELTARG(WELTARGCMode cmode, double newValue, double siFactorG, double siFactorL, double siFactorP); void handleWCONINJE(const DeckRecord& record, bool availableForGroupControl, const std::string& well_name); void handleWCONINJH(const DeckRecord& record, bool is_producer, const std::string& well_name); diff --git a/src/opm/parser/eclipse/EclipseState/Schedule/Well/WellInjectionProperties.cpp b/src/opm/parser/eclipse/EclipseState/Schedule/Well/WellInjectionProperties.cpp index eb9d64506..777b0f348 100644 --- a/src/opm/parser/eclipse/EclipseState/Schedule/Well/WellInjectionProperties.cpp +++ b/src/opm/parser/eclipse/EclipseState/Schedule/Well/WellInjectionProperties.cpp @@ -35,6 +35,14 @@ namespace Opm { + Well::WellInjectionProperties::WellInjectionProperties() + : temperature(0.0), BHPH(0.0), THPH(0.0), VFPTableNumber(0), + predictionMode(false), injectionControls(0), + injectorType(Well::InjectorType::WATER), + controlMode(Well::InjectorCMode::CMODE_UNDEFINED) + { + } + Well::WellInjectionProperties::WellInjectionProperties(const std::string& wname) : name(wname), injectorType(InjectorType::WATER), @@ -51,6 +59,36 @@ namespace Opm { } + Well::WellInjectionProperties::WellInjectionProperties(const std::string& wname, + const UDAValue& surfaceInjRate, + const UDAValue& reservoirInjRate, + const UDAValue& BHP, + const UDAValue& THP, + double temp, double bhph, + double thph, + int vfpTableNum, + bool predMode, + int injControls, + Well::InjectorType injType, + InjectorCMode ctrlMode) + : name(wname), + surfaceInjectionRate(surfaceInjRate), + reservoirInjectionRate(reservoirInjRate), + BHPLimit(BHP), + THPLimit(THP), + temperature(temp), + BHPH(bhph), + THPH(thph), + VFPTableNumber(vfpTableNum), + predictionMode(predMode), + injectionControls(injControls), + injectorType(injType), + controlMode(ctrlMode) + { + } + + + void Well::WellInjectionProperties::handleWCONINJE(const DeckRecord& record, bool availableForGroupControl, const std::string& well_name) { this->injectorType = Well::InjectorTypeFromString( record.getItem("TYPE").getTrimmedString(0) ); this->predictionMode = true;