Changes in Tabdims construction:
1. Removed Tabdims(int,int,int, ....) constructor and added
Tabdims(Deck) constructor.
2. Added Tabdims member to Runspec( ) object.
3. Changed std_shared_ptr<Tabdims> to Tabdims member in TableManager.
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
#include <iosfwd>
|
||||
#include <string>
|
||||
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/Tabdims.hpp>
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -26,6 +26,9 @@
|
||||
*/
|
||||
|
||||
#include <opm/parser/eclipse/Parser/ParserKeywords/T.hpp>
|
||||
#include <opm/parser/eclipse/Deck/Deck.hpp>
|
||||
#include <opm/parser/eclipse/Deck/DeckRecord.hpp>
|
||||
#include <opm/parser/eclipse/Deck/DeckKeyword.hpp>
|
||||
|
||||
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<int>(0);
|
||||
m_ntpvt = record.getItem("NTPVT").get<int>(0);
|
||||
m_nssfun = record.getItem("NSSFUN").get<int>(0);
|
||||
m_nppvt = record.getItem("NPPVT").get<int>(0);
|
||||
m_ntfip = record.getItem("NTFIP").get<int>(0);
|
||||
m_nrpvt = record.getItem("NRPVT").get<int>(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
size_t getNumSatTables() const {
|
||||
|
||||
@@ -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<TABDIMS>()) {
|
||||
const auto& keyword = deck.getKeyword<TABDIMS>();
|
||||
const auto& record = keyword.getRecord(0);
|
||||
int ntsfun = record.getItem<TABDIMS::NTSFUN>().get< int >(0);
|
||||
int ntpvt = record.getItem<TABDIMS::NTPVT>().get< int >(0);
|
||||
int nssfun = record.getItem<TABDIMS::NSSFUN>().get< int >(0);
|
||||
int nppvt = record.getItem<TABDIMS::NPPVT>().get< int >(0);
|
||||
int ntfip = record.getItem<TABDIMS::NTFIP>().get< int >(0);
|
||||
int nrpvt = record.getItem<TABDIMS::NRPVT>().get< int >(0);
|
||||
|
||||
m_tabdims = std::make_shared<Tabdims>(ntsfun , ntpvt , nssfun , nppvt , ntfip , nrpvt);
|
||||
} else
|
||||
m_tabdims = std::make_shared<Tabdims>();
|
||||
|
||||
if (deck.hasKeyword<EQLDIMS>()) {
|
||||
const auto& keyword = deck.getKeyword<EQLDIMS>();
|
||||
@@ -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<SwofTable>(deck, "SWOF" , m_tabdims->getNumSatTables());
|
||||
initSimpleTableContainer<SgwfnTable>(deck, "SGWFN", m_tabdims->getNumSatTables());
|
||||
initSimpleTableContainer<SgofTable>(deck, "SGOF" , m_tabdims->getNumSatTables());
|
||||
initSimpleTableContainer<SlgofTable>(deck, "SLGOF" , m_tabdims->getNumSatTables());
|
||||
initSimpleTableContainer<Sof2Table>(deck, "SOF2" , m_tabdims->getNumSatTables());
|
||||
initSimpleTableContainer<Sof3Table>(deck, "SOF3" , m_tabdims->getNumSatTables());
|
||||
initSimpleTableContainer<SwfnTable>(deck, "SWFN" , m_tabdims->getNumSatTables());
|
||||
initSimpleTableContainer<SgfnTable>(deck, "SGFN" , m_tabdims->getNumSatTables());
|
||||
initSimpleTableContainer<SsfnTable>(deck, "SSFN" , m_tabdims->getNumSatTables());
|
||||
initSimpleTableContainer<MsfnTable>(deck, "MSFN" , m_tabdims->getNumSatTables());
|
||||
initSimpleTableContainer<SwofTable>(deck, "SWOF" , m_tabdims.getNumSatTables());
|
||||
initSimpleTableContainer<SgwfnTable>(deck, "SGWFN", m_tabdims.getNumSatTables());
|
||||
initSimpleTableContainer<SgofTable>(deck, "SGOF" , m_tabdims.getNumSatTables());
|
||||
initSimpleTableContainer<SlgofTable>(deck, "SLGOF" , m_tabdims.getNumSatTables());
|
||||
initSimpleTableContainer<Sof2Table>(deck, "SOF2" , m_tabdims.getNumSatTables());
|
||||
initSimpleTableContainer<Sof3Table>(deck, "SOF3" , m_tabdims.getNumSatTables());
|
||||
initSimpleTableContainer<SwfnTable>(deck, "SWFN" , m_tabdims.getNumSatTables());
|
||||
initSimpleTableContainer<SgfnTable>(deck, "SGFN" , m_tabdims.getNumSatTables());
|
||||
initSimpleTableContainer<SsfnTable>(deck, "SSFN" , m_tabdims.getNumSatTables());
|
||||
initSimpleTableContainer<MsfnTable>(deck, "MSFN" , m_tabdims.getNumSatTables());
|
||||
|
||||
|
||||
initSimpleTableContainer<RsvdTable>(deck, "RSVD" , m_eqldims->getNumEquilRegions());
|
||||
@@ -281,15 +269,15 @@ namespace Opm {
|
||||
|
||||
}
|
||||
|
||||
initSimpleTableContainer<PvdgTable>(deck, "PVDG", m_tabdims->getNumPVTTables());
|
||||
initSimpleTableContainer<PvdoTable>(deck, "PVDO", m_tabdims->getNumPVTTables());
|
||||
initSimpleTableContainer<PvdsTable>(deck, "PVDS", m_tabdims->getNumPVTTables());
|
||||
initSimpleTableContainer<OilvisctTable>(deck, "OILVISCT", m_tabdims->getNumPVTTables());
|
||||
initSimpleTableContainer<WatvisctTable>(deck, "WATVISCT", m_tabdims->getNumPVTTables());
|
||||
initSimpleTableContainer<PvdgTable>(deck, "PVDG", m_tabdims.getNumPVTTables());
|
||||
initSimpleTableContainer<PvdoTable>(deck, "PVDO", m_tabdims.getNumPVTTables());
|
||||
initSimpleTableContainer<PvdsTable>(deck, "PVDS", m_tabdims.getNumPVTTables());
|
||||
initSimpleTableContainer<OilvisctTable>(deck, "OILVISCT", m_tabdims.getNumPVTTables());
|
||||
initSimpleTableContainer<WatvisctTable>(deck, "WATVISCT", m_tabdims.getNumPVTTables());
|
||||
|
||||
initSimpleTableContainer<PlyadsTable>(deck, "PLYADS", m_tabdims->getNumSatTables());
|
||||
initSimpleTableContainer<PlyviscTable>(deck, "PLYVISC", m_tabdims->getNumPVTTables());
|
||||
initSimpleTableContainer<PlydhflfTable>(deck, "PLYDHFLF", m_tabdims->getNumPVTTables());
|
||||
initSimpleTableContainer<PlyadsTable>(deck, "PLYADS", m_tabdims.getNumSatTables());
|
||||
initSimpleTableContainer<PlyviscTable>(deck, "PLYVISC", m_tabdims.getNumPVTTables());
|
||||
initSimpleTableContainer<PlydhflfTable>(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<const Tabdims> TableManager::getTabdims() const {
|
||||
const Tabdims& TableManager::getTabdims() const {
|
||||
return m_tabdims;
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/PmiscTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/MsfnTable.hpp>
|
||||
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/Tabdims.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/TableContainer.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/VFPInjTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/VFPProdTable.hpp>
|
||||
@@ -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<const Tabdims> getTabdims() const;
|
||||
const Tabdims& getTabdims() const;
|
||||
|
||||
const TableContainer& getSwofTables() const;
|
||||
const TableContainer& getSgwfnTables() const;
|
||||
@@ -230,8 +230,8 @@ namespace Opm {
|
||||
std::vector<PvtgTable> m_pvtgTables;
|
||||
std::vector<PvtoTable> m_pvtoTables;
|
||||
|
||||
Tabdims m_tabdims;
|
||||
std::shared_ptr<Regdims> m_regdims;
|
||||
std::shared_ptr<Tabdims> m_tabdims;
|
||||
std::shared_ptr<Eqldims> m_eqldims;
|
||||
|
||||
const bool hasImptvd;// if deck has keyword IMPTVD
|
||||
|
||||
@@ -22,9 +22,7 @@
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/Tabdims.hpp>
|
||||
|
||||
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 );
|
||||
}
|
||||
|
||||
@@ -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() );
|
||||
}
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user