Allow negative rates when evaluating UDA values

corrections to iwel[10] open/shut flag

further corrections SWEL for handling udq-restarts correctly

further changes to get correct SWEL in ECL-Restart file

added comment to clarify change

correction to group sequence and group controls for EclRST-file

changes to correct IGRP[NWGMAX+5]

corrected compile errors/warnings

further minor code corrections

initial changes to include group current Prod/inj Constraint in summary file

further changes to currentsStatusGroupControl to Summary output

further corrections and additions of Field current controls

further corrections for IGRP

minor corrections to code style

corrections for tests

changes to correct test_AggregateWellData

a few more initial changes for next version of igrp/sgrp

changes to igrp & sgrp according to tests

changes to handle special conditions at report step 0

corrections due to changes in Summary.cpp

changes to improve code quality and robustness

Add default value to igrp[nwgmax+5]

corrections and code improvements base on testing

corrections to handling of GCONINJE

further corrections for IGRP

even further corrections IGRP

changes to correct SGRP

correction to IGRP defaults

corrections to SWEL and IGRP

further corrections for IGRP

removed some comments
This commit is contained in:
Joakim Hove
2020-01-11 07:25:43 +01:00
committed by Jostein Alvestad
parent 88414fd1fc
commit 985cb279ff
14 changed files with 1000 additions and 94 deletions

View File

@@ -149,6 +149,10 @@ WELSPECS
COMPDAT
'OP_3' 9 9 1 1 'OPEN' 1* 32.948 0.311 3047.839 1* 1* 'X' 22.100 /
/
WELOPEN
'OP_1' 'STOP' /
/
WCONPROD
'OP_3' 'OPEN' 'ORAT' 20000 4* 1000 /
/
@@ -329,13 +333,22 @@ TSTEP -- 8
c.rates.set(o::wat, 1.0)
.set(o::oil, 2.0)
.set(o::gas, 3.0);
auto& curr = xw["OP_1"].current_control;
curr.isProducer = true;
curr.prod = ::Opm::Well::ProducerCMode::GRAT;
}
{
xw["OP_2"].bhp = 234.0;
xw["OP_2"].rates.set(o::gas, 5.0);
xw["OP_2"].connections.emplace_back();
//xw["OP_2"].connections.emplace_back();
//auto& c = xw["OP_2"].connections.back();
//c.rates.set(o::gas, 4.0);
auto& curr = xw["OP_2"].current_control;
curr.isProducer = false;
curr.inj = ::Opm::Well::InjectorCMode::RATE;
}
return xw;
@@ -349,6 +362,17 @@ TSTEP -- 8
{
xw["OP_1"].bhp = 150.0; // Closed
xw["OP_1"].connections.emplace_back();
auto& c = xw["OP_1"].connections.back();
c.rates.set(o::wat, 1.0)
.set(o::oil, 2.0)
.set(o::gas, 3.0);
auto& curr = xw["OP_1"].current_control;
curr.isProducer = true;
curr.prod = ::Opm::Well::ProducerCMode::NONE;
}
{
@@ -587,8 +611,13 @@ BOOST_AUTO_TEST_CASE (Dynamic_Well_Data_Step1)
const auto& iwell = awd.getIWell();
//
// These checks do not work because flow gives a well's status SHUT
// when all the connections are shut (no flowing connections)
// This needs to be corrected in flow
BOOST_CHECK_EQUAL(iwell[i1 + Ix::item9 ], -1); // No flowing conns.
BOOST_CHECK_EQUAL(iwell[i1 + Ix::item11], 1); // Well open/shut flag
BOOST_CHECK_EQUAL(iwell[i1 + Ix::item11], -1); // No flowing conns.
}
// XWEL (OP_1)
@@ -711,8 +740,10 @@ BOOST_AUTO_TEST_CASE (Dynamic_Well_Data_Step2)
const auto& iwell = awd.getIWell();
BOOST_CHECK_EQUAL(iwell[i0 + Ix::item9] , -1000);
BOOST_CHECK_EQUAL(iwell[i0 + Ix::item11], -1000);
BOOST_CHECK_EQUAL(iwell[i0 + Ix::item9] , 0);
BOOST_CHECK_EQUAL(iwell[i0 + Ix::item11], 0);
}
// IWEL (OP_2) -- water injector