diff --git a/opm/parser/eclipse/EclipseState/Grid/SatfuncPropertyInitializers.cpp b/opm/parser/eclipse/EclipseState/Grid/SatfuncPropertyInitializers.cpp index 99f118a16..f1019a09f 100644 --- a/opm/parser/eclipse/EclipseState/Grid/SatfuncPropertyInitializers.cpp +++ b/opm/parser/eclipse/EclipseState/Grid/SatfuncPropertyInitializers.cpp @@ -77,7 +77,7 @@ namespace Opm { enum class limit { min, max }; static std::vector< double > findMinWaterSaturation( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& swofTables = tm->getSwofTables(); const auto& swfnTables = tm->getSwfnTables(); @@ -98,7 +98,7 @@ namespace Opm { } static std::vector< double > findMaxWaterSaturation( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& swofTables = tm->getSwofTables(); const auto& swfnTables = tm->getSwfnTables(); @@ -119,7 +119,7 @@ namespace Opm { } static std::vector< double > findMinGasSaturation( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& sgofTables = tm->getSgofTables(); const auto& slgofTables = tm->getSlgofTables(); const auto& sgfnTables = tm->getSgfnTables(); @@ -159,7 +159,7 @@ namespace Opm { } static std::vector< double > findMaxGasSaturation( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& sgofTables = tm->getSgofTables(); const auto& slgofTables = tm->getSlgofTables(); const auto& sgfnTables = tm->getSgfnTables(); @@ -227,7 +227,7 @@ namespace Opm { static std::vector< double > findCriticalWater( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& swofTables = tm->getSwofTables(); const auto& swfnTables = tm->getSwfnTables(); @@ -270,7 +270,7 @@ namespace Opm { static std::vector< double > findCriticalGas( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& sgfnTables = tm->getSgfnTables(); const auto& sgofTables = tm->getSgofTables(); const auto& slgofTables = tm->getSlgofTables(); @@ -329,7 +329,7 @@ namespace Opm { } static std::vector< double > findCriticalOilWater( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& swofTables = tm->getSwofTables(); const auto& sof3Tables= tm->getSof3Tables(); @@ -380,7 +380,7 @@ namespace Opm { static std::vector< double > findCriticalOilGas( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& sgofTables = tm->getSgofTables(); const auto& slgofTables = tm->getSlgofTables(); const auto& sof3Tables = tm->getSof3Tables(); @@ -417,7 +417,7 @@ namespace Opm { } static std::vector< double > findMaxKrg( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& sgofTables = tm->getSgofTables(); const auto& sgfnTables = tm->getSgfnTables(); @@ -440,7 +440,7 @@ namespace Opm { } static std::vector< double > findKrgr( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& sgofTables = tm->getSgofTables(); const auto& sgfnTables = tm->getSgfnTables(); @@ -463,7 +463,7 @@ namespace Opm { } static std::vector< double > findKrwr( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& swofTables = tm->getSwofTables(); const auto& swfnTables = tm->getSwfnTables(); @@ -486,7 +486,7 @@ namespace Opm { } static std::vector< double > findKrorw( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& swofTables = tm->getSwofTables(); const auto& sof3Tables = tm->getSof3Tables(); @@ -520,7 +520,7 @@ namespace Opm { } static std::vector< double > findKrorg( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& sgofTables = tm->getSgofTables(); const auto& sof3Tables = tm->getSof3Tables(); @@ -563,7 +563,7 @@ namespace Opm { * scaled. */ static std::vector< double > findMaxPcog( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& sgofTables = tm->getSgofTables(); const auto& sgfnTables = tm->getSgfnTables(); @@ -586,7 +586,7 @@ namespace Opm { } static std::vector< double > findMaxPcow( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& swofTables = tm->getSwofTables(); const auto& swfnTables = tm->getSwfnTables(); @@ -609,7 +609,7 @@ namespace Opm { } static std::vector< double > findMaxKro( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& swofTables = tm->getSwofTables(); const auto& sof3Tables = tm->getSof3Tables(); @@ -632,7 +632,7 @@ namespace Opm { } static std::vector< double > findMaxKrw( const TableManager* tm ) { - const auto num_tables = tm->getTabdims()->getNumSatTables(); + const auto num_tables = tm->getTabdims().getNumSatTables(); const auto& swofTables = tm->getSwofTables(); const auto& swfnTables = tm->getSwfnTables(); @@ -692,7 +692,7 @@ namespace Opm { const auto& satnum = intGridProperties->getKeyword("SATNUM"); const auto& endnum = intGridProperties->getKeyword("ENDNUM"); - int numSatTables = tabdims->getNumSatTables(); + int numSatTables = tabdims.getNumSatTables(); satnum.checkLimits( 1 , numSatTables ); @@ -736,7 +736,7 @@ namespace Opm { const auto& endnum = intGridProperties->getKeyword("ENDNUM"); auto tabdims = tableManager->getTabdims(); - const int numSatTables = tabdims->getNumSatTables(); + const int numSatTables = tabdims.getNumSatTables(); imbnum.checkLimits( 1 , numSatTables ); // acctually assign the defaults. if the ENPVD keyword was specified in the deck, diff --git a/opm/parser/eclipse/EclipseState/Runspec.cpp b/opm/parser/eclipse/EclipseState/Runspec.cpp index 52888d6a1..8217672c9 100644 --- a/opm/parser/eclipse/EclipseState/Runspec.cpp +++ b/opm/parser/eclipse/EclipseState/Runspec.cpp @@ -59,16 +59,21 @@ size_t Phases::size() const noexcept { return this->bits.count(); } -Runspec::Runspec( const Deck& deck ) : - Runspec( Phases{ deck.hasKeyword( "OIL" ), - deck.hasKeyword( "GAS" ), - deck.hasKeyword( "WATER" ) } ) -{} -Runspec::Runspec( const Phases& p ) noexcept : active_phases( p ) {} +Runspec::Runspec( const Deck& deck ) : + active_phases( Phases{ deck.hasKeyword( "OIL" ), + deck.hasKeyword( "GAS" ), + deck.hasKeyword( "WATER" ) } ), + m_tabdims( deck ) +{} const Phases& Runspec::phases() const noexcept { return this->active_phases; } + +const Tabdims& Runspec::tabdims() const noexcept { + return this->m_tabdims; +} + } diff --git a/opm/parser/eclipse/EclipseState/Runspec.hpp b/opm/parser/eclipse/EclipseState/Runspec.hpp index d7cbdebe2..728202ace 100644 --- a/opm/parser/eclipse/EclipseState/Runspec.hpp +++ b/opm/parser/eclipse/EclipseState/Runspec.hpp @@ -23,6 +23,8 @@ #include #include +#include + namespace Opm { class Deck; @@ -51,12 +53,12 @@ class Phases { class Runspec { public: explicit Runspec( const Deck& ); - explicit Runspec( const Phases& ) noexcept; const Phases& phases() const noexcept; - + const Tabdims& tabdims() const noexcept; private: Phases active_phases; + Tabdims m_tabdims; }; } diff --git a/opm/parser/eclipse/EclipseState/Tables/Tabdims.hpp b/opm/parser/eclipse/EclipseState/Tables/Tabdims.hpp index 725a7420c..6f4a1e389 100644 --- a/opm/parser/eclipse/EclipseState/Tables/Tabdims.hpp +++ b/opm/parser/eclipse/EclipseState/Tables/Tabdims.hpp @@ -26,6 +26,9 @@ */ #include +#include +#include +#include namespace Opm { class Tabdims { @@ -46,13 +49,19 @@ namespace Opm { { } - Tabdims(size_t ntsfun, size_t ntpvt, size_t nssfun , size_t nppvt, size_t ntfip , size_t nrpvt) : - m_ntsfun( ntsfun ), - m_ntpvt( ntpvt ), - m_nssfun( nssfun ), - m_nppvt( nppvt ), - m_ntfip( ntfip ), - m_nrpvt( nrpvt ) {} + Tabdims(const Deck& deck) : + Tabdims() + { + if (deck.hasKeyword("TABDIMS")) { + const auto& record = deck.getKeyword( "TABDIMS" , 0 ).getRecord( 0 ); + m_ntsfun = record.getItem("NTSFUN").get(0); + m_ntpvt = record.getItem("NTPVT").get(0); + m_nssfun = record.getItem("NSSFUN").get(0); + m_nppvt = record.getItem("NPPVT").get(0); + m_ntfip = record.getItem("NTFIP").get(0); + m_nrpvt = record.getItem("NRPVT").get(0); + } + } size_t getNumSatTables() const { diff --git a/opm/parser/eclipse/EclipseState/Tables/TableManager.cpp b/opm/parser/eclipse/EclipseState/Tables/TableManager.cpp index 2863330ae..db6dad769 100644 --- a/opm/parser/eclipse/EclipseState/Tables/TableManager.cpp +++ b/opm/parser/eclipse/EclipseState/Tables/TableManager.cpp @@ -75,6 +75,7 @@ namespace Opm { TableManager::TableManager( const Deck& deck ) : + m_tabdims( Tabdims(deck)), hasImptvd (deck.hasKeyword("IMPTVD")), hasEnptvd (deck.hasKeyword("ENPTVD")), hasEqlnum (deck.hasKeyword("EQLNUM")) @@ -90,19 +91,6 @@ namespace Opm { void TableManager::initDims(const Deck& deck) { using namespace Opm::ParserKeywords; - if (deck.hasKeyword()) { - const auto& keyword = deck.getKeyword(); - const auto& record = keyword.getRecord(0); - int ntsfun = record.getItem().get< int >(0); - int ntpvt = record.getItem().get< int >(0); - int nssfun = record.getItem().get< int >(0); - int nppvt = record.getItem().get< int >(0); - int ntfip = record.getItem().get< int >(0); - int nrpvt = record.getItem().get< int >(0); - - m_tabdims = std::make_shared(ntsfun , ntpvt , nssfun , nppvt , ntfip , nrpvt); - } else - m_tabdims = std::make_shared(); if (deck.hasKeyword()) { const auto& keyword = deck.getKeyword(); @@ -170,29 +158,29 @@ namespace Opm { } void TableManager::initSimpleTables(const Deck& deck) { - addTables( "SWOF" , m_tabdims->getNumSatTables() ); - addTables( "SGWFN", m_tabdims->getNumSatTables() ); - addTables( "SGOF", m_tabdims->getNumSatTables() ); - addTables( "SLGOF", m_tabdims->getNumSatTables() ); - addTables( "SOF2", m_tabdims->getNumSatTables() ); - addTables( "SOF3", m_tabdims->getNumSatTables() ); - addTables( "SWFN", m_tabdims->getNumSatTables() ); - addTables( "SGFN", m_tabdims->getNumSatTables() ); - addTables( "SSFN", m_tabdims->getNumSatTables() ); - addTables( "MSFN", m_tabdims->getNumSatTables() ); + addTables( "SWOF" , m_tabdims.getNumSatTables() ); + addTables( "SGWFN", m_tabdims.getNumSatTables() ); + addTables( "SGOF", m_tabdims.getNumSatTables() ); + addTables( "SLGOF", m_tabdims.getNumSatTables() ); + addTables( "SOF2", m_tabdims.getNumSatTables() ); + addTables( "SOF3", m_tabdims.getNumSatTables() ); + addTables( "SWFN", m_tabdims.getNumSatTables() ); + addTables( "SGFN", m_tabdims.getNumSatTables() ); + addTables( "SSFN", m_tabdims.getNumSatTables() ); + addTables( "MSFN", m_tabdims.getNumSatTables() ); - addTables( "PLYADS", m_tabdims->getNumSatTables() ); - addTables( "PLYROCK", m_tabdims->getNumSatTables()); - addTables( "PLYVISC", m_tabdims->getNumPVTTables()); - addTables( "PLYDHFLF", m_tabdims->getNumPVTTables()); + addTables( "PLYADS", m_tabdims.getNumSatTables() ); + addTables( "PLYROCK", m_tabdims.getNumSatTables()); + addTables( "PLYVISC", m_tabdims.getNumPVTTables()); + addTables( "PLYDHFLF", m_tabdims.getNumPVTTables()); - addTables( "PVDG", m_tabdims->getNumPVTTables()); - addTables( "PVDO", m_tabdims->getNumPVTTables()); - addTables( "PVDS", m_tabdims->getNumPVTTables()); + addTables( "PVDG", m_tabdims.getNumPVTTables()); + addTables( "PVDO", m_tabdims.getNumPVTTables()); + addTables( "PVDS", m_tabdims.getNumPVTTables()); - addTables( "OILVISCT", m_tabdims->getNumPVTTables()); - addTables( "WATVISCT", m_tabdims->getNumPVTTables()); - addTables( "GASVISCT", m_tabdims->getNumPVTTables()); + addTables( "OILVISCT", m_tabdims.getNumPVTTables()); + addTables( "WATVISCT", m_tabdims.getNumPVTTables()); + addTables( "GASVISCT", m_tabdims.getNumPVTTables()); addTables( "PLYMAX", m_regdims->getNPLMIX()); addTables( "RSVD", m_eqldims->getNumEquilRegions()); @@ -237,16 +225,16 @@ namespace Opm { addTables( "ROCKTAB", numRocktabTables); } - initSimpleTableContainer(deck, "SWOF" , m_tabdims->getNumSatTables()); - initSimpleTableContainer(deck, "SGWFN", m_tabdims->getNumSatTables()); - initSimpleTableContainer(deck, "SGOF" , m_tabdims->getNumSatTables()); - initSimpleTableContainer(deck, "SLGOF" , m_tabdims->getNumSatTables()); - initSimpleTableContainer(deck, "SOF2" , m_tabdims->getNumSatTables()); - initSimpleTableContainer(deck, "SOF3" , m_tabdims->getNumSatTables()); - initSimpleTableContainer(deck, "SWFN" , m_tabdims->getNumSatTables()); - initSimpleTableContainer(deck, "SGFN" , m_tabdims->getNumSatTables()); - initSimpleTableContainer(deck, "SSFN" , m_tabdims->getNumSatTables()); - initSimpleTableContainer(deck, "MSFN" , m_tabdims->getNumSatTables()); + initSimpleTableContainer(deck, "SWOF" , m_tabdims.getNumSatTables()); + initSimpleTableContainer(deck, "SGWFN", m_tabdims.getNumSatTables()); + initSimpleTableContainer(deck, "SGOF" , m_tabdims.getNumSatTables()); + initSimpleTableContainer(deck, "SLGOF" , m_tabdims.getNumSatTables()); + initSimpleTableContainer(deck, "SOF2" , m_tabdims.getNumSatTables()); + initSimpleTableContainer(deck, "SOF3" , m_tabdims.getNumSatTables()); + initSimpleTableContainer(deck, "SWFN" , m_tabdims.getNumSatTables()); + initSimpleTableContainer(deck, "SGFN" , m_tabdims.getNumSatTables()); + initSimpleTableContainer(deck, "SSFN" , m_tabdims.getNumSatTables()); + initSimpleTableContainer(deck, "MSFN" , m_tabdims.getNumSatTables()); initSimpleTableContainer(deck, "RSVD" , m_eqldims->getNumEquilRegions()); @@ -281,15 +269,15 @@ namespace Opm { } - initSimpleTableContainer(deck, "PVDG", m_tabdims->getNumPVTTables()); - initSimpleTableContainer(deck, "PVDO", m_tabdims->getNumPVTTables()); - initSimpleTableContainer(deck, "PVDS", m_tabdims->getNumPVTTables()); - initSimpleTableContainer(deck, "OILVISCT", m_tabdims->getNumPVTTables()); - initSimpleTableContainer(deck, "WATVISCT", m_tabdims->getNumPVTTables()); + initSimpleTableContainer(deck, "PVDG", m_tabdims.getNumPVTTables()); + initSimpleTableContainer(deck, "PVDO", m_tabdims.getNumPVTTables()); + initSimpleTableContainer(deck, "PVDS", m_tabdims.getNumPVTTables()); + initSimpleTableContainer(deck, "OILVISCT", m_tabdims.getNumPVTTables()); + initSimpleTableContainer(deck, "WATVISCT", m_tabdims.getNumPVTTables()); - initSimpleTableContainer(deck, "PLYADS", m_tabdims->getNumSatTables()); - initSimpleTableContainer(deck, "PLYVISC", m_tabdims->getNumPVTTables()); - initSimpleTableContainer(deck, "PLYDHFLF", m_tabdims->getNumPVTTables()); + initSimpleTableContainer(deck, "PLYADS", m_tabdims.getNumSatTables()); + initSimpleTableContainer(deck, "PLYVISC", m_tabdims.getNumPVTTables()); + initSimpleTableContainer(deck, "PLYDHFLF", m_tabdims.getNumPVTTables()); initPlyrockTables(deck); initPlymaxTables(deck); initGasvisctTables(deck); @@ -316,7 +304,7 @@ namespace Opm { void TableManager::initGasvisctTables(const Deck& deck) { const std::string keywordName = "GASVISCT"; - size_t numTables = m_tabdims->getNumPVTTables(); + size_t numTables = m_tabdims.getNumPVTTables(); if (!deck.hasKeyword(keywordName)) return; // the table is not featured by the deck... @@ -351,7 +339,7 @@ namespace Opm { complainAboutAmbiguousKeyword(deck, keywordName); return; } - size_t numTables = m_tabdims->getNumPVTTables(); + size_t numTables = m_tabdims.getNumPVTTables(); auto& container = forceGetTables(keywordName , numTables); const auto& tableKeyword = deck.getKeyword(keywordName); @@ -373,7 +361,7 @@ namespace Opm { void TableManager::initPlyrockTables(const Deck& deck) { - size_t numTables = m_tabdims->getNumSatTables(); + size_t numTables = m_tabdims.getNumSatTables(); const std::string keywordName = "PLYROCK"; if (!deck.hasKeyword(keywordName)) { return; @@ -505,7 +493,7 @@ namespace Opm { } } - std::shared_ptr TableManager::getTabdims() const { + 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 ec873e262..1c926fac5 100644 --- a/opm/parser/eclipse/EclipseState/Tables/TableManager.hpp +++ b/opm/parser/eclipse/EclipseState/Tables/TableManager.hpp @@ -38,6 +38,7 @@ #include #include +#include #include #include #include @@ -46,7 +47,6 @@ namespace Opm { - class Tabdims; class Eqldims; class Regdims; @@ -59,7 +59,7 @@ namespace Opm { bool hasTables( const std::string& tableName ) const; - std::shared_ptr getTabdims() const; + const Tabdims& getTabdims() const; const TableContainer& getSwofTables() const; const TableContainer& getSgwfnTables() const; @@ -230,8 +230,8 @@ namespace Opm { std::vector m_pvtgTables; std::vector m_pvtoTables; + Tabdims m_tabdims; std::shared_ptr m_regdims; - std::shared_ptr m_tabdims; std::shared_ptr m_eqldims; const bool hasImptvd;// if deck has keyword IMPTVD diff --git a/opm/parser/eclipse/EclipseState/Tables/tests/TabdimsTests.cpp b/opm/parser/eclipse/EclipseState/Tables/tests/TabdimsTests.cpp index 1fa0de25b..1a0c02240 100644 --- a/opm/parser/eclipse/EclipseState/Tables/tests/TabdimsTests.cpp +++ b/opm/parser/eclipse/EclipseState/Tables/tests/TabdimsTests.cpp @@ -22,9 +22,7 @@ #include BOOST_AUTO_TEST_CASE(TEST_CREATE) { - Opm::Tabdims tabdims1(1,2,3,4,5,6); - Opm::Tabdims tabdims2; + Opm::Tabdims tabdims; - BOOST_CHECK_EQUAL( tabdims1.getNumSatNodes() , 3U ); - BOOST_CHECK_EQUAL( tabdims2.getNumSatNodes() , 20U ); + BOOST_CHECK_EQUAL( tabdims.getNumSatNodes() , 20U ); } diff --git a/opm/parser/eclipse/EclipseState/Tables/tests/TableManagerTests.cpp b/opm/parser/eclipse/EclipseState/Tables/tests/TableManagerTests.cpp index fc7e80709..6a6fae288 100644 --- a/opm/parser/eclipse/EclipseState/Tables/tests/TableManagerTests.cpp +++ b/opm/parser/eclipse/EclipseState/Tables/tests/TableManagerTests.cpp @@ -96,7 +96,7 @@ BOOST_AUTO_TEST_CASE( CreateTables ) { auto deck = createSingleRecordDeck(); Opm::TableManager tables(deck); auto tabdims = tables.getTabdims(); - BOOST_CHECK_EQUAL( tabdims->getNumSatTables() , 2 ); + BOOST_CHECK_EQUAL( tabdims.getNumSatTables() , 2 ); BOOST_CHECK( !tables.useImptvd() ); BOOST_CHECK( !tables.useEnptvd() ); } @@ -105,7 +105,7 @@ BOOST_AUTO_TEST_CASE( CreateTablesWithVd ) { auto deck = createSingleRecordDeckWithVd(); Opm::TableManager tables(deck); auto tabdims = tables.getTabdims(); - BOOST_CHECK_EQUAL( tabdims->getNumSatTables() , 2 ); + BOOST_CHECK_EQUAL( tabdims.getNumSatTables() , 2 ); BOOST_CHECK( tables.useImptvd() ); BOOST_CHECK( tables.useEnptvd() ); } diff --git a/opm/parser/eclipse/EclipseState/tests/RunspecTests.cpp b/opm/parser/eclipse/EclipseState/tests/RunspecTests.cpp index 3ec2e3197..ce2dae57a 100644 --- a/opm/parser/eclipse/EclipseState/tests/RunspecTests.cpp +++ b/opm/parser/eclipse/EclipseState/tests/RunspecTests.cpp @@ -81,3 +81,29 @@ BOOST_AUTO_TEST_CASE(ThreePhase) { } + +BOOST_AUTO_TEST_CASE(TABDIMS) { + const std::string input = R"( + RUNSPEC + TABDIMS + 1 * 3 * 5 * / + OIL + GAS + WATER + )"; + + Parser parser; + ParseContext parseContext; + + auto deck = parser.parseString(input, parseContext); + + Runspec runspec( deck ); + const auto& tabdims = runspec.tabdims(); + BOOST_CHECK_EQUAL( tabdims.getNumSatTables( ) , 1 ); + BOOST_CHECK_EQUAL( tabdims.getNumPVTTables( ) , 1 ); + BOOST_CHECK_EQUAL( tabdims.getNumSatNodes( ) , 3 ); + BOOST_CHECK_EQUAL( tabdims.getNumPressureNodes( ) , 20 ); + BOOST_CHECK_EQUAL( tabdims.getNumFIPRegions( ) , 5 ); + BOOST_CHECK_EQUAL( tabdims.getNumRSNodes( ) , 20 ); +} +