Merge pull request #1891 from joakim-hove/summary-region
Add basic support for xxx_REG summary keywords
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
#include <opm/io/eclipse/SummaryNode.hpp>
|
||||
#include <opm/parser/eclipse/Python/Python.hpp>
|
||||
#include <opm/parser/eclipse/Deck/Deck.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/EclipseState.hpp>
|
||||
@@ -96,6 +97,8 @@ static Deck createDeck( const std::string& summary ) {
|
||||
"REGIONS\n"
|
||||
"FIPNUM\n"
|
||||
"200*1 300*2 500*3 /\n"
|
||||
"FIPREG\n"
|
||||
"200*10 300*20 500*30 /\n"
|
||||
"SCHEDULE\n"
|
||||
"WELSPECS\n"
|
||||
" \'W_1\' \'OP\' 1 1 3.33 \'OIL\' 7* / \n"
|
||||
@@ -1037,3 +1040,30 @@ RUNSUM
|
||||
BOOST_CHECK( summary_config2.createRunSummary());
|
||||
BOOST_CHECK(!summary_config2.hasKeyword("RUNSUM"));
|
||||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(FIPREG) {
|
||||
std::string deck_string = R"(
|
||||
RPR__REG
|
||||
/
|
||||
|
||||
ROPT_REG
|
||||
/
|
||||
)";
|
||||
const auto& summary_config = createSummary(deck_string);
|
||||
BOOST_CHECK(summary_config.hasKeyword("RPR__REG"));
|
||||
BOOST_CHECK(summary_config.hasKeyword("ROPT_REG"));
|
||||
BOOST_CHECK(!summary_config.hasKeyword("RPR"));
|
||||
BOOST_CHECK(!summary_config.match("BPR*"));
|
||||
BOOST_CHECK(summary_config.match("RPR*"));
|
||||
for (const auto& node : summary_config) {
|
||||
if (node.category() == EclIO::SummaryNode::Category::Region)
|
||||
BOOST_CHECK_EQUAL( node.fip_region(), "FIPREG" );
|
||||
}
|
||||
|
||||
const auto& fip_regions = summary_config.fip_regions();
|
||||
BOOST_CHECK_EQUAL(fip_regions.size(), 1);
|
||||
|
||||
auto reg_iter = fip_regions.find("FIPREG");
|
||||
BOOST_CHECK( reg_iter != fip_regions.end() );
|
||||
}
|
||||
|
||||
@@ -35,14 +35,14 @@ BOOST_AUTO_TEST_CASE(UniqueKey) {
|
||||
using Category = Opm::EclIO::SummaryNode::Category;
|
||||
using Type = Opm::EclIO::SummaryNode::Type;
|
||||
|
||||
expect_key( { "KEYW", Category::Well, Type::Rate, "NORA", 1 }, "KEYW:NORA" );
|
||||
expect_key( { "KEYW", Category::Group, Type::Rate, "NORA", 2 }, "KEYW:NORA" );
|
||||
expect_key( { "KEYW", Category::Field, Type::Rate, "NORA", 3 }, "KEYW" );
|
||||
expect_key( { "KEYW", Category::Region, Type::Rate, "NORA", 4 }, "KEYW:4" );
|
||||
expect_key( { "KEYW", Category::Block, Type::Rate, "NORA", 5 }, "KEYW:5" );
|
||||
expect_key( { "KEYW", Category::Connection, Type::Rate, "NORA", 6 }, "KEYW:NORA:6" );
|
||||
expect_key( { "KEYW", Category::Segment, Type::Rate, "NORA", 7 }, "KEYW:NORA:7" );
|
||||
expect_key( { "KEYW", Category::Miscellaneous, Type::Rate, "NORA", 8 }, "KEYW" );
|
||||
expect_key( { "KEYW", Category::Well, Type::Rate, "NORA", 1 ,""}, "KEYW:NORA" );
|
||||
expect_key( { "KEYW", Category::Group, Type::Rate, "NORA", 2 ,""}, "KEYW:NORA" );
|
||||
expect_key( { "KEYW", Category::Field, Type::Rate, "NORA", 3 ,""}, "KEYW" );
|
||||
expect_key( { "KEYW", Category::Region, Type::Rate, "NORA", 4 ,""}, "KEYW:4" );
|
||||
expect_key( { "KEYW", Category::Block, Type::Rate, "NORA", 5 ,""}, "KEYW:5" );
|
||||
expect_key( { "KEYW", Category::Connection, Type::Rate, "NORA", 6 ,""}, "KEYW:NORA:6" );
|
||||
expect_key( { "KEYW", Category::Segment, Type::Rate, "NORA", 7 ,""}, "KEYW:NORA:7" );
|
||||
expect_key( { "KEYW", Category::Miscellaneous, Type::Rate, "NORA", 8 ,""}, "KEYW" );
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(InjectedNumberRenderer) {
|
||||
@@ -54,7 +54,8 @@ BOOST_AUTO_TEST_CASE(InjectedNumberRenderer) {
|
||||
Category::Region,
|
||||
Type::Undefined,
|
||||
"-",
|
||||
2
|
||||
2,
|
||||
""
|
||||
};
|
||||
|
||||
Opm::EclIO::SummaryNode negativeNode {
|
||||
@@ -62,7 +63,8 @@ BOOST_AUTO_TEST_CASE(InjectedNumberRenderer) {
|
||||
Category::Region,
|
||||
Type::Undefined,
|
||||
"-",
|
||||
-2
|
||||
-2,
|
||||
""
|
||||
};
|
||||
|
||||
auto chooseSign = [](const Opm::EclIO::SummaryNode& node) -> std::string {
|
||||
@@ -74,7 +76,7 @@ BOOST_AUTO_TEST_CASE(InjectedNumberRenderer) {
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(user_defined) {
|
||||
auto summary_node = Opm::EclIO::SummaryNode{"FU_VAR1", Opm::EclIO::SummaryNode::Category::Field, Opm::EclIO::SummaryNode::Type::Undefined, "", -1 };
|
||||
auto summary_node = Opm::EclIO::SummaryNode{"FU_VAR1", Opm::EclIO::SummaryNode::Category::Field, Opm::EclIO::SummaryNode::Type::Undefined, "", -1 , ""};
|
||||
BOOST_CHECK( summary_node.is_user_defined() );
|
||||
}
|
||||
|
||||
|
||||
@@ -46,14 +46,14 @@ BOOST_AUTO_TEST_CASE(create) {
|
||||
EclipseState es(deck);
|
||||
const EclipseGrid& grid = es.getInputGrid();
|
||||
Schedule schedule( deck, es, python);
|
||||
out::RegionCache rc(es.fieldProps().get_int("FIPNUM"), grid, schedule);
|
||||
out::RegionCache rc({"FIPNUM"}, es.fieldProps(), grid, schedule);
|
||||
{
|
||||
const auto& empty = rc.connections( 4 );
|
||||
const auto& empty = rc.connections( "FIPNUM", 4 );
|
||||
BOOST_CHECK_EQUAL( empty.size() , 0 );
|
||||
}
|
||||
|
||||
{
|
||||
const auto& top_layer = rc.connections( 1 );
|
||||
const auto& top_layer = rc.connections( "FIPNUM", 1 );
|
||||
BOOST_CHECK_EQUAL( top_layer.size() , 3 );
|
||||
{
|
||||
auto pair = top_layer[0];
|
||||
|
||||
Reference in New Issue
Block a user