From d27b3db9fd4eae6e83f0cba23f7e6b47ade31c95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Kvalsvik?= Date: Mon, 23 May 2016 09:14:13 +0200 Subject: [PATCH] Injection rate tests --- src/opm/output/eclipse/Summary.cpp | 2 - tests/test_Summary.cpp | 62 ++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 2 deletions(-) diff --git a/src/opm/output/eclipse/Summary.cpp b/src/opm/output/eclipse/Summary.cpp index 0a8f20e6d..b7b2c8595 100644 --- a/src/opm/output/eclipse/Summary.cpp +++ b/src/opm/output/eclipse/Summary.cpp @@ -424,8 +424,6 @@ inline double well_keywords( E keyword, case E::WTHPH: return 0; /* not supported */ /* Injection rates */ - /* TODO: read from sim or compute (how?) */ - /* TODO: Tests */ case E::WWIR: return rate( rt::wat ); case E::WOIR: return rate( rt::oil ); case E::WGIR: return rate( rt::gas ); diff --git a/tests/test_Summary.cpp b/tests/test_Summary.cpp index 1b8004c60..fd5497df5 100644 --- a/tests/test_Summary.cpp +++ b/tests/test_Summary.cpp @@ -177,6 +177,35 @@ BOOST_AUTO_TEST_CASE(W_WOG_PT) { BOOST_CHECK_CLOSE( -2 * 30.2 / day, ecl_sum_get_well_var( resp, 1, "W_3", "WGPT" ), 1e-5 ); } +BOOST_AUTO_TEST_CASE(W_WG_IR) { + setup cfg( "sum_test_W_WG_IR" ); + + out::Summary writer( cfg.es, cfg.config, cfg.name ); + writer.add_timestep( 1, 1, cfg.es, cfg.wells ); + writer.write(); + + auto res = readsum( cfg.name ); + const auto* resp = res.get(); + BOOST_CHECK_CLOSE( 30.0, ecl_sum_get_well_var( resp, 0, "W_3", "WWIR" ), 1e-5 ); + BOOST_CHECK_CLOSE( 30.2, ecl_sum_get_well_var( resp, 0, "W_3", "WGIR" ), 1e-5 ); +} + +BOOST_AUTO_TEST_CASE(W_WOG_IT) { + setup cfg( "sum_test_W_WG_IT" ); + + out::Summary writer( cfg.es, cfg.config, cfg.name ); + writer.add_timestep( 1, 1, cfg.es, cfg.wells ); + writer.add_timestep( 2, 1, cfg.es, cfg.wells ); + writer.write(); + + auto res = readsum( cfg.name ); + const auto* resp = res.get(); + BOOST_CHECK_CLOSE( 30.0 / day, ecl_sum_get_well_var( resp, 0, "W_3", "WWIT" ), 1e-5 ); + BOOST_CHECK_CLOSE( 30.2 / day, ecl_sum_get_well_var( resp, 0, "W_3", "WGIT" ), 1e-5 ); + BOOST_CHECK_CLOSE( 2 * 30.0 / day, ecl_sum_get_well_var( resp, 1, "W_3", "WWIT" ), 1e-5 ); + BOOST_CHECK_CLOSE( 2 * 30.2 / day, ecl_sum_get_well_var( resp, 1, "W_3", "WGIT" ), 1e-5 ); +} + BOOST_AUTO_TEST_CASE(WWCT) { setup cfg( "sum_test_WWCT" ); @@ -490,6 +519,39 @@ BOOST_AUTO_TEST_CASE(G_WOG_PRT) { BOOST_CHECK_CLOSE( 0, ecl_sum_get_group_var( resp, 1, "G_2", "GLPTH" ), 1e-5 ); } +BOOST_AUTO_TEST_CASE(G_WG_IR) { + setup cfg( "sum_test_G_WG_IR" ); + + out::Summary writer( cfg.es, cfg.config, cfg.name ); + writer.add_timestep( 1, 1, cfg.es, cfg.wells ); + writer.add_timestep( 1, 1, cfg.es, cfg.wells ); + writer.write(); + + auto res = readsum( cfg.name ); + const auto* resp = res.get(); + + BOOST_CHECK_CLOSE( 30.0, ecl_sum_get_group_var( resp, 0, "G_2", "GWIR" ), 1e-5 ); + BOOST_CHECK_CLOSE( 30.2, ecl_sum_get_group_var( resp, 0, "G_2", "GGIR" ), 1e-5 ); +} + +BOOST_AUTO_TEST_CASE(G_WG_IT) { + setup cfg( "sum_test_G_WG_IT" ); + + out::Summary writer( cfg.es, cfg.config, cfg.name ); + writer.add_timestep( 1, 1, cfg.es, cfg.wells ); + writer.add_timestep( 2, 1, cfg.es, cfg.wells ); + writer.write(); + + auto res = readsum( cfg.name ); + const auto* resp = res.get(); + + BOOST_CHECK_CLOSE( 30.0 / day, ecl_sum_get_group_var( resp, 0, "G_2", "GWIT" ), 1e-5 ); + BOOST_CHECK_CLOSE( 30.2 / day, ecl_sum_get_group_var( resp, 0, "G_2", "GGIT" ), 1e-5 ); + + BOOST_CHECK_CLOSE( 2 * 30.0 / day, ecl_sum_get_group_var( resp, 1, "G_2", "GWIT" ), 1e-5 ); + BOOST_CHECK_CLOSE( 2 * 30.2 / day, ecl_sum_get_group_var( resp, 1, "G_2", "GGIT" ), 1e-5 ); +} + BOOST_AUTO_TEST_CASE(GWCT) { setup cfg( "sum_test_GWCT" );