Change handleCOMPDAT implementation

This commit is contained in:
Joakim Hove
2018-06-25 13:50:58 +02:00
parent 93f7f50eb7
commit 363b8589e6
8 changed files with 110 additions and 181 deletions

View File

@@ -605,16 +605,6 @@ static Deck createDeckWithWellsAndConnectionDataWithWELOPEN() {
" 'OP_2' 8 7 3 6 'OPEN' 1* 6.242 0.311 576.458 1* 1* 'Y' 21.915 / \n"
" 'OP_3' 7 7 1 1 'OPEN' 1* 27.412 0.311 2445.337 1* 1* 'Y' 18.521 / \n"
" 'OP_3' 7 7 2 2 'OPEN' 1* 55.195 0.311 4923.842 1* 1* 'Y' 18.524 / \n"
/*
* Completions for OP_2:
* 1 - 8 8 1
* 2 - 8 8 2
* 3 - 8 8 3
* 4 - 8 7 3
* 5 - 8 7 4
* 6 - 8 7 5
* 7 - 8 7 6
*/
"/\n"
"DATES -- 2,3\n"
" 10 JUL 2007 / \n"
@@ -664,9 +654,9 @@ BOOST_AUTO_TEST_CASE(CreateScheduleDeckWellsAndConnectionDataWithWELOPEN) {
constexpr auto open = WellCompletion::StateEnum::OPEN;
BOOST_CHECK_EQUAL( 7U, cs.size() );
BOOST_CHECK_EQUAL(shut, cs.getFromIJK( 7, 6, 2 ).getState());
BOOST_CHECK_EQUAL(shut, cs.getFromIJK( 7, 6, 3 ).getState());
BOOST_CHECK_EQUAL(shut, cs.getFromIJK( 7, 6, 4 ).getState());
BOOST_CHECK_EQUAL(open, cs.getFromIJK( 7, 6, 2 ).getState());
BOOST_CHECK_EQUAL(open, cs.getFromIJK( 7, 6, 3 ).getState());
BOOST_CHECK_EQUAL(open, cs.getFromIJK( 7, 6, 4 ).getState());
BOOST_CHECK_EQUAL(open, cs.getFromIJK( 7, 7, 2 ).getState());
const auto& cs2 = well->getConnections( 4 );
@@ -1683,16 +1673,16 @@ BOOST_AUTO_TEST_CASE( COMPDAT_sets_automatic_complnum ) {
Schedule schedule( deck, grid, eclipseProperties, Phases( true, true, true ) ,ctx);
const auto& cs1 = schedule.getWell( "W1" )->getConnections( 1 );
BOOST_CHECK_EQUAL( 1, cs1.get( 0 ).complnum() );
BOOST_CHECK_EQUAL( 2, cs1.get( 1 ).complnum() );
BOOST_CHECK_EQUAL( 3, cs1.get( 2 ).complnum() );
BOOST_CHECK_EQUAL( 4, cs1.get( 3 ).complnum() );
BOOST_CHECK_EQUAL( -1, cs1.get( 0 ).complnum() );
BOOST_CHECK_EQUAL( -2, cs1.get( 1 ).complnum() );
BOOST_CHECK_EQUAL( -3, cs1.get( 2 ).complnum() );
BOOST_CHECK_EQUAL( -4, cs1.get( 3 ).complnum() );
const auto& cs2 = schedule.getWell( "W1" )->getConnections( 2 );
BOOST_CHECK_EQUAL( 1, cs2.get( 0 ).complnum() );
BOOST_CHECK_EQUAL( 2, cs2.get( 1 ).complnum() );
BOOST_CHECK_EQUAL( 3, cs2.get( 2 ).complnum() );
BOOST_CHECK_EQUAL( 4, cs2.get( 3 ).complnum() );
BOOST_CHECK_EQUAL( -1, cs2.get( 0 ).complnum() );
BOOST_CHECK_EQUAL( -2, cs2.get( 1 ).complnum() );
BOOST_CHECK_EQUAL( -3, cs2.get( 2 ).complnum() );
BOOST_CHECK_EQUAL( -4, cs2.get( 3 ).complnum() );
}
BOOST_AUTO_TEST_CASE( COMPDAT_multiple_wells ) {
@@ -1727,18 +1717,18 @@ BOOST_AUTO_TEST_CASE( COMPDAT_multiple_wells ) {
Schedule schedule( deck, grid, eclipseProperties, Phases( true, true, true ) ,ctx);
const auto& w1cs = schedule.getWell( "W1" )->getConnections();
BOOST_CHECK_EQUAL( 1, w1cs.get( 0 ).complnum() );
BOOST_CHECK_EQUAL( 2, w1cs.get( 1 ).complnum() );
BOOST_CHECK_EQUAL( 3, w1cs.get( 2 ).complnum() );
BOOST_CHECK_EQUAL( 4, w1cs.get( 3 ).complnum() );
BOOST_CHECK_EQUAL( 5, w1cs.get( 4 ).complnum() );
BOOST_CHECK_EQUAL( -1, w1cs.get( 0 ).complnum() );
BOOST_CHECK_EQUAL( -2, w1cs.get( 1 ).complnum() );
BOOST_CHECK_EQUAL( -3, w1cs.get( 2 ).complnum() );
BOOST_CHECK_EQUAL( -4, w1cs.get( 3 ).complnum() );
BOOST_CHECK_EQUAL( -5, w1cs.get( 4 ).complnum() );
const auto& w2cs = schedule.getWell( "W2" )->getConnections();
BOOST_CHECK_EQUAL( 1, w2cs.getFromIJK( 4, 4, 2 ).complnum() );
BOOST_CHECK_EQUAL( 2, w2cs.getFromIJK( 4, 4, 0 ).complnum() );
BOOST_CHECK_EQUAL( 3, w2cs.getFromIJK( 4, 4, 1 ).complnum() );
BOOST_CHECK_EQUAL( 4, w2cs.getFromIJK( 4, 4, 3 ).complnum() );
BOOST_CHECK_EQUAL( 5, w2cs.getFromIJK( 4, 4, 4 ).complnum() );
BOOST_CHECK_EQUAL( -1, w2cs.getFromIJK( 4, 4, 2 ).complnum() );
BOOST_CHECK_EQUAL( -2, w2cs.getFromIJK( 4, 4, 0 ).complnum() );
BOOST_CHECK_EQUAL( -3, w2cs.getFromIJK( 4, 4, 1 ).complnum() );
BOOST_CHECK_EQUAL( -4, w2cs.getFromIJK( 4, 4, 3 ).complnum() );
BOOST_CHECK_EQUAL( -5, w2cs.getFromIJK( 4, 4, 4 ).complnum() );
BOOST_CHECK_THROW( w2cs.get( 5 ).complnum(), std::out_of_range );
}
@@ -1772,9 +1762,9 @@ BOOST_AUTO_TEST_CASE( COMPDAT_multiple_records_same_completion ) {
const auto& cs = schedule.getWell( "W1" )->getConnections();
BOOST_CHECK_EQUAL( 3U, cs.size() );
BOOST_CHECK_EQUAL( 1, cs.get( 0 ).complnum() );
BOOST_CHECK_EQUAL( 2, cs.get( 1 ).complnum() );
BOOST_CHECK_EQUAL( 3, cs.get( 2 ).complnum() );
BOOST_CHECK_EQUAL( -1, cs.get( 0 ).complnum() );
BOOST_CHECK_EQUAL( -2, cs.get( 1 ).complnum() );
BOOST_CHECK_EQUAL( -3, cs.get( 2 ).complnum() );
}
BOOST_AUTO_TEST_CASE( complump_less_than_1 ) {