From 3ffd6594f2f9228f8a1232862f53941bd8caacc3 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Thu, 30 Jan 2025 16:37:05 +0100 Subject: [PATCH] OutputBlackoilModule: move updateInplaceVolumesSurface to FIPContainer --- opm/simulators/flow/FIPContainer.cpp | 37 ++++++++++++++++++++ opm/simulators/flow/FIPContainer.hpp | 4 +++ opm/simulators/flow/OutputBlackoilModule.hpp | 37 +------------------- 3 files changed, 42 insertions(+), 36 deletions(-) diff --git a/opm/simulators/flow/FIPContainer.cpp b/opm/simulators/flow/FIPContainer.cpp index 0f6731857..9a5b21b07 100644 --- a/opm/simulators/flow/FIPContainer.cpp +++ b/opm/simulators/flow/FIPContainer.cpp @@ -184,6 +184,43 @@ assignGasWater(const unsigned globalDofIdx, } } +template +void +FIPContainer:: +assignVolumesSurface(const unsigned globalDofIdx, + const std::array& fip) +{ + if (FluidSystem::phaseIsActive(oilPhaseIdx) && + !this->fip_[Inplace::Phase::OIL].empty()) + { + this->fip_[Inplace::Phase::OIL][globalDofIdx] = fip[oilPhaseIdx]; + } + + if (FluidSystem::phaseIsActive(oilPhaseIdx) && + !this->fip_[Inplace::Phase::OilInLiquidPhase].empty()) + { + this->fip_[Inplace::Phase::OilInLiquidPhase][globalDofIdx] = fip[oilPhaseIdx]; + } + + if (FluidSystem::phaseIsActive(gasPhaseIdx) && + !this->fip_[Inplace::Phase::GAS].empty()) + { + this->fip_[Inplace::Phase::GAS][globalDofIdx] = fip[gasPhaseIdx]; + } + + if (FluidSystem::phaseIsActive(gasPhaseIdx) && + !this->fip_[Inplace::Phase::GasInGasPhase].empty()) + { + this->fip_[Inplace::Phase::GasInGasPhase][globalDofIdx] = fip[gasPhaseIdx]; + } + + if (FluidSystem::phaseIsActive(waterPhaseIdx) && + !this->fip_[Inplace::Phase::WATER].empty()) + { + this->fip_[Inplace::Phase::WATER][globalDofIdx] = fip[waterPhaseIdx]; + } +} + template using FS = BlackOilFluidSystem; #define INSTANTIATE_TYPE(T) \ diff --git a/opm/simulators/flow/FIPContainer.hpp b/opm/simulators/flow/FIPContainer.hpp index e874cdff9..36fd71166 100644 --- a/opm/simulators/flow/FIPContainer.hpp +++ b/opm/simulators/flow/FIPContainer.hpp @@ -44,6 +44,7 @@ public: using FIPMap = std::unordered_map>; static constexpr auto numPhases = FluidSystem::numPhases; + static constexpr auto gasPhaseIdx = FluidSystem::gasPhaseIdx; static constexpr auto oilPhaseIdx = FluidSystem::oilPhaseIdx; static constexpr auto waterPhaseIdx = FluidSystem::waterPhaseIdx; @@ -77,6 +78,9 @@ public: const Scalar gasInPlaceWater, const Scalar waterInPlaceGas); + void assignVolumesSurface(const unsigned globalDofIdx, + const std::array& fip); + private: FIPMap& fip_; std::size_t bufferSize_ = 0; diff --git a/opm/simulators/flow/OutputBlackoilModule.hpp b/opm/simulators/flow/OutputBlackoilModule.hpp index 4386c6bef..a34bc3d08 100644 --- a/opm/simulators/flow/OutputBlackoilModule.hpp +++ b/opm/simulators/flow/OutputBlackoilModule.hpp @@ -1483,7 +1483,7 @@ private: fip [phaseIdx] = b * fipr[phaseIdx]; } - this->updateInplaceVolumesSurface(globalDofIdx, fip); + this->fipC_.assignVolumesSurface(globalDofIdx, fip); this->updateInplaceVolumesReservoir(globalDofIdx, fs, fipr); if (FluidSystem::phaseIsActive(oilPhaseIdx) && @@ -1527,41 +1527,6 @@ private: } } - template - void updateInplaceVolumesSurface(const unsigned globalDofIdx, - const FIPArray& fip) - { - if (FluidSystem::phaseIsActive(oilPhaseIdx) && - !this->fip_[Inplace::Phase::OIL].empty()) - { - this->fip_[Inplace::Phase::OIL][globalDofIdx] = fip[oilPhaseIdx]; - } - - if (FluidSystem::phaseIsActive(oilPhaseIdx) && - !this->fip_[Inplace::Phase::OilInLiquidPhase].empty()) - { - this->fip_[Inplace::Phase::OilInLiquidPhase][globalDofIdx] = fip[oilPhaseIdx]; - } - - if (FluidSystem::phaseIsActive(gasPhaseIdx) && - !this->fip_[Inplace::Phase::GAS].empty()) - { - this->fip_[Inplace::Phase::GAS][globalDofIdx] = fip[gasPhaseIdx]; - } - - if (FluidSystem::phaseIsActive(gasPhaseIdx) && - !this->fip_[Inplace::Phase::GasInGasPhase].empty()) - { - this->fip_[Inplace::Phase::GasInGasPhase][globalDofIdx] = fip[gasPhaseIdx]; - } - - if (FluidSystem::phaseIsActive(waterPhaseIdx) && - !this->fip_[Inplace::Phase::WATER].empty()) - { - this->fip_[Inplace::Phase::WATER][globalDofIdx] = fip[waterPhaseIdx]; - } - } - template void updateInplaceVolumesReservoir(const unsigned globalDofIdx, const FluidState& fs,