changed: avoid using DENSITY from deck in Pvt classes

This commit is contained in:
Arne Morten Kvarving 2020-02-06 10:32:14 +01:00
parent ff5c8eea84
commit ed99a1df1a
7 changed files with 35 additions and 39 deletions

View File

@ -74,11 +74,11 @@ public:
* \brief Sets the pressure-dependent water viscosity and density
* using a table stemming from the Eclipse PVTWSALT keyword.
*/
void initFromDeck(const Deck& deck, const EclipseState& eclState)
void initFromDeck(const Deck&, const EclipseState& eclState)
{
const auto& tableManager = eclState.getTableManager();
size_t numRegions = tableManager.getTabdims().getNumPVTTables();
const auto& densityKeyword = deck.getKeyword("DENSITY");
const auto& densityTable = tableManager.getDensityTable();
formationVolumeTables_.resize(numRegions);
compressibilityTables_.resize(numRegions);
@ -116,10 +116,8 @@ public:
setNumRegions(numPvtwRegions);
for (unsigned regionIdx = 0; regionIdx < numPvtwRegions; ++ regionIdx) {
auto densityRecord = densityKeyword.getRecord(regionIdx);
waterReferenceDensity_[regionIdx] =
densityRecord.getItem("WATER").getSIDouble(0);
waterReferenceDensity_[regionIdx] = densityTable[regionIdx].water;
}
initEnd();

View File

@ -76,20 +76,20 @@ public:
/*!
* \brief Initialize the oil parameters via the data specified by the PVTO ECL keyword.
*/
void initFromDeck(const Deck& deck, const EclipseState& /*eclState*/)
void initFromDeck(const Deck& deck, const EclipseState& eclState)
{
const auto& pvcdoKeyword = deck.getKeyword("PVCDO");
const auto& densityKeyword = deck.getKeyword("DENSITY");
const auto& densityTable = eclState.getTableManager().getDensityTable();
assert(pvcdoKeyword.size() == densityKeyword.size());
assert(pvcdoKeyword.size() == densityTable.size());
size_t numRegions = pvcdoKeyword.size();
setNumRegions(numRegions);
for (unsigned regionIdx = 0; regionIdx < numRegions; ++ regionIdx) {
Scalar rhoRefO = densityKeyword.getRecord(regionIdx).getItem("OIL").getSIDouble(0);
Scalar rhoRefG = densityKeyword.getRecord(regionIdx).getItem("GAS").getSIDouble(0);
Scalar rhoRefW = densityKeyword.getRecord(regionIdx).getItem("WATER").getSIDouble(0);
Scalar rhoRefO = densityTable[regionIdx].oil;
Scalar rhoRefG = densityTable[regionIdx].gas;
Scalar rhoRefW = densityTable[regionIdx].water;
setReferenceDensities(regionIdx, rhoRefO, rhoRefG, rhoRefW);

View File

@ -70,22 +70,20 @@ public:
* \brief Sets the pressure-dependent water viscosity and density
* using a table stemming from the Eclipse PVTW keyword.
*/
void initFromDeck(const Deck& deck, const EclipseState& /*eclState*/)
void initFromDeck(const Deck& deck, const EclipseState& eclState)
{
const auto& pvtwKeyword = deck.getKeyword("PVTW");
const auto& densityKeyword = deck.getKeyword("DENSITY");
const auto& densityTable = eclState.getTableManager().getDensityTable();
assert(pvtwKeyword.size() == densityKeyword.size());
assert(pvtwKeyword.size() == densityTable.size());
size_t numRegions = pvtwKeyword.size();
setNumRegions(numRegions);
for (unsigned regionIdx = 0; regionIdx < numRegions; ++ regionIdx) {
auto pvtwRecord = pvtwKeyword.getRecord(regionIdx);
auto densityRecord = densityKeyword.getRecord(regionIdx);
waterReferenceDensity_[regionIdx] =
densityRecord.getItem("WATER").getSIDouble(0);
waterReferenceDensity_[regionIdx] = densityTable[regionIdx].water;
waterReferencePressure_[regionIdx] =
pvtwRecord.getItem("P_REF").getSIDouble(0);

View File

@ -65,20 +65,20 @@ public:
/*!
* \brief Initialize the oil parameters via the data specified by the PVDO ECL keyword.
*/
void initFromDeck(const Deck& deck, const EclipseState& eclState)
void initFromDeck(const Deck&, const EclipseState& eclState)
{
const auto& pvdoTables = eclState.getTableManager().getPvdoTables();
const auto& densityKeyword = deck.getKeyword("DENSITY");
const auto& densityTable = eclState.getTableManager().getDensityTable();
assert(pvdoTables.size() == densityKeyword.size());
assert(pvdoTables.size() == densityTable.size());
size_t numRegions = pvdoTables.size();
setNumRegions(numRegions);
for (unsigned regionIdx = 0; regionIdx < numRegions; ++ regionIdx) {
Scalar rhoRefO = densityKeyword.getRecord(regionIdx).getItem("OIL").getSIDouble(0);
Scalar rhoRefG = densityKeyword.getRecord(regionIdx).getItem("GAS").getSIDouble(0);
Scalar rhoRefW = densityKeyword.getRecord(regionIdx).getItem("WATER").getSIDouble(0);
Scalar rhoRefO = densityTable[regionIdx].oil;
Scalar rhoRefG = densityTable[regionIdx].gas;
Scalar rhoRefW = densityTable[regionIdx].water;
setReferenceDensities(regionIdx, rhoRefO, rhoRefG, rhoRefW);

View File

@ -72,20 +72,20 @@ public:
*
* This method assumes that the deck features valid DENSITY and PVDG keywords.
*/
void initFromDeck(const Deck& deck, const EclipseState& eclState)
void initFromDeck(const Deck&, const EclipseState& eclState)
{
const auto& pvdgTables = eclState.getTableManager().getPvdgTables();
const auto& densityKeyword = deck.getKeyword("DENSITY");
const auto& densityTable = eclState.getTableManager().getDensityTable();
assert(pvdgTables.size() == densityKeyword.size());
assert(pvdgTables.size() == densityTable.size());
size_t numRegions = pvdgTables.size();
setNumRegions(numRegions);
for (unsigned regionIdx = 0; regionIdx < numRegions; ++ regionIdx) {
Scalar rhoRefO = densityKeyword.getRecord(regionIdx).getItem("OIL").getSIDouble(0);
Scalar rhoRefG = densityKeyword.getRecord(regionIdx).getItem("GAS").getSIDouble(0);
Scalar rhoRefW = densityKeyword.getRecord(regionIdx).getItem("WATER").getSIDouble(0);
Scalar rhoRefO = densityTable[regionIdx].oil;
Scalar rhoRefG = densityTable[regionIdx].gas;
Scalar rhoRefW = densityTable[regionIdx].water;
setReferenceDensities(regionIdx, rhoRefO, rhoRefG, rhoRefW);

View File

@ -94,17 +94,17 @@ public:
void initFromDeck(const Deck& deck, const EclipseState& eclState)
{
const auto& pvtoTables = eclState.getTableManager().getPvtoTables();
const auto& densityKeyword = deck.getKeyword("DENSITY");
const auto& densityTable = eclState.getTableManager().getDensityTable();
assert(pvtoTables.size() == densityKeyword.size());
assert(pvtoTables.size() == densityTable.size());
size_t numRegions = pvtoTables.size();
setNumRegions(numRegions);
for (unsigned regionIdx = 0; regionIdx < numRegions; ++ regionIdx) {
Scalar rhoRefO = densityKeyword.getRecord(regionIdx).getItem("OIL").getSIDouble(0);
Scalar rhoRefG = densityKeyword.getRecord(regionIdx).getItem("GAS").getSIDouble(0);
Scalar rhoRefW = densityKeyword.getRecord(regionIdx).getItem("WATER").getSIDouble(0);
Scalar rhoRefO = densityTable[regionIdx].oil;
Scalar rhoRefG = densityTable[regionIdx].gas;;
Scalar rhoRefW = densityTable[regionIdx].water;
setReferenceDensities(regionIdx, rhoRefO, rhoRefG, rhoRefW);
}

View File

@ -91,17 +91,17 @@ public:
void initFromDeck(const Deck& deck, const EclipseState& eclState)
{
const auto& pvtgTables = eclState.getTableManager().getPvtgTables();
const auto& densityKeyword = deck.getKeyword("DENSITY");
const auto& densityTable = eclState.getTableManager().getDensityTable();
assert(pvtgTables.size() == densityKeyword.size());
assert(pvtgTables.size() == densityTable.size());
size_t numRegions = pvtgTables.size();
setNumRegions(numRegions);
for (unsigned regionIdx = 0; regionIdx < numRegions; ++ regionIdx) {
Scalar rhoRefO = densityKeyword.getRecord(regionIdx).getItem("OIL").getSIDouble(0);
Scalar rhoRefG = densityKeyword.getRecord(regionIdx).getItem("GAS").getSIDouble(0);
Scalar rhoRefW = densityKeyword.getRecord(regionIdx).getItem("WATER").getSIDouble(0);
Scalar rhoRefO = densityTable[regionIdx].oil;
Scalar rhoRefG = densityTable[regionIdx].gas;
Scalar rhoRefW = densityTable[regionIdx].water;
setReferenceDensities(regionIdx, rhoRefO, rhoRefG, rhoRefW);
}