Moved VFP Tables EclipseState -> Tables

This commit is contained in:
Joakim Hove
2015-08-31 16:36:07 +02:00
parent 9e79fa2e41
commit 0250a9408c
4 changed files with 69 additions and 77 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;