From 2c270cb4f3cd740e613e1583820cb27d32c9f96e Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 3 Mar 2020 09:22:20 +0100 Subject: [PATCH] changed: lessen deck usage setting up BlackoilFluidSystem --- .../fluidsystems/BlackOilFluidSystem.hpp | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/opm/material/fluidsystems/BlackOilFluidSystem.hpp b/opm/material/fluidsystems/BlackOilFluidSystem.hpp index ea8ecf8d7..0ea5ceb99 100644 --- a/opm/material/fluidsystems/BlackOilFluidSystem.hpp +++ b/opm/material/fluidsystems/BlackOilFluidSystem.hpp @@ -40,6 +40,12 @@ #include #include +#if HAVE_ECL_INPUT +#include +#include +#include +#endif + #include #include #include @@ -177,24 +183,25 @@ public: */ static void initFromDeck(const Deck& deck, const EclipseState& eclState) { - auto densityKeyword = deck.getKeyword("DENSITY"); - size_t numRegions = densityKeyword.size(); + const auto& densityTable = eclState.getTableManager().getDensityTable(); + size_t numRegions = densityTable.size(); initBegin(numRegions); numActivePhases_ = 0; std::fill_n(&phaseIsActive_[0], numPhases, false); - if (deck.hasKeyword("OIL")) { + + if (eclState.runspec().phases().active(Phase::OIL)) { phaseIsActive_[oilPhaseIdx] = true; ++ numActivePhases_; } - if (deck.hasKeyword("GAS")) { + if (eclState.runspec().phases().active(Phase::GAS)) { phaseIsActive_[gasPhaseIdx] = true; ++ numActivePhases_; } - if (deck.hasKeyword("WATER")) { + if (eclState.runspec().phases().active(Phase::WATER)) { phaseIsActive_[waterPhaseIdx] = true; ++ numActivePhases_; } @@ -214,15 +221,14 @@ public: // this fluidsystem only supports two or three phases assert(numActivePhases_ >= 1 && numActivePhases_ <= 3); - setEnableDissolvedGas(deck.hasKeyword("DISGAS")); - setEnableVaporizedOil(deck.hasKeyword("VAPOIL")); + setEnableDissolvedGas(eclState.getSimulationConfig().hasDISGAS()); + setEnableVaporizedOil(eclState.getSimulationConfig().hasVAPOIL()); // set the reference densities of all PVT regions for (unsigned regionIdx = 0; regionIdx < numRegions; ++regionIdx) { - const auto& densityRecord = densityKeyword.getRecord(regionIdx); - setReferenceDensities(densityRecord.getItem("OIL").getSIDouble(0), - densityRecord.getItem("WATER").getSIDouble(0), - densityRecord.getItem("GAS").getSIDouble(0), + setReferenceDensities(densityTable[regionIdx].oil, + densityTable[regionIdx].water, + densityTable[regionIdx].gas, regionIdx); }