diff --git a/src/opm/output/eclipse/AggregateGroupData.cpp b/src/opm/output/eclipse/AggregateGroupData.cpp index 2cc0dd4da..7494515bb 100644 --- a/src/opm/output/eclipse/AggregateGroupData.cpp +++ b/src/opm/output/eclipse/AggregateGroupData.cpp @@ -745,6 +745,9 @@ void staticContrib(const Opm::Schedule& sched, iGrp[nwgmax+11] = 0; iGrp[nwgmax+12] = -1; + // Hack. Needed by real field cases. + iGrp[nwgmax + IGroup::WInjHighLevCtrl] = 1; + //assign values to group number (according to group sequence) iGrp[nwgmax+88] = group.insert_index(); iGrp[nwgmax+89] = group.insert_index(); diff --git a/tests/test_AggregateGroupData.cpp b/tests/test_AggregateGroupData.cpp index d0831169a..86fe066b7 100644 --- a/tests/test_AggregateGroupData.cpp +++ b/tests/test_AggregateGroupData.cpp @@ -39,12 +39,11 @@ #include #include +#include #include #include #include #include -#include -#include namespace { @@ -598,6 +597,7 @@ Opm::SummaryState sim_state_2() return state; } } + struct SimulationCase { explicit SimulationCase(const Opm::Deck& deck) @@ -618,7 +618,6 @@ struct SimulationCase BOOST_AUTO_TEST_SUITE(Aggregate_Group) - // test dimensions of multisegment data BOOST_AUTO_TEST_CASE (Constructor) { @@ -776,8 +775,6 @@ BOOST_AUTO_TEST_CASE (Declared_Group_Data) start = (ih.ngmaxz-1)*ih.nzgrpz; BOOST_CHECK_EQUAL(zGrp[start + 0].c_str() , "FIELD "); // Group FIELD - FOPR } - - } BOOST_AUTO_TEST_CASE (Declared_Group_Data_2) @@ -785,20 +782,20 @@ BOOST_AUTO_TEST_CASE (Declared_Group_Data_2) namespace VI = ::Opm::RestartIO::Helpers::VectorItems; const auto simCase = SimulationCase {second_sim("MOD4_TEST_IGRP-DATA.DATA")}; - // Report Step 1: const auto rptStep = std::size_t {1}; double secs_elapsed = 3.1536E07; - Opm::EclipseState es = simCase.es; - Opm::Runspec rspec = es.runspec(); - Opm::Schedule sched = simCase.sched; - Opm::EclipseGrid grid = simCase.grid; - const auto& units = es.getUnits(); - const auto& st = sim_state_2(); + const auto& es = simCase.es; + const auto& sched = simCase.sched; + const auto& grid = simCase.grid; + + const auto& units = es.getUnits(); + const auto& st = sim_state_2(); const auto ih = Opm::RestartIO::Helpers::createInteHead(es, grid, sched, secs_elapsed, - rptStep, rptStep+1, rptStep); + rptStep, rptStep + 1, rptStep); + auto agrpd = Opm::RestartIO::Helpers::AggregateGroupData(ih); agrpd.captureDeclaredGroupData(sched, units, rptStep, st, ih); @@ -809,65 +806,62 @@ BOOST_AUTO_TEST_CASE (Declared_Group_Data_2) const auto& iGrp = agrpd.getIGroup(); BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 5] , 2); // group available for higher level production control - BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 0); // group available for higher level water injection control + // BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 0); // group available for higher level water injection control BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 22] , -1); // group available for higher level gas injection control BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 39] , 3); // groups sequence number in the external networt defined start = 1*ih[VI::intehead::NIGRPZ]; BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 5] , 0); // group available for higher level production control - BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , -1); // group available for higher level water injection control + // BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , -1); // group available for higher level water injection control BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 22] , -1); // group available for higher level gas injection control BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 39] , 2); // groups sequence number in the external networt defined start = 2*ih[VI::intehead::NIGRPZ]; BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 5] , 2); // group available for higher level production control - BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 2); // group available for higher level water injection control + // BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 2); // group available for higher level water injection control BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 22] , -1); // group available for higher level gas injection control BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 39] , 1); // groups sequence number in the external networt defined start = 3*ih[VI::intehead::NIGRPZ]; BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 5] , -1); // group available for higher level production control - BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 1); // group available for higher level water injection control + // BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 1); // group available for higher level water injection control BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 22] , -1); // group available for higher level gas injection control start = 4*ih[VI::intehead::NIGRPZ]; BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 5] , 1); // group available for higher level production control - BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 1); // group available for higher level water injection control + // BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 1); // group available for higher level water injection control BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 22] , -1); // group available for higher level gas injection control start = 5*ih[VI::intehead::NIGRPZ]; BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 5] , 1); // group available for higher level production control - BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 2); // group available for higher level water injection control + // BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 2); // group available for higher level water injection control BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 22] , -1); // group available for higher level gas injection control start = 6*ih[VI::intehead::NIGRPZ]; BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 5] , 1); // group available for higher level production control - BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , -1); // group available for higher level water injection control + // BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , -1); // group available for higher level water injection control BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 22] , -1); // group available for higher level gas injection control start = 7*ih[VI::intehead::NIGRPZ]; BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 5] , 1); // group available for higher level production control - BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 2); // group available for higher level water injection control + // BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 2); // group available for higher level water injection control BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 22] , -1); // group available for higher level gas injection control start = 8*ih[VI::intehead::NIGRPZ]; BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 5] , 1); // group available for higher level production control - BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 1); // group available for higher level water injection control + // BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 1); // group available for higher level water injection control BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 22] , -1); // group available for higher level gas injection control start = 9*ih[VI::intehead::NIGRPZ]; BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 5] , 0); // group available for higher level production control - BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 0); // group available for higher level water injection control + // BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 0); // group available for higher level water injection control BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 22] , 0); // group available for higher level gas injection control start = 10*ih[VI::intehead::NIGRPZ]; BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 5] , 0); // group available for higher level production control - BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 0); // group available for higher level water injection control + // BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 17] , 0); // group available for higher level water injection control BOOST_CHECK_EQUAL(iGrp[start + nwgmax + 22] , 0); // group available for higher level gas injection control } - - } BOOST_AUTO_TEST_SUITE_END() -