msim: Add temporary well to msim testcase - and verify SHUT status

This commit is contained in:
Joakim Hove 2020-03-30 13:39:42 +02:00
parent f115ed43f5
commit 07e6be97e9
3 changed files with 32 additions and 5 deletions

View File

@ -385,7 +385,8 @@ DRSDT
WELSPECS
-- Item #: 1 2 3 4 5 6
'PROD' 'G1' 10 10 8400 'OIL' /
'INJ' 'G1' 1 1 8335 'GAS' /
'INJ' 'G1' 1 1 8335 'GAS' /
'RFT' 'G1' 10 10 8400 'OIL' /
/
-- Coordinates in item 3-4 are retrieved from Odeh's figure 1 and 2
-- Note that the depth at the midpoint of the well grid blocks
@ -394,6 +395,7 @@ WELSPECS
COMPDAT
-- Item #: 1 2 3 4 5 6 7 8 9
'PROD' 10 10 3 3 'OPEN' 1* 1* 0.5 /
'RFT' 10 10 3 3 'OPEN' 1* 1* 0.5 /
'INJ' 1 1 1 1 'OPEN' 1* 1* 0.5 /
/
-- Coordinates in item 2-5 are retreived from Odeh's figure 1 and 2
@ -420,8 +422,25 @@ WCONINJE
TSTEP
--Advance the simulater once a month for TEN years:
31 28 31 30 31 30 31 31 30 31 30 31
31 28 31 30 31 30 31 31 30 31 30 31
31 28 31 30 31 30 31 31 30 31 30 31 /
WELOPEN
'RFT' OPEN /
/
WCONHIST
'RFT' 'OPEN' 'RESV' 0 /
/
TSTEP
31 /
WELOPEN
'RFT' 'SHUT' /
/
TSTEP
28 31 30 31 30 31 31 30 31 30 31
31 28 31 30 31 30 31 31 30 31 30 31
31 28 31 30 31 30 31 31 30 31 30 31
31 28 31 30 31 30 31 31 30 31 30 31

View File

@ -78,6 +78,7 @@ BOOST_AUTO_TEST_CASE(RUN) {
msim msim(state);
msim.well_rate("PROD", data::Rates::opt::oil, prod_opr);
msim.well_rate("RFT", data::Rates::opt::oil, prod_opr);
msim.solution("PRESSURE", pressure);
{
const WorkArea work_area("test_msim");
@ -109,6 +110,12 @@ BOOST_AUTO_TEST_CASE(RUN) {
// DOUBHEAD[0] is elapsed time in days since start of simulation.
BOOST_CHECK_CLOSE( press[0], dh[0] * 86400, 1e-3 );
}
const int report_step = 50;
const auto& rst_state = Opm::RestartIO::RstState::load(rst, report_step);
Schedule sched_rst(deck, state, python, &rst_state);
const auto& rft_well = sched_rst.getWell("RFT", report_step);
BOOST_CHECK(rft_well.getStatus() == Well::Status::SHUT);
}
}
}

View File

@ -317,8 +317,9 @@ BOOST_AUTO_TEST_CASE(UDQ_WUWCT) {
std::string wuwct_key = std::string("WUWCT:") + well;
std::string wopr_key = std::string("WOPR:") + well;
BOOST_CHECK_EQUAL( ecl_sum_get_general_var(ecl_sum, step, wwct_key.c_str()),
ecl_sum_get_general_var(ecl_sum, step, wuwct_key.c_str()));
if (ecl_sum_get_general_var(ecl_sum, step, wwct_key.c_str()) != 0)
BOOST_CHECK_EQUAL( ecl_sum_get_general_var(ecl_sum, step, wwct_key.c_str()),
ecl_sum_get_general_var(ecl_sum, step, wuwct_key.c_str()));
wopr_sum += ecl_sum_get_general_var(ecl_sum, step , wopr_key.c_str());
}