From 15eb84d3e966c80b99297f056e346100336f3714 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A5rd=20Skaflestad?= Date: Thu, 22 Mar 2018 00:00:48 +0100 Subject: [PATCH] Expose "REGDIMS" Keyword from TableManager Some of these values are needed for restart purposes (go into the INTEHEAD) vector. --- .../EclipseState/Tables/TableManager.hpp | 1 + .../EclipseState/Tables/TableManager.cpp | 4 ++ tests/parser/TableManagerTests.cpp | 45 +++++++++++++++++++ 3 files changed, 50 insertions(+) diff --git a/opm/parser/eclipse/EclipseState/Tables/TableManager.hpp b/opm/parser/eclipse/EclipseState/Tables/TableManager.hpp index 211d582ac..f6956bf9a 100644 --- a/opm/parser/eclipse/EclipseState/Tables/TableManager.hpp +++ b/opm/parser/eclipse/EclipseState/Tables/TableManager.hpp @@ -64,6 +64,7 @@ namespace Opm { const Tabdims& getTabdims() const; const Eqldims& getEqldims() const; const Aqudims& getAqudims() const; + const Regdims& getRegdims() const; /* WIll return max{ Tabdims::NTFIP , Regdims::NTFIP }. diff --git a/src/opm/parser/eclipse/EclipseState/Tables/TableManager.cpp b/src/opm/parser/eclipse/EclipseState/Tables/TableManager.cpp index 3cea3ea36..5748a0bac 100644 --- a/src/opm/parser/eclipse/EclipseState/Tables/TableManager.cpp +++ b/src/opm/parser/eclipse/EclipseState/Tables/TableManager.cpp @@ -566,6 +566,10 @@ namespace Opm { return m_aqudims; } + const Regdims& TableManager::getRegdims() const { + return *this->m_regdims; + } + /* const std::vector& TableManager::getSwofTables() const { return m_swofTables; diff --git a/tests/parser/TableManagerTests.cpp b/tests/parser/TableManagerTests.cpp index 009182ed5..0cc7e803f 100644 --- a/tests/parser/TableManagerTests.cpp +++ b/tests/parser/TableManagerTests.cpp @@ -31,6 +31,7 @@ // keyword specific table classes #include +#include #include #include #include @@ -1357,3 +1358,47 @@ BOOST_AUTO_TEST_CASE( TestParseTABDIMS ) { Opm::Parser parser; BOOST_CHECK_NO_THROW( parser.parseString(data, Opm::ParseContext())); } + +BOOST_AUTO_TEST_CASE (Regdims_Entries) { + + // All defaulted + { + const auto input = std::string { + R"~( +REGDIMS +/ +)~" }; + + const auto tabMgr = ::Opm::TableManager { + ::Opm::Parser{}.parseString(input) + }; + + const auto& rd = tabMgr.getRegdims(); + + BOOST_CHECK_EQUAL(rd.getNTFIP() , std::size_t{1}); + BOOST_CHECK_EQUAL(rd.getNMFIPR(), std::size_t{1}); + BOOST_CHECK_EQUAL(rd.getNRFREG(), std::size_t{0}); + BOOST_CHECK_EQUAL(rd.getNTFREG(), std::size_t{0}); + } + + // All user-specified + { + const auto input = std::string { + R"~( +REGDIMS + 11 22 33 44 55 66 77 88 99 110 +/ +)~" }; + + const auto tabMgr = ::Opm::TableManager { + ::Opm::Parser{}.parseString(input) + }; + + const auto& rd = tabMgr.getRegdims(); + + BOOST_CHECK_EQUAL(rd.getNTFIP() , std::size_t{11}); + BOOST_CHECK_EQUAL(rd.getNMFIPR(), std::size_t{22}); + BOOST_CHECK_EQUAL(rd.getNRFREG(), std::size_t{33}); + BOOST_CHECK_EQUAL(rd.getNTFREG(), std::size_t{44}); + } +}