Merge pull request #559 from kel85uk/fix_influx_coeff
Fix for aquifer making connection
This commit is contained in:
@@ -50,6 +50,10 @@ inline Deck createAQUANCONDeck() {
|
||||
"\n"
|
||||
"AQUANCON\n"
|
||||
" 1 1 1 1 1 1 1 J- 1.0 1.0 NO /\n"
|
||||
" 1 1 3 1 3 3 3 I+ 0.5 1.0 NO /\n"
|
||||
" 1 1 3 1 3 3 3 J+ 0.75 1.0 NO /\n"
|
||||
" 1 1 3 1 3 3 3 J- 2.75 1.0 NO /\n"
|
||||
" 1 2 3 2 3 1 1 I+ 2.75 1.0 NO /\n"
|
||||
"/ \n";
|
||||
|
||||
Parser parser;
|
||||
@@ -65,13 +69,29 @@ inline std::vector<Aquancon::AquanconOutput> init_aquancon(){
|
||||
return aquifers;
|
||||
}
|
||||
|
||||
inline std::vector<Aquancon::AquanconOutput> fill_result(){
|
||||
auto deck = createAQUANCONDeck();
|
||||
EclipseState eclState( deck );
|
||||
Aquancon aqucon( eclState.getInputGrid(), deck);
|
||||
std::vector<Aquancon::AquanconOutput> aquifers = aqucon.getAquOutput();
|
||||
|
||||
return aquifers;
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(AquanconTest){
|
||||
std::vector< Aquancon::AquanconOutput > aquifers = init_aquancon();
|
||||
for (const auto& it : aquifers){
|
||||
for (size_t i = 0; i < it.global_index.size(); ++i){
|
||||
BOOST_CHECK_EQUAL(it.aquiferID , 1);
|
||||
BOOST_CHECK_EQUAL(it.global_index.at(i) , 0);
|
||||
BOOST_CHECK_EQUAL(it.reservoir_face_dir.at(i) , 8);
|
||||
}
|
||||
}
|
||||
}
|
||||
std::vector< Aquancon::AquanconOutput > expected_output = fill_result();
|
||||
|
||||
BOOST_CHECK_EQUAL(aquifers.size(), expected_output.size());
|
||||
for (size_t i = 0; i < aquifers.size(); ++i)
|
||||
{
|
||||
BOOST_CHECK_EQUAL_COLLECTIONS( aquifers.at(i).global_index.begin(), aquifers.at(i).global_index.end(),
|
||||
expected_output.at(i).global_index.begin(), expected_output.at(i).global_index.end() );
|
||||
BOOST_CHECK_EQUAL_COLLECTIONS( aquifers.at(i).influx_multiplier.begin(), aquifers.at(i).influx_multiplier.end(),
|
||||
expected_output.at(i).influx_multiplier.begin(), expected_output.at(i).influx_multiplier.end() );
|
||||
BOOST_CHECK_EQUAL_COLLECTIONS( aquifers.at(i).reservoir_face_dir.begin(), aquifers.at(i).reservoir_face_dir.end(),
|
||||
expected_output.at(i).reservoir_face_dir.begin(), expected_output.at(i).reservoir_face_dir.end() );
|
||||
BOOST_CHECK_EQUAL_COLLECTIONS( aquifers.at(i).record_index.begin(), aquifers.at(i).record_index.end(),
|
||||
expected_output.at(i).record_index.begin(), expected_output.at(i).record_index.end() );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,15 +51,51 @@ inline Deck createAquiferCTDeck() {
|
||||
"SOLUTION\n"
|
||||
"\n"
|
||||
"AQUCT\n"
|
||||
" 1 2000.0 1000 100 .3 3.0e-5 330 10 360.0 1 2 /\n"
|
||||
" 1 2000.0 1.5 100 .3 3.0e-5 330 10 360.0 1 2 /\n"
|
||||
"/ \n";
|
||||
|
||||
Parser parser;
|
||||
return parser.parseString(deckData, ParseContext());
|
||||
}
|
||||
|
||||
inline std::vector<AquiferCT::AQUCT_data> init_aquiferct(){
|
||||
auto deck = createAquiferCTDeck();
|
||||
inline Deck createAquiferCTDeckDefaultP0() {
|
||||
const char *deckData =
|
||||
"DIMENS\n"
|
||||
"3 3 3 /\n"
|
||||
"\n"
|
||||
"AQUDIMS\n"
|
||||
"1* 1* 2 100 1 1000 /\n"
|
||||
"GRID\n"
|
||||
"\n"
|
||||
"ACTNUM\n"
|
||||
" 0 8*1 0 8*1 0 8*1 /\n"
|
||||
"DXV\n"
|
||||
"1 1 1 /\n"
|
||||
"\n"
|
||||
"DYV\n"
|
||||
"1 1 1 /\n"
|
||||
"\n"
|
||||
"DZV\n"
|
||||
"1 1 1 /\n"
|
||||
"\n"
|
||||
"TOPS\n"
|
||||
"9*100 /\n"
|
||||
"\n"
|
||||
"PROPS\n"
|
||||
"AQUTAB\n"
|
||||
" 0.01 0.112 \n"
|
||||
" 0.05 0.229 /\n"
|
||||
"SOLUTION\n"
|
||||
"\n"
|
||||
"AQUCT\n"
|
||||
" 1 2000.0 1* 100 .3 3.0e-5 330 10 360.0 1 2 /\n"
|
||||
"/ \n";
|
||||
|
||||
Parser parser;
|
||||
return parser.parseString(deckData, ParseContext());
|
||||
}
|
||||
|
||||
inline std::vector<AquiferCT::AQUCT_data> init_aquiferct(Deck& deck){
|
||||
EclipseState eclState( deck );
|
||||
AquiferCT aquct( eclState, deck);
|
||||
std::vector<AquiferCT::AQUCT_data> aquiferct = aquct.getAquifers();
|
||||
@@ -68,11 +104,21 @@ inline std::vector<AquiferCT::AQUCT_data> init_aquiferct(){
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(AquiferCTTest){
|
||||
std::vector< AquiferCT::AQUCT_data > aquiferct = init_aquiferct();
|
||||
auto deck = createAquiferCTDeck();
|
||||
std::vector< AquiferCT::AQUCT_data > aquiferct = init_aquiferct(deck);
|
||||
for (const auto& it : aquiferct){
|
||||
BOOST_CHECK_EQUAL(it.aquiferID , 1);
|
||||
BOOST_CHECK_EQUAL(it.phi_aq , 0.3);
|
||||
BOOST_CHECK_EQUAL(it.inftableID , 2);
|
||||
|
||||
}
|
||||
BOOST_CHECK_CLOSE(*(it.p0), 1.5e5, 1e-6);
|
||||
}
|
||||
|
||||
auto deck_default_p0 = createAquiferCTDeckDefaultP0();
|
||||
aquiferct = init_aquiferct(deck_default_p0);
|
||||
for (const auto& it : aquiferct){
|
||||
BOOST_CHECK_EQUAL(it.aquiferID , 1);
|
||||
BOOST_CHECK_EQUAL(it.phi_aq , 0.3);
|
||||
BOOST_CHECK_EQUAL(it.inftableID , 2);
|
||||
BOOST_CHECK(it.p0 == nullptr);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user