Added to partially supported keywords

Added GECON to the list of partially supported keywords
This commit is contained in:
Håkon Hægland 2023-09-01 11:29:18 +02:00
parent dba282c7a4
commit b1274096e9
3 changed files with 26 additions and 6 deletions

View File

@ -104,6 +104,13 @@ partiallySupported()
{21,{true, allow_values<std::string> {"NONE"}, "GCONPROD(COMBPROC): linearly combined procedure is not used and should be defaulted (1*)"}}, // LIN_TARGET_EXCEED_PROCEDURE
},
},
{
"GECON",
{
{7,{true, allow_values<std::string> {"NONE"}, "GECON(WORKOVER): Workover procedures not implemented"}},
{8,{true, allow_values<std::string> {"NO"}, "GECON(ENDRUN): End run not implemented"}},
},
},
{
"GEFAC",
{

View File

@ -18,7 +18,9 @@
*/
#include <config.h>
#include <opm/input/eclipse/Schedule/Group/GroupEconProductionLimits.hpp>
#include <opm/simulators/wells/GroupEconomicLimitsChecker.hpp>
#include <opm/simulators/utils/DeferredLoggingErrorHelpers.hpp>
#include <opm/input/eclipse/Schedule/Well/WellTestConfig.hpp>
#include <fmt/format.h>
@ -63,14 +65,13 @@ void
GroupEconomicLimitsChecker::
activateEndRun()
{
displayDebugMessage("activate end run");
}
void
GroupEconomicLimitsChecker::
closeWells()
{
displayDebugMessage("closing wells..");
closeWellsRecursive(this->group_);
}
@ -78,13 +79,18 @@ void
GroupEconomicLimitsChecker::
doWorkOver()
{
displayDebugMessage("do work over..");
if (this->gecon_props_.workover() != GroupEconProductionLimits::EconWorkover::NONE) {
throwNotImplementedError("workover procedure");
}
}
bool
GroupEconomicLimitsChecker::
endRun()
{
if (this->gecon_props_.endRun()) {
throwNotImplementedError("end run flag YES");
}
return false;
}
@ -260,7 +266,7 @@ WGR()
void
GroupEconomicLimitsChecker::
displayDebugMessage(const std::string &msg)
displayDebugMessage(const std::string &msg) const
{
if (this->debug_) {
const std::string msg2 = fmt::format(
@ -308,4 +314,11 @@ closeWellsRecursive(Group group)
}
}
void
GroupEconomicLimitsChecker::
throwNotImplementedError(const std::string &error) const
{
const std::string msg = fmt::format("Group: {} : GECON : {} not implemented", this->group_.name(), error);
OPM_DEFLOG_THROW(std::runtime_error, msg, this->deferred_logger_);
}
} // namespace Opm

View File

@ -55,9 +55,9 @@ namespace Opm
static constexpr int NUM_PHASES = 3;
private:
void displayDebugMessage(const std::string &msg);
void displayDebugMessage(const std::string &msg) const;
void closeWellsRecursive(Group group);
void throwNotImplementedError(const std::string &error) const;
const BlackoilWellModelGeneric &well_model_;
const Group &group_;
const double simulation_time_;