diff --git a/src/opm/output/eclipse/Summary.cpp b/src/opm/output/eclipse/Summary.cpp index caedce125..01b60c3f7 100644 --- a/src/opm/output/eclipse/Summary.cpp +++ b/src/opm/output/eclipse/Summary.cpp @@ -643,6 +643,8 @@ static const std::unordered_map< std::string, ofun > funs = { { "WGPRF", sub( rate< rt::gas, producer >, rate< rt::dissolved_gas, producer > ) }, { "WOPRS", rate< rt::vaporized_oil, producer > }, { "WOPRF", sub (rate < rt::oil, producer >, rate< rt::vaporized_oil, producer > ) }, + { "WVPR", sum( sum( rate< rt::reservoir_water, producer >, rate< rt::reservoir_oil, producer > ), + rate< rt::reservoir_gas, producer > ) }, { "WLPR", sum( rate< rt::wat, producer >, rate< rt::oil, producer > ) }, { "WWPT", mul( rate< rt::wat, producer >, duration ) }, @@ -658,6 +660,8 @@ static const std::unordered_map< std::string, ofun > funs = { { "WOPTS", mul( rate< rt::vaporized_oil, producer >, duration )}, { "WOPTF", sub( mul( rate< rt::oil, producer >, duration ), mul( rate< rt::vaporized_oil, producer >, duration ))}, + { "WVPT", mul( sum( sum( rate< rt::reservoir_water, producer >, rate< rt::reservoir_oil, producer > ), + rate< rt::reservoir_gas, producer > ), duration ) }, { "WWCT", div( rate< rt::wat, producer >, sum( rate< rt::wat, producer >, rate< rt::oil, producer > ) ) }, diff --git a/tests/test_Summary.cpp b/tests/test_Summary.cpp index 0972b2cf0..6083c803f 100644 --- a/tests/test_Summary.cpp +++ b/tests/test_Summary.cpp @@ -303,6 +303,10 @@ BOOST_AUTO_TEST_CASE(well_keywords) { BOOST_CHECK_CLOSE( 20.4, ecl_sum_get_well_var( resp, 1, "W_2", "WGPRS" ), 1e-5 ); BOOST_CHECK_CLOSE( 10.2 - 10.4, ecl_sum_get_well_var( resp, 1, "W_1", "WGPRF" ), 1e-5 ); BOOST_CHECK_CLOSE( 20.2 - 20.4, ecl_sum_get_well_var( resp, 1, "W_2", "WGPRF" ), 1e-5 ); + BOOST_CHECK_CLOSE( 10.6 + 10.7 + 10.8, + ecl_sum_get_well_var( resp, 1, "W_1", "WVPR" ), 1e-5 ); + BOOST_CHECK_CLOSE( 20.6 + 20.7 + 20.8, + ecl_sum_get_well_var( resp, 1, "W_2", "WVPR" ), 1e-5 ); BOOST_CHECK_CLOSE( 10.5, ecl_sum_get_well_var( resp, 1, "W_1", "WOPRS" ), 1e-5 ); BOOST_CHECK_CLOSE( 20.5, ecl_sum_get_well_var( resp, 1, "W_2", "WOPRS" ), 1e-5 ); @@ -324,6 +328,10 @@ BOOST_AUTO_TEST_CASE(well_keywords) { BOOST_CHECK_CLOSE( 20.5, ecl_sum_get_well_var( resp, 1, "W_2", "WOPTS" ), 1e-5 ); BOOST_CHECK_CLOSE( (10.1 - 10.5), ecl_sum_get_well_var( resp, 1, "W_1", "WOPTF" ), 1e-5 ); BOOST_CHECK_CLOSE( (20.1 - 20.5), ecl_sum_get_well_var( resp, 1, "W_2", "WOPTF" ), 1e-5 ); + BOOST_CHECK_CLOSE( 10.6 + 10.7 + 10.8, + ecl_sum_get_well_var( resp, 1, "W_1", "WVPT" ), 1e-5 ); + BOOST_CHECK_CLOSE( 20.6 + 20.7 + 20.8, + ecl_sum_get_well_var( resp, 1, "W_2", "WVPT" ), 1e-5 ); BOOST_CHECK_CLOSE( 2 * 10.0, ecl_sum_get_well_var( resp, 2, "W_1", "WWPT" ), 1e-5 ); BOOST_CHECK_CLOSE( 2 * 20.0, ecl_sum_get_well_var( resp, 2, "W_2", "WWPT" ), 1e-5 ); @@ -345,6 +353,10 @@ BOOST_AUTO_TEST_CASE(well_keywords) { BOOST_CHECK_CLOSE( 2 * 20.5, ecl_sum_get_well_var( resp, 2, "W_2", "WOPTS" ), 1e-5 ); BOOST_CHECK_CLOSE( 2 * ( 10.1 - 10.5 ), ecl_sum_get_well_var( resp, 2, "W_1", "WOPTF" ), 1e-5 ); BOOST_CHECK_CLOSE( 2 * ( 20.1 - 20.5 ), ecl_sum_get_well_var( resp, 2, "W_2", "WOPTF" ), 1e-5 ); + BOOST_CHECK_CLOSE( 2 * (10.6 + 10.7 + 10.8), + ecl_sum_get_well_var( resp, 2, "W_1", "WVPT" ), 1e-5 ); + BOOST_CHECK_CLOSE( 2 * (20.6 + 20.7 + 20.8), + ecl_sum_get_well_var( resp, 2, "W_2", "WVPT" ), 1e-5 ); /* Production rates (history) */ BOOST_CHECK_CLOSE( 10, ecl_sum_get_well_var( resp, 1, "W_1", "WWPRH" ), 1e-5 );