diff --git a/opm/parser/eclipse/EclipseState/Tables/TableManager.cpp b/opm/parser/eclipse/EclipseState/Tables/TableManager.cpp index cf4355f73..885bf0571 100644 --- a/opm/parser/eclipse/EclipseState/Tables/TableManager.cpp +++ b/opm/parser/eclipse/EclipseState/Tables/TableManager.cpp @@ -516,6 +516,14 @@ namespace Opm { } } + size_t TableManager::numFIPRegions() const { + size_t ntfip = m_tabdims.getNumFIPRegions(); + if (m_regdims->getNTFIP( ) > ntfip) + return m_regdims->getNTFIP( ); + else + return ntfip; + } + const Tabdims& TableManager::getTabdims() const { return m_tabdims; } diff --git a/opm/parser/eclipse/EclipseState/Tables/TableManager.hpp b/opm/parser/eclipse/EclipseState/Tables/TableManager.hpp index 02fc0383a..ac18deb2b 100644 --- a/opm/parser/eclipse/EclipseState/Tables/TableManager.hpp +++ b/opm/parser/eclipse/EclipseState/Tables/TableManager.hpp @@ -63,6 +63,11 @@ namespace Opm { const Tabdims& getTabdims() const; const Eqldims& getEqldims() const; + /* + WIll return max{ Tabdims::NTFIP , Regdims::NTFIP }. + */ + size_t numFIPRegions() const; + const TableContainer& getSwofTables() const; const TableContainer& getSgwfnTables() const; const TableContainer& getSof2Tables() const; diff --git a/opm/parser/eclipse/EclipseState/Tables/tests/TableManagerTests.cpp b/opm/parser/eclipse/EclipseState/Tables/tests/TableManagerTests.cpp index f10600cfb..e23d4774a 100644 --- a/opm/parser/eclipse/EclipseState/Tables/tests/TableManagerTests.cpp +++ b/opm/parser/eclipse/EclipseState/Tables/tests/TableManagerTests.cpp @@ -1233,7 +1233,7 @@ BOOST_AUTO_TEST_CASE( TestParseDENSITY ) { BOOST_AUTO_TEST_CASE( TestParseROCK ) { const std::string data = R"( TABDIMS - 1* 2 / + 1* 2 * * 8/ ROCK 1.1 1.2 / @@ -1251,6 +1251,7 @@ BOOST_AUTO_TEST_CASE( TestParseROCK ) { BOOST_CHECK_EQUAL( 2.2 * 1e-5, rock[1].compressibility ); BOOST_CHECK_THROW( rock.at( 2 ), std::out_of_range ); + BOOST_CHECK_EQUAL( 8 , tables.numFIPRegions( )); } BOOST_AUTO_TEST_CASE( TestParsePVCDO ) { @@ -1258,6 +1259,9 @@ BOOST_AUTO_TEST_CASE( TestParsePVCDO ) { TABDIMS 1* 1 / + REGDIMS + 25 / + PVCDO 3600 1.12 1.6e-5 0.88 0.0 / )"; @@ -1274,7 +1278,7 @@ BOOST_AUTO_TEST_CASE( TestParsePVCDO ) { BOOST_CHECK_CLOSE( 0.0, pvcdo[ 0 ].viscosibility * 1e5, 1e-5 ); BOOST_CHECK_THROW( pvcdo.at( 1 ), std::out_of_range ); - + BOOST_CHECK_EQUAL( 25 , tables.numFIPRegions( )); const std::string malformed = R"( TABDIMS