Moved VFP Tables EclipseState -> Tables
This commit is contained in:
@@ -175,16 +175,6 @@ namespace Opm {
|
||||
}
|
||||
|
||||
|
||||
const std::map<int, VFPProdTable>& EclipseState::getVFPProdTables() const {
|
||||
return m_vfpprodTables;
|
||||
}
|
||||
|
||||
const std::map<int, VFPInjTable>& EclipseState::getVFPInjTables() const {
|
||||
return m_vfpinjTables;
|
||||
}
|
||||
|
||||
|
||||
|
||||
ScheduleConstPtr EclipseState::getSchedule() const {
|
||||
return schedule;
|
||||
}
|
||||
@@ -229,10 +219,6 @@ namespace Opm {
|
||||
|
||||
void EclipseState::initTables(DeckConstPtr deck) {
|
||||
m_tables = std::make_shared<const Tables>( *deck );
|
||||
initVFPProdTables(deck, m_vfpprodTables);
|
||||
initVFPInjTables(deck, m_vfpinjTables);
|
||||
|
||||
|
||||
initFullTables(deck, "PVTG", m_pvtgTables);
|
||||
initFullTables(deck, "PVTO", m_pvtoTables);
|
||||
}
|
||||
@@ -428,57 +414,6 @@ namespace Opm {
|
||||
|
||||
|
||||
|
||||
void EclipseState::initVFPProdTables(DeckConstPtr deck,
|
||||
std::map<int, VFPProdTable>& tableMap) {
|
||||
if (!deck->hasKeyword(ParserKeywords::VFPPROD::keywordName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
int num_tables = deck->numKeywords(ParserKeywords::VFPPROD::keywordName);
|
||||
const auto& keywords = deck->getKeywordList<ParserKeywords::VFPPROD>();
|
||||
const auto unit_system = deck->getActiveUnitSystem();
|
||||
for (int i=0; i<num_tables; ++i) {
|
||||
const auto& keyword = keywords[i];
|
||||
|
||||
VFPProdTable table;
|
||||
table.init(keyword, unit_system);
|
||||
|
||||
//Check that the table in question has a unique ID
|
||||
int table_id = table.getTableNum();
|
||||
if (tableMap.find(table_id) == tableMap.end()) {
|
||||
tableMap.insert(std::make_pair(table_id, std::move(table)));
|
||||
}
|
||||
else {
|
||||
throw std::invalid_argument("Duplicate table numbers for VFPPROD found");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EclipseState::initVFPInjTables(DeckConstPtr deck,
|
||||
std::map<int, VFPInjTable>& tableMap) {
|
||||
if (!deck->hasKeyword(ParserKeywords::VFPINJ::keywordName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
int num_tables = deck->numKeywords(ParserKeywords::VFPINJ::keywordName);
|
||||
const auto& keywords = deck->getKeywordList<ParserKeywords::VFPINJ>();
|
||||
const auto unit_system = deck->getActiveUnitSystem();
|
||||
for (int i=0; i<num_tables; ++i) {
|
||||
const auto& keyword = keywords[i];
|
||||
|
||||
VFPInjTable table;
|
||||
table.init(keyword, unit_system);
|
||||
|
||||
//Check that the table in question has a unique ID
|
||||
int table_id = table.getTableNum();
|
||||
if (tableMap.find(table_id) == tableMap.end()) {
|
||||
tableMap.insert(std::make_pair(table_id, std::move(table)));
|
||||
}
|
||||
else {
|
||||
throw std::invalid_argument("Duplicate table numbers for VFPINJ found");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool EclipseState::supportsGridProperty(const std::string& keyword, int enabledTypes) const {
|
||||
bool result = false;
|
||||
|
||||
@@ -36,8 +36,6 @@
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/Tables.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/PvtgTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/PvtoTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/VFPProdTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/VFPInjTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/InitConfig/InitConfig.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/SimulationConfig/SimulationConfig.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/IOConfig/IOConfig.hpp>
|
||||
@@ -95,8 +93,6 @@ namespace Opm {
|
||||
// not present in the deck, the corresponding vector is of size zero.
|
||||
const std::vector<PvtgTable>& getPvtgTables() const;
|
||||
const std::vector<PvtoTable>& getPvtoTables() const;
|
||||
const std::map<int, VFPProdTable>& getVFPProdTables() const;
|
||||
const std::map<int, VFPInjTable>& getVFPInjTables() const;
|
||||
size_t getNumPhases() const;
|
||||
|
||||
// the unit system used by the deck. note that it is rarely needed to convert
|
||||
@@ -174,11 +170,6 @@ namespace Opm {
|
||||
}
|
||||
}
|
||||
|
||||
void initVFPProdTables(DeckConstPtr deck,
|
||||
std::map<int, VFPProdTable>& tableMap);
|
||||
|
||||
void initVFPInjTables(DeckConstPtr deck,
|
||||
std::map<int, VFPInjTable>& tableMap);
|
||||
|
||||
void setMULTFLT(std::shared_ptr<const Section> section) const;
|
||||
void initMULTREGT(DeckConstPtr deck);
|
||||
@@ -215,8 +206,6 @@ namespace Opm {
|
||||
std::shared_ptr<const Tables> m_tables;
|
||||
std::vector<PvtgTable> m_pvtgTables;
|
||||
std::vector<PvtoTable> m_pvtoTables;
|
||||
std::map<int, VFPProdTable> m_vfpprodTables;
|
||||
std::map<int, VFPInjTable> m_vfpinjTables;
|
||||
|
||||
std::set<enum Phase::PhaseEnum> phases;
|
||||
std::string m_title;
|
||||
|
||||
@@ -51,11 +51,13 @@ namespace Opm {
|
||||
initSimpleTables(deck, "RSVD", m_rsvdTables);
|
||||
initSimpleTables(deck, "RVVD", m_rvvdTables);
|
||||
|
||||
|
||||
initPlyshlogTables(deck, "PLYSHLOG", m_plyshlogTables);
|
||||
initRocktabTables(deck);
|
||||
initRTempTables(deck);
|
||||
initGasvisctTables(deck, "GASVISCT", m_gasvisctTables);
|
||||
|
||||
initVFPProdTables(deck, m_vfpprodTables);
|
||||
initVFPInjTables(deck, m_vfpinjTables);
|
||||
}
|
||||
|
||||
|
||||
@@ -196,6 +198,59 @@ namespace Opm {
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Tables::initVFPProdTables(const Deck& deck,
|
||||
std::map<int, VFPProdTable>& tableMap) {
|
||||
if (!deck.hasKeyword(ParserKeywords::VFPPROD::keywordName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
int num_tables = deck.numKeywords(ParserKeywords::VFPPROD::keywordName);
|
||||
const auto& keywords = deck.getKeywordList<ParserKeywords::VFPPROD>();
|
||||
const auto unit_system = deck.getActiveUnitSystem();
|
||||
for (int i=0; i<num_tables; ++i) {
|
||||
const auto& keyword = keywords[i];
|
||||
|
||||
VFPProdTable table;
|
||||
table.init(keyword, unit_system);
|
||||
|
||||
//Check that the table in question has a unique ID
|
||||
int table_id = table.getTableNum();
|
||||
if (tableMap.find(table_id) == tableMap.end()) {
|
||||
tableMap.insert(std::make_pair(table_id, std::move(table)));
|
||||
}
|
||||
else {
|
||||
throw std::invalid_argument("Duplicate table numbers for VFPPROD found");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Tables::initVFPInjTables(const Deck& deck,
|
||||
std::map<int, VFPInjTable>& tableMap) {
|
||||
if (!deck.hasKeyword(ParserKeywords::VFPINJ::keywordName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
int num_tables = deck.numKeywords(ParserKeywords::VFPINJ::keywordName);
|
||||
const auto& keywords = deck.getKeywordList<ParserKeywords::VFPINJ>();
|
||||
const auto unit_system = deck.getActiveUnitSystem();
|
||||
for (int i=0; i<num_tables; ++i) {
|
||||
const auto& keyword = keywords[i];
|
||||
|
||||
VFPInjTable table;
|
||||
table.init(keyword, unit_system);
|
||||
|
||||
//Check that the table in question has a unique ID
|
||||
int table_id = table.getTableNum();
|
||||
if (tableMap.find(table_id) == tableMap.end()) {
|
||||
tableMap.insert(std::make_pair(table_id, std::move(table)));
|
||||
}
|
||||
else {
|
||||
throw std::invalid_argument("Duplicate table numbers for VFPINJ found");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::shared_ptr<const Tabdims> Tables::getTabdims() const {
|
||||
return m_tabdims;
|
||||
}
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/EnptvdTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/ImkrvdTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/ImptvdTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/VFPProdTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/VFPInjTable.hpp>
|
||||
|
||||
|
||||
namespace Opm {
|
||||
@@ -89,6 +91,8 @@ namespace Opm {
|
||||
const std::vector<ImptvdTable>& getImptvdTables() const;
|
||||
const std::vector<RsvdTable>& getRsvdTables() const;
|
||||
const std::vector<RvvdTable>& getRvvdTables() const;
|
||||
const std::map<int, VFPProdTable>& getVFPProdTables() const;
|
||||
const std::map<int, VFPInjTable>& getVFPInjTables() const;
|
||||
private:
|
||||
void complainAboutAmbiguousKeyword(const Deck& deck, const std::string& keywordName) const;
|
||||
|
||||
@@ -104,6 +108,13 @@ namespace Opm {
|
||||
std::vector<PlyshlogTable>& tableVector);
|
||||
|
||||
|
||||
void initVFPProdTables(const Deck& deck,
|
||||
std::map<int, VFPProdTable>& tableMap);
|
||||
|
||||
void initVFPInjTables(const Deck& deck,
|
||||
std::map<int, VFPInjTable>& tableMap);
|
||||
|
||||
|
||||
template <class TableType>
|
||||
void initSimpleTables(const Deck& deck,
|
||||
const std::string& keywordName,
|
||||
@@ -135,6 +146,8 @@ namespace Opm {
|
||||
}
|
||||
}
|
||||
|
||||
std::map<int, VFPProdTable> m_vfpprodTables;
|
||||
std::map<int, VFPInjTable> m_vfpinjTables;
|
||||
std::vector<PvdsTable> m_pvdsTables;
|
||||
std::vector<SwfnTable> m_swfnTables;
|
||||
std::vector<SgfnTable> m_sgfnTables;
|
||||
|
||||
Reference in New Issue
Block a user