diff --git a/src/opm/input/eclipse/Deck/DeckItem.cpp b/src/opm/input/eclipse/Deck/DeckItem.cpp index 9f4af6c1e..5180f4efe 100644 --- a/src/opm/input/eclipse/Deck/DeckItem.cpp +++ b/src/opm/input/eclipse/Deck/DeckItem.cpp @@ -503,6 +503,9 @@ bool DeckItem::to_bool(std::string string_value) { if (string_value == "1") return true; + if (string_value == "FLO") + return true; + if (string_value == "FALSE") return false; diff --git a/src/opm/input/eclipse/Schedule/KeywordHandlers.cpp b/src/opm/input/eclipse/Schedule/KeywordHandlers.cpp index b0b0773f9..66dcd9f2f 100644 --- a/src/opm/input/eclipse/Schedule/KeywordHandlers.cpp +++ b/src/opm/input/eclipse/Schedule/KeywordHandlers.cpp @@ -786,7 +786,6 @@ File {} line {}.)", wname, location.keyword, location.filename, location.lineno) } void Schedule::handleGRUPNET(HandlerContext& handlerContext) { -<<<<<<< HEAD auto network = this->snapshots.back().network.get(); std::vector nodes; for (const auto& record : handlerContext.keyword) { @@ -850,6 +849,8 @@ File {} line {}.)", wname, location.keyword, location.filename, location.lineno) } ======= +======= +>>>>>>> dfdfbda56 (add gas-lift to standard network) auto network = this->snapshots.back().network.get(); std::vector nodes; for (const auto& record : handlerContext.keyword) { @@ -859,6 +860,11 @@ File {} line {}.)", wname, location.keyword, location.filename, location.lineno) this->invalidNamePattern(groupNamePattern, handlerContext); const auto& pressure_item = record.getItem(); const int vfp_table = record.getItem().get(0); + // It is assumed here that item 6 (ADD_GAS_LIFT_GAS) has the two options ON and FLO. THe option ALQ is not supported. + // For standard network the summation of ALQ values are weighted with efficiency factors. For extended networks + // this calculation using efficiency factors is the default set by WEFAC item 3 (YES), the value NO is not supported. + // Therefore in opm-simulators (opm/simulators/wells/WellGroupHelpers.cpp) no changes are needed. + const bool add_gas_lift_gas = DeckItem::to_bool(record.getItem().get(0)); for (const auto& group_name : group_names) { auto& group = this->snapshots.back().groups.get(group_name); @@ -883,6 +889,7 @@ File {} line {}.)", wname, location.keyword, location.filename, location.lineno) Network::Node node { group_name }; if (pressure_item.hasValue(0) && (pressure_item.get(0) > 0)) node.terminal_pressure(pressure_item.getSIDouble(0)); + node.add_gas_lift_gas(add_gas_lift_gas); nodes.push_back(node); } } diff --git a/src/opm/input/eclipse/share/keywords/000_Eclipse100/G/GRUPNET b/src/opm/input/eclipse/share/keywords/000_Eclipse100/G/GRUPNET index 32ca01c02..212748785 100644 --- a/src/opm/input/eclipse/share/keywords/000_Eclipse100/G/GRUPNET +++ b/src/opm/input/eclipse/share/keywords/000_Eclipse100/G/GRUPNET @@ -6,35 +6,42 @@ ], "items": [ { + "item": 1, "name": "NAME", "value_type": "STRING" }, { + "item": 2, "name": "TERMINAL_PRESSURE", "value_type": "DOUBLE", "dimension": "Pressure" }, { + "item": 3, "name": "VFP_TABLE", "value_type": "INT", "default": 0 }, { + "item": 4, "name": "ALQ", "value_type": "DOUBLE", "default": 0 }, { + "item": 5, "name": "SUB_SEA_MANIFOLD", "value_type": "STRING", "default": "NO" }, { - "name": "LIFT_GAS_FLOW_THROUGH", + "item": 6, + "name": "ADD_GAS_LIFT_GAS", "value_type": "STRING", "default": "NO" }, { + "item": 7, "name": "ALQ_SURFACE_DENSITY", "value_type": "STRING", "default": "NONE"