From 637a3431fdac9206c93745657b14ac18db8dcfc6 Mon Sep 17 00:00:00 2001 From: Cintia Goncalves Machado Date: Thu, 26 Aug 2021 18:33:49 +0200 Subject: [PATCH] outputFSIP --- ebos/eclgenericoutputblackoilmodule.cc | 3 +++ ebos/ecloutputblackoilmodule.hh | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ebos/eclgenericoutputblackoilmodule.cc b/ebos/eclgenericoutputblackoilmodule.cc index 29af10664..2cae2709d 100644 --- a/ebos/eclgenericoutputblackoilmodule.cc +++ b/ebos/eclgenericoutputblackoilmodule.cc @@ -57,6 +57,7 @@ std::string EclString(Opm::Inplace::Phase phase) { case Opm::Inplace::Phase::WaterResVolume: return "WIPR"; case Opm::Inplace::Phase::OilResVolume: return "OIPR"; case Opm::Inplace::Phase::GasResVolume: return "GIPR"; + case Opm::Inplace::Phase::SALT: return "SIP"; default: throw std::logic_error("Phase not recognized"); } } @@ -1051,6 +1052,7 @@ fipUnitConvert_(std::unordered_map& fip) const {Inplace::Phase::WaterResVolume, M::volume}, {Inplace::Phase::OilResVolume, M::volume}, {Inplace::Phase::GasResVolume, M::volume}, + {Inplace::Phase::SALT, M::mass}, }; for (auto& [phase, value] : fip) { @@ -1621,6 +1623,7 @@ updateSummaryRegionValues(const Inplace& inplace, inplace.get(Inplace::Phase::PoreVolume), false); } + } // The region summary vectors should loop through the FIPxxx regions to diff --git a/ebos/ecloutputblackoilmodule.hh b/ebos/ecloutputblackoilmodule.hh index 309a2cd1c..62d6adbe9 100644 --- a/ebos/ecloutputblackoilmodule.hh +++ b/ebos/ecloutputblackoilmodule.hh @@ -675,7 +675,7 @@ private: continue; const double b = getValue(fs.invB(phaseIdx)); - const double s = getValue(fs.saturation(phaseIdx)); + const double s = getValue(fs.saturation(phaseIdx)); fipr[phaseIdx] = s * pv; fip[phaseIdx] = b * fipr[phaseIdx]; } @@ -693,6 +693,9 @@ private: this->fip_[Inplace::Phase::GasResVolume][globalDofIdx] = fipr[gasPhaseIdx]; if (FluidSystem::phaseIsActive(waterPhaseIdx) && !this->fip_[Inplace::Phase::WaterResVolume].empty()) this->fip_[Inplace::Phase::WaterResVolume][globalDofIdx] = fipr[waterPhaseIdx]; + + if (FluidSystem::phaseIsActive(waterPhaseIdx) && !this->fip_[Inplace::Phase::SALT].empty()) + this->fip_[Inplace::Phase::SALT][globalDofIdx] = fipr[waterPhaseIdx] * fs.saltConcentration().value(); // Store the pure oil and gas Fip if (FluidSystem::phaseIsActive(oilPhaseIdx) && !this->fip_[Inplace::Phase::OilInLiquidPhase].empty())