Adds tablemanager scheme for aqutab + modifications to aquct and aquancon parsing

This commit is contained in:
Rohith Nair
2017-12-22 10:54:59 +01:00
parent 6361c12c65
commit 9e3e41b79a
5 changed files with 40 additions and 8 deletions

View File

@@ -44,14 +44,14 @@
#include <opm/parser/eclipse/EclipseState/Tables/TableContainer.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/VFPInjTable.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/VFPProdTable.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/Aqudims.hpp>
#include <opm/parser/eclipse/Parser/MessageContainer.hpp>
namespace Opm {
class Eqldims;
class Regdims;
class TableManager {
public:
explicit TableManager( const Deck& deck );
@@ -62,6 +62,7 @@ namespace Opm {
const Tabdims& getTabdims() const;
const Eqldims& getEqldims() const;
const Aqudims& getAqudims() const;
/*
WIll return max{ Tabdims::NTFIP , Regdims::NTFIP }.
@@ -99,6 +100,7 @@ namespace Opm {
const TableContainer& getPlymaxTables() const;
const TableContainer& getPlyrockTables() const;
const TableContainer& getPlyshlogTables() const;
const TableContainer& getAqutabTables() const;
const TableContainer& getSorwmisTables() const;
const TableContainer& getSgcwmisTables() const;
@@ -301,11 +303,13 @@ namespace Opm {
Tabdims m_tabdims;
std::shared_ptr<Regdims> m_regdims;
std::shared_ptr<Eqldims> m_eqldims;
Aqudims m_aqudims;
const bool hasImptvd;// if deck has keyword IMPTVD
const bool hasEnptvd;// if deck has keyword ENPTVD
const bool hasEqlnum;// if deck has keyword EQLNUM
const JFunc m_jfunc;
MessageContainer m_messages;

View File

@@ -28,6 +28,7 @@
#include <opm/parser/eclipse/Parser/ParserKeywords/P.hpp>
#include <opm/parser/eclipse/Parser/ParserKeywords/T.hpp>
#include <opm/parser/eclipse/Parser/ParserKeywords/V.hpp>
#include <opm/parser/eclipse/Parser/ParserKeywords/A.hpp>
#include <opm/parser/eclipse/EclipseState/Schedule/ScheduleEnums.hpp> // Phase::PhaseEnum
#include <opm/parser/eclipse/EclipseState/Tables/EnkrvdTable.hpp>
@@ -68,12 +69,13 @@
#include <opm/parser/eclipse/EclipseState/Tables/SwofTable.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/TableContainer.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/WatvisctTable.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/AqutabTable.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/JFunc.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/Tabdims.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/Eqldims.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/Regdims.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/Aqudims.hpp>
#include <opm/parser/eclipse/Units/Units.hpp>
@@ -82,6 +84,7 @@ namespace Opm {
TableManager::TableManager( const Deck& deck )
:
m_tabdims( Tabdims(deck)),
m_aqudims( Aqudims(deck)),
hasImptvd (deck.hasKeyword("IMPTVD")),
hasEnptvd (deck.hasKeyword("ENPTVD")),
hasEqlnum (deck.hasKeyword("EQLNUM")),
@@ -222,6 +225,7 @@ namespace Opm {
addTables( "RSVD", m_eqldims->getNumEquilRegions());
addTables( "RVVD", m_eqldims->getNumEquilRegions());
addTables( "AQUTAB", m_aqudims.getNumInfluenceTablesCT());
{
size_t numMiscibleTables = ParserKeywords::MISCIBLE::NTMISC::defaultValue;
if (deck.hasKeyword<ParserKeywords::MISCIBLE>()) {
@@ -278,6 +282,7 @@ namespace Opm {
initSimpleTableContainer<RsvdTable>(deck, "RSVD" , m_eqldims->getNumEquilRegions());
initSimpleTableContainer<RvvdTable>(deck, "RVVD" , m_eqldims->getNumEquilRegions());
initSimpleTableContainer<AqutabTable>(deck, "AQUTAB" , m_aqudims.getNumInfluenceTablesCT());
{
size_t numEndScaleTables = ParserKeywords::ENDSCALE::NUM_TABLES::defaultValue;
@@ -549,6 +554,10 @@ namespace Opm {
const Eqldims& TableManager::getEqldims() const {
return *m_eqldims;
}
const Aqudims& TableManager::getAqudims() const {
return m_aqudims;
}
/*
const std::vector<SwofTable>& TableManager::getSwofTables() const {
@@ -682,6 +691,10 @@ namespace Opm {
const TableContainer& TableManager::getPlyshlogTables() const {
return getTables("PLYSHLOG");
}
const TableContainer& TableManager::getAqutabTables() const {
return getTables("AQUTAB");
}
const std::vector<PvtgTable>& TableManager::getPvtgTables() const {
return m_pvtgTables;

View File

@@ -70,6 +70,7 @@
#include <opm/parser/eclipse/EclipseState/Tables/SwofTable.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/TableContainer.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/WatvisctTable.hpp>
#include <opm/parser/eclipse/EclipseState/Tables/AqutabTable.hpp>
namespace Opm {
@@ -801,6 +802,20 @@ const TableColumn& RvvdTable::getRvColumn() const {
return SimpleTable::getColumn(1);
}
AqutabTable::AqutabTable( const DeckItem& item ) {
m_schema.addColumn( ColumnSchema( "TD" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE ) );
m_schema.addColumn( ColumnSchema( "PD" , Table::RANDOM , Table::DEFAULT_LINEAR ) );
SimpleTable::init(item);
}
const TableColumn& AqutabTable::getTimeColumn() const {
return SimpleTable::getColumn(0);
}
const TableColumn& AqutabTable::getPressureColumn() const {
return SimpleTable::getColumn(1);
}
EnkrvdTable::EnkrvdTable( const DeckItem& item ) {
m_schema.addColumn( ColumnSchema( "DEPTH" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE ) );
m_schema.addColumn( ColumnSchema( "KRWMAX", Table::RANDOM , Table::DEFAULT_LINEAR ) );

View File

@@ -9,7 +9,7 @@
{"name" : "K2" , "value_type" : "INT"},
{"name" : "FACE" , "value_type" : "STRING"},
{"name" : "INFLUX_COEFF" , "value_type" : "DOUBLE" , "dimension" : "Length*Length"},
{"name" : "INFLUX_MULT" , "value_type" : "DOUBLE" , "default_value" : 1.0},
{"name" : "INFLUX_MULT" , "value_type" : "DOUBLE" , "dimension" : "1" , "default_value" : 1.0},
{"name" : "CONNECT_ADJOINING_ACTIVE_CELL" , "value_type" : "STRING" , "default_value" : "NO"}]}

View File

@@ -4,11 +4,11 @@
{"name" : "DAT_DEPTH" , "value_type" : "DOUBLE", "dimension" : "Length"},
{"name" : "P_INI" , "value_type" : "DOUBLE", "dimension" : "Pressure"},
{"name" : "PERM_AQ" , "value_type" : "DOUBLE", "dimension" : "Permeability"},
{"name" : "PORO_AQ" , "value_type" : "DOUBLE", "default" : 1.0},
{"name" : "C_T" , "value_type" : "DOUBLE"},
{"name" : "PORO_AQ" , "value_type" : "DOUBLE", "dimension" : "1" , "default" : 1.0},
{"name" : "C_T" , "value_type" : "DOUBLE", "dimension" : "1/Pressure"},
{"name" : "RAD" , "value_type" : "DOUBLE", "dimension" : "Length"},
{"name" : "THICKNESS_AQ" , "value_type" : "DOUBLE"},
{"name" : "INFLUENCE_ANGLE" , "value_type" : "DOUBLE", "default" : 360.0},
{"name" : "THICKNESS_AQ" , "value_type" : "DOUBLE", "dimension" : "Length"},
{"name" : "INFLUENCE_ANGLE" , "value_type" : "DOUBLE", "dimension" : "1" , "default" : 360.0},
{"name" : "TABLE_NUM_WATER_PRESS" , "value_type" : "INT", "default" : 1},
{"name" : "TABLE_NUM_INFLUENCE_FN" , "value_type" : "INT", "default" : 1},
{"name" : "INI_SALT" , "value_type" : "DOUBLE", "default" : 0.0},