add gas-lift to standard network

This commit is contained in:
Paul
2023-08-03 10:20:46 +02:00
parent d1eed2cd4d
commit f04bbefaee
3 changed files with 19 additions and 2 deletions

View File

@@ -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;

View File

@@ -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<Network::Node> 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<Network::Node> 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<ParserKeywords::GRUPNET::TERMINAL_PRESSURE>();
const int vfp_table = record.getItem<ParserKeywords::GRUPNET::VFP_TABLE>().get<int>(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<ParserKeywords::GRUPNET::ADD_GAS_LIFT_GAS>().get<std::string>(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<double>(0) > 0))
node.terminal_pressure(pressure_item.getSIDouble(0));
node.add_gas_lift_gas(add_gas_lift_gas);
nodes.push_back(node);
}
}

View File

@@ -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"