From d6e73df9cf5129e531bba1289868f2ee821a7339 Mon Sep 17 00:00:00 2001 From: Paul Date: Wed, 10 May 2023 11:25:05 +0200 Subject: [PATCH] allow NONE for item 7 in GCONPROD --- .../input/eclipse/Schedule/Group/Group.cpp | 1 + .../eclipse/Schedule/KeywordHandlers.cpp | 27 +++++++++++-------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/opm/input/eclipse/Schedule/Group/Group.cpp b/src/opm/input/eclipse/Schedule/Group/Group.cpp index 86baa6e14..a1a84d45c 100644 --- a/src/opm/input/eclipse/Schedule/Group/Group.cpp +++ b/src/opm/input/eclipse/Schedule/Group/Group.cpp @@ -130,6 +130,7 @@ namespace { production.exceed_action = Opm::Group::ExceedActionFromInt(rst_group.exceed_action); production.guide_rate_def = Opm::Group::GuideRateProdTargetFromInt(rst_group.prod_guide_rate_def); + //TODO allow also for ExceedAction::NONE (item 7 of GCONPROD) if ((production.cmode == Opm::Group::ProductionCMode::ORAT) || (production.cmode == Opm::Group::ProductionCMode::WRAT) || (production.cmode == Opm::Group::ProductionCMode::GRAT) || diff --git a/src/opm/input/eclipse/Schedule/KeywordHandlers.cpp b/src/opm/input/eclipse/Schedule/KeywordHandlers.cpp index 678020436..b263f812e 100644 --- a/src/opm/input/eclipse/Schedule/KeywordHandlers.cpp +++ b/src/opm/input/eclipse/Schedule/KeywordHandlers.cpp @@ -564,27 +564,32 @@ File {} line {}.)", wname, location.keyword, location.filename, location.lineno) production.resv_target = resv_target; production.available_group_control = availableForGroupControl; - if ((production.cmode == Group::ProductionCMode::ORAT) || - (production.cmode == Group::ProductionCMode::WRAT) || - (production.cmode == Group::ProductionCMode::GRAT) || - (production.cmode == Group::ProductionCMode::LRAT)) - production.exceed_action = Group::ExceedAction::RATE; - else - production.exceed_action = exceedAction; + // if ((production.cmode == Group::ProductionCMode::ORAT) || + // (production.cmode == Group::ProductionCMode::WRAT) || + // (production.cmode == Group::ProductionCMode::GRAT) || + // (production.cmode == Group::ProductionCMode::LRAT)) + // production.exceed_action = Group::ExceedAction::RATE; + // else + // production.exceed_action = exceedAction; + production.exceed_action = exceedAction; production.production_controls = 0; if (!apply_default_oil_target) - production.production_controls += static_cast(Group::ProductionCMode::ORAT); + if (exceedAction == Group::ExceedAction::RATE) + production.production_controls += static_cast(Group::ProductionCMode::ORAT); if (!apply_default_gas_target) - production.production_controls += static_cast(Group::ProductionCMode::GRAT); + if (exceedAction == Group::ExceedAction::RATE) + production.production_controls += static_cast(Group::ProductionCMode::GRAT); if (!apply_default_water_target) - production.production_controls += static_cast(Group::ProductionCMode::WRAT); + if (exceedAction == Group::ExceedAction::RATE) + production.production_controls += static_cast(Group::ProductionCMode::WRAT); if (!apply_default_liquid_target) - production.production_controls += static_cast(Group::ProductionCMode::LRAT); + if (exceedAction == Group::ExceedAction::RATE) + production.production_controls += static_cast(Group::ProductionCMode::LRAT); if (!apply_default_resv_target) production.production_controls += static_cast(Group::ProductionCMode::RESV);