Add multi record test

This commit is contained in:
Joakim Hove 2020-09-25 14:33:15 +02:00
parent d57d9ea18f
commit 8e55f3138b

View File

@ -2035,3 +2035,124 @@ MINVALUE
BOOST_CHECK(fpm.tran_active("TRANY"));
BOOST_CHECK(fpm.tran_active("TRANZ"));
}
BOOST_AUTO_TEST_CASE(TRAN2) {
std::string deck_string = R"(
GRID
PORO
1000*0.10 /
EDIT
EQUALS
TRANX 1 1 10 1 10 1 1 /
TRANX 2 1 10 1 10 2 2 /
TRANX 3 1 10 1 10 3 3 /
TRANX 4 1 10 1 10 4 4 /
TRANX 5 1 10 1 10 5 5 /
TRANX 6 1 10 1 10 6 6 /
TRANX 7 1 10 1 10 7 7 /
TRANX 8 1 10 1 10 8 8 /
TRANX 9 1 10 1 10 9 9 /
TRANX 10 1 10 1 10 10 10 /
TRANY 1 1 10 1 10 1 1 /
TRANY 2 1 10 1 10 2 2 /
TRANY 3 1 10 1 10 3 3 /
TRANY 4 1 10 1 10 4 4 /
TRANY 5 1 10 1 10 5 5 /
TRANY 6 1 10 1 10 6 6 /
TRANY 7 1 10 1 10 7 7 /
TRANY 8 1 10 1 10 8 8 /
TRANY 9 1 10 1 10 9 9 /
TRANY 10 1 10 1 10 10 10 /
TRANZ 1 1 10 1 10 1 1 /
TRANZ 2 1 10 1 10 2 2 /
TRANZ 3 1 10 1 10 3 3 /
TRANZ 4 1 10 1 10 4 4 /
TRANZ 5 1 10 1 10 5 5 /
TRANZ 6 1 10 1 10 6 6 /
TRANZ 7 1 10 1 10 7 7 /
TRANZ 8 1 10 1 10 8 8 /
TRANZ 9 1 10 1 10 9 9 /
TRANZ 10 1 10 1 10 10 10 /
/
MULTIPLY
TRANX 1 1 10 1 10 1 1 /
TRANX 2 1 10 1 10 2 2 /
TRANX 3 1 10 1 10 3 3 /
TRANX 4 1 10 1 10 4 4 /
TRANX 5 1 10 1 10 5 5 /
TRANX 6 1 10 1 10 6 6 /
TRANX 7 1 10 1 10 7 7 /
TRANX 8 1 10 1 10 8 8 /
TRANX 9 1 10 1 10 9 9 /
TRANX 10 1 10 1 10 10 10 /
TRANZ 1 1 10 1 10 1 1 /
TRANZ 2 1 10 1 10 2 2 /
TRANZ 3 1 10 1 10 3 3 /
TRANZ 4 1 10 1 10 4 4 /
TRANZ 5 1 10 1 10 5 5 /
TRANZ 6 1 10 1 10 6 6 /
TRANZ 7 1 10 1 10 7 7 /
TRANZ 8 1 10 1 10 8 8 /
TRANZ 9 1 10 1 10 9 9 /
TRANZ 10 1 10 1 10 10 10 /
TRANZ 1 1 10 1 10 1 1 /
TRANZ 2 1 10 1 10 2 2 /
TRANZ 3 1 10 1 10 3 3 /
TRANZ 4 1 10 1 10 4 4 /
TRANZ 5 1 10 1 10 5 5 /
TRANZ 6 1 10 1 10 6 6 /
TRANZ 7 1 10 1 10 7 7 /
TRANZ 8 1 10 1 10 8 8 /
TRANZ 9 1 10 1 10 9 9 /
TRANZ 10 1 10 1 10 10 10 /
/
MULTIPLY
TRANX 1 1 10 1 10 1 1 /
TRANX 2 1 10 1 10 2 2 /
TRANX 3 1 10 1 10 3 3 /
TRANX 4 1 10 1 10 4 4 /
TRANX 5 1 10 1 10 5 5 /
TRANX 6 1 10 1 10 6 6 /
TRANX 7 1 10 1 10 7 7 /
TRANX 8 1 10 1 10 8 8 /
TRANX 9 1 10 1 10 9 9 /
TRANX 10 1 10 1 10 10 10/
/
)";
UnitSystem unit_system(UnitSystem::UnitType::UNIT_TYPE_METRIC);
auto to_si = [&unit_system](double raw_value) { return unit_system.to_si(UnitSystem::measure::transmissibility, raw_value); };
std::vector<int> actnum(1000, 1);
for (std::size_t i=0; i< 1000; i += 2)
actnum[i] = 0;
EclipseGrid grid(EclipseGrid(10,10,10), actnum);
Deck deck = Parser{}.parseString(deck_string);
FieldPropsManager fpm(deck, Phases{true, true, true}, grid, TableManager());
std::vector<double> tranx( grid.getNumActive() );
std::vector<double> trany( grid.getNumActive() );
std::vector<double> tranz( grid.getNumActive() );
fpm.apply_tran("TRANX", tranx);
fpm.apply_tran("TRANY", trany);
fpm.apply_tran("TRANZ", tranz);
for (std::size_t k=0; k < 10; k++) {
for (std::size_t j=0; j < 10; j++) {
for (std::size_t i=0; i < 10; i++) {
if (grid.cellActive(i,j,k)) {
auto a = grid.activeIndex(i,j,k);
BOOST_CHECK_CLOSE( tranx[a], to_si( (k+1)*(k+1)*(k+1)) , 1e-6);
BOOST_CHECK_CLOSE( trany[a], to_si( k+1 ) , 1e-6);
BOOST_CHECK_CLOSE( tranz[a], to_si( (k+1)*(k+1)*(k+1) ), 1e-6);
}
}
}
}
}