Updates to well control mode reported in IWEL

With this commit the IWEL[ActWCtrl] is assigned a value independently of the
wells OPEN / SHUT status.

With this PR the index enum value Status is used instead of the previously used
item11. Also numerical constants are introduced for eclipse status values for
Shut, Stop, Open and Auto.
This commit is contained in:
Joakim Hove
2020-10-07 17:39:31 +02:00
parent 23faea7b81
commit a33fd2483f
8 changed files with 92 additions and 212 deletions

View File

@@ -808,18 +808,20 @@ BOOST_AUTO_TEST_CASE (Dynamic_Well_Data_Step1)
// IWEL (OP_1)
{
using Ix = ::Opm::RestartIO::Helpers::VectorItems::IWell::index;
using Value = ::Opm::RestartIO::Helpers::VectorItems::IWell::Value::Status;
const auto i0 = 0*ih.niwelz;
const auto& iwell = awd.getIWell();
BOOST_CHECK_EQUAL(iwell[i0 + Ix::item9 ], iwell[i0 + Ix::ActWCtrl]);
BOOST_CHECK_EQUAL(iwell[i0 + Ix::item11], 1);
BOOST_CHECK_EQUAL(iwell[i0 + Ix::Status], Value::Open);
}
// IWEL (OP_2)
{
using Ix = ::Opm::RestartIO::Helpers::VectorItems::IWell::index;
using Value = ::Opm::RestartIO::Helpers::VectorItems::IWell::Value::Status;
const auto i1 = 1*ih.niwelz;
@@ -831,7 +833,7 @@ BOOST_AUTO_TEST_CASE (Dynamic_Well_Data_Step1)
// 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); // No flowing conns.
BOOST_CHECK_EQUAL(iwell[i1 + Ix::Status], -1); // No flowing conns.
}
// XWEL (OP_1)
@@ -957,12 +959,13 @@ BOOST_AUTO_TEST_CASE (Dynamic_Well_Data_Step2)
BOOST_CHECK_EQUAL(iwell[i0 + Ix::item9] , 0);
BOOST_CHECK_EQUAL(iwell[i0 + Ix::item11], 0);
BOOST_CHECK_EQUAL(iwell[i0 + Ix::Status], 0);
}
// IWEL (OP_2) -- water injector
{
using Ix = ::Opm::RestartIO::Helpers::VectorItems::IWell::index;
using Value = ::Opm::RestartIO::Helpers::VectorItems::IWell::Value::Status;
const auto i1 = 1*ih.niwelz;
@@ -970,7 +973,7 @@ BOOST_AUTO_TEST_CASE (Dynamic_Well_Data_Step2)
BOOST_CHECK_EQUAL(iwell[i1 + Ix::item9],
iwell[i1 + Ix::ActWCtrl]);
BOOST_CHECK_EQUAL(iwell[i1 + Ix::item11], 1);
BOOST_CHECK_EQUAL(iwell[i1 + Ix::Status], Value::Open);
}
// XWEL (OP_1) -- closed producer