Push Block Level Unit Conversion to Summary Output
The 'BLOCK_VARIABLES' test was doing manual unit conversion and there's no need for that.
This commit is contained in:
@@ -81,6 +81,11 @@ namespace {
|
||||
return unit::meter / unit::second;
|
||||
}
|
||||
|
||||
double barsa()
|
||||
{
|
||||
return unit::barsa;
|
||||
}
|
||||
|
||||
double cp()
|
||||
{
|
||||
return prefix::centi * unit::Poise;
|
||||
@@ -1997,14 +2002,15 @@ BOOST_AUTO_TEST_CASE(inter_region_flows)
|
||||
BOOST_CHECK_CLOSE(ecl_sum_get_general_var(resp, 2, "RGFR:9-10"), 86400.0f * 3.1415926f, 1.0e-6f);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(BLOCK_VARIABLES) {
|
||||
setup cfg( "region_injection" );
|
||||
|
||||
BOOST_AUTO_TEST_CASE(BLOCK_VARIABLES)
|
||||
{
|
||||
setup cfg { "block_quantities" };
|
||||
|
||||
std::map<std::pair<std::string, int>, double> block_values;
|
||||
for (size_t r=1; r <= 10; r++) {
|
||||
block_values[std::make_pair("BPR", (r-1)*100 + 1)] = r*1.0;
|
||||
for (auto r = 1; r <= 10; ++r) {
|
||||
block_values[std::make_pair("BPR", (r - 1)*100 + 1)] = r*1.0*barsa();
|
||||
}
|
||||
|
||||
block_values[std::make_pair("BSWAT", 1)] = 8.0;
|
||||
block_values[std::make_pair("BSGAS", 1)] = 9.0;
|
||||
block_values[std::make_pair("BOSAT", 1)] = 0.91;
|
||||
@@ -2016,14 +2022,14 @@ BOOST_AUTO_TEST_CASE(BLOCK_VARIABLES) {
|
||||
block_values[std::make_pair("BGKR", 2)] = 0.61;
|
||||
block_values[std::make_pair("BKRG", 2)] = 0.63;
|
||||
block_values[std::make_pair("BKRW", 2)] = 0.51;
|
||||
block_values[std::make_pair("BWPC", 11)] = 0.53;
|
||||
block_values[std::make_pair("BGPC", 11)] = 5.3;
|
||||
block_values[std::make_pair("BVWAT", 1)] = 4.1;
|
||||
block_values[std::make_pair("BWVIS", 1)] = 4.3;
|
||||
block_values[std::make_pair("BVGAS", 1)] = 0.031;
|
||||
block_values[std::make_pair("BGVIS", 1)] = 0.037;
|
||||
block_values[std::make_pair("BVOIL", 1)] = 31.0;
|
||||
block_values[std::make_pair("BOVIS", 1)] = 33.0;
|
||||
block_values[std::make_pair("BWPC", 11)] = 0.53*barsa();
|
||||
block_values[std::make_pair("BGPC", 11)] = 5.3*barsa();
|
||||
block_values[std::make_pair("BVWAT", 1)] = 4.1*cp();
|
||||
block_values[std::make_pair("BWVIS", 1)] = 4.3*cp();
|
||||
block_values[std::make_pair("BVGAS", 1)] = 0.031*cp();
|
||||
block_values[std::make_pair("BGVIS", 1)] = 0.037*cp();
|
||||
block_values[std::make_pair("BVOIL", 1)] = 31.0*cp();
|
||||
block_values[std::make_pair("BOVIS", 1)] = 33.0*cp();
|
||||
|
||||
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
|
||||
SummaryState st(TimeService::now());
|
||||
@@ -2039,48 +2045,53 @@ BOOST_AUTO_TEST_CASE(BLOCK_VARIABLES) {
|
||||
writer.add_timestep( st, 4, false);
|
||||
writer.write();
|
||||
|
||||
auto res = readsum( cfg.name );
|
||||
auto res = readsum(cfg.name);
|
||||
const auto* resp = res.get();
|
||||
|
||||
UnitSystem units( UnitSystem::UnitType::UNIT_TYPE_METRIC );
|
||||
for (size_t r=1; r <= 10; r++) {
|
||||
std::string bpr_key = "BPR:1,1," + std::to_string( r );
|
||||
BOOST_CHECK( ecl_sum_has_general_var( resp , bpr_key.c_str()));
|
||||
for (auto r = 1; r <= 10; ++r) {
|
||||
const auto bpr_key = fmt::format("BPR:1,1,{}", r);
|
||||
|
||||
BOOST_CHECK_CLOSE( r * 1.0 , units.to_si( UnitSystem::measure::pressure , ecl_sum_get_general_var( resp, 1, bpr_key.c_str())) , 1e-5);
|
||||
BOOST_CHECK_MESSAGE(ecl_sum_has_general_var(resp, bpr_key),
|
||||
"Block Pressure Variable " << bpr_key
|
||||
<< " must exist in summary output");
|
||||
|
||||
BOOST_CHECK_CLOSE(r * 1.0, ecl_sum_get_general_var(resp, 1, bpr_key), 1e-5);
|
||||
}
|
||||
|
||||
BOOST_CHECK_CLOSE( 8.0 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BSWAT:1,1,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 9.0 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BSGAS:1,1,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 0.91 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BOSAT:1,1,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 0.81 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BWKR:2,1,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 0.71 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BOKR:2,1,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 0.73 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BKRO:2,1,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 0.82 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BKROG:4,1,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 0.68 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BKROW:3,1,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 0.61 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BGKR:2,1,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 0.63 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BKRG:2,1,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 0.51 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BKRW:2,1,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 0.53 , units.to_si( UnitSystem::measure::pressure , ecl_sum_get_general_var( resp, 1, "BWPC:1,2,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 5.3 , units.to_si( UnitSystem::measure::pressure , ecl_sum_get_general_var( resp, 1, "BGPC:1,2,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 4.1 , units.to_si( UnitSystem::measure::viscosity , ecl_sum_get_general_var( resp, 1, "BVWAT:1,1,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 4.3 , units.to_si( UnitSystem::measure::viscosity , ecl_sum_get_general_var( resp, 1, "BWVIS:1,1,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 0.031 , units.to_si( UnitSystem::measure::viscosity , ecl_sum_get_general_var( resp, 1, "BVGAS:1,1,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 0.037 , units.to_si( UnitSystem::measure::viscosity , ecl_sum_get_general_var( resp, 1, "BGVIS:1,1,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 31.0 , units.to_si( UnitSystem::measure::viscosity , ecl_sum_get_general_var( resp, 1, "BVOIL:1,1,1")) , 1e-5);
|
||||
BOOST_CHECK_CLOSE( 33.0 , units.to_si( UnitSystem::measure::viscosity , ecl_sum_get_general_var( resp, 1, "BOVIS:1,1,1")) , 1e-5);
|
||||
// Cell (2,1,10) is not active
|
||||
BOOST_CHECK_MESSAGE(! ecl_sum_has_general_var(resp, "BPR:2,1,10"),
|
||||
"Block Pressure Variable BPR:2,1,10 must NOT exist");
|
||||
|
||||
BOOST_CHECK_CLOSE( 111.222 , ecl_sum_get_well_connection_var( resp, 1, "W_1", "CTFAC", 1, 1, 1), 1e-5);
|
||||
BOOST_CHECK_CLOSE( 222.333 , ecl_sum_get_well_connection_var( resp, 1, "W_2", "CTFAC", 2, 1, 1), 1e-5);
|
||||
BOOST_CHECK_CLOSE( 333.444 , ecl_sum_get_well_connection_var( resp, 1, "W_2", "CTFAC", 2, 1, 2), 1e-5);
|
||||
BOOST_CHECK_CLOSE( 444.555 , ecl_sum_get_well_connection_var( resp, 1, "W_3", "CTFAC", 3, 1, 1), 1e-5);
|
||||
BOOST_CHECK_CLOSE(8.0 , ecl_sum_get_general_var(resp, 1, "BSWAT:1,1,1"), 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(9.0 , ecl_sum_get_general_var(resp, 1, "BSGAS:1,1,1"), 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(0.91, ecl_sum_get_general_var(resp, 1, "BOSAT:1,1,1"), 1.0e-5);
|
||||
|
||||
BOOST_CHECK_CLOSE( 111.222 , ecl_sum_get_well_connection_var( resp, 3, "W_1", "CTFAC", 1, 1, 1), 1e-5);
|
||||
BOOST_CHECK_CLOSE( 111.222 , ecl_sum_get_well_connection_var( resp, 4, "W_1", "CTFAC", 1, 1, 1), 1e-5);
|
||||
BOOST_CHECK_CLOSE(0.81, ecl_sum_get_general_var(resp, 1, "BWKR:2,1,1") , 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(0.71, ecl_sum_get_general_var(resp, 1, "BOKR:2,1,1") , 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(0.73, ecl_sum_get_general_var(resp, 1, "BKRO:2,1,1") , 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(0.82, ecl_sum_get_general_var(resp, 1, "BKROG:4,1,1"), 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(0.68, ecl_sum_get_general_var(resp, 1, "BKROW:3,1,1"), 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(0.61, ecl_sum_get_general_var(resp, 1, "BGKR:2,1,1") , 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(0.63, ecl_sum_get_general_var(resp, 1, "BKRG:2,1,1") , 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(0.51, ecl_sum_get_general_var(resp, 1, "BKRW:2,1,1") , 1.0e-5);
|
||||
|
||||
// Cell is not active
|
||||
BOOST_CHECK( !ecl_sum_has_general_var( resp , "BPR:2,1,10"));
|
||||
BOOST_CHECK_CLOSE(0.53, ecl_sum_get_general_var(resp, 1, "BWPC:1,2,1"), 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(5.3 , ecl_sum_get_general_var(resp, 1, "BGPC:1,2,1"), 1.0e-5);
|
||||
|
||||
BOOST_CHECK_CLOSE(4.1 , ecl_sum_get_general_var(resp, 1, "BVWAT:1,1,1"), 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(4.3 , ecl_sum_get_general_var(resp, 1, "BWVIS:1,1,1"), 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(0.031, ecl_sum_get_general_var(resp, 1, "BVGAS:1,1,1"), 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(0.037, ecl_sum_get_general_var(resp, 1, "BGVIS:1,1,1"), 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(31.0 , ecl_sum_get_general_var(resp, 1, "BVOIL:1,1,1"), 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(33.0 , ecl_sum_get_general_var(resp, 1, "BOVIS:1,1,1"), 1.0e-5);
|
||||
|
||||
BOOST_CHECK_CLOSE(111.222, ecl_sum_get_well_connection_var(resp, 1, "W_1", "CTFAC", 1, 1, 1), 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(222.333, ecl_sum_get_well_connection_var(resp, 1, "W_2", "CTFAC", 2, 1, 1), 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(333.444, ecl_sum_get_well_connection_var(resp, 1, "W_2", "CTFAC", 2, 1, 2), 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(444.555, ecl_sum_get_well_connection_var(resp, 1, "W_3", "CTFAC", 3, 1, 1), 1.0e-5);
|
||||
|
||||
BOOST_CHECK_CLOSE(111.222, ecl_sum_get_well_connection_var(resp, 3, "W_1", "CTFAC", 1, 1, 1), 1.0e-5);
|
||||
BOOST_CHECK_CLOSE(111.222, ecl_sum_get_well_connection_var(resp, 4, "W_1", "CTFAC", 1, 1, 1), 1.0e-5);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(NODE_VARIABLES) {
|
||||
|
||||
Reference in New Issue
Block a user