diff --git a/opm/autodiff/BlackoilSolventModel.hpp b/opm/autodiff/BlackoilSolventModel.hpp index f14f64671..2c56f4fbe 100644 --- a/opm/autodiff/BlackoilSolventModel.hpp +++ b/opm/autodiff/BlackoilSolventModel.hpp @@ -91,6 +91,10 @@ namespace Opm { using Base::wellModel; + std::vector > + computeFluidInPlace(const ReservoirState& x, + const std::vector& fipnum); + protected: // --------- Types and enums --------- @@ -229,7 +233,6 @@ namespace Opm { const ADB& so, const ADB& sg, const ADB& ss) const; - }; diff --git a/opm/autodiff/BlackoilSolventModel_impl.hpp b/opm/autodiff/BlackoilSolventModel_impl.hpp index 9faddde01..33b46c1d7 100644 --- a/opm/autodiff/BlackoilSolventModel_impl.hpp +++ b/opm/autodiff/BlackoilSolventModel_impl.hpp @@ -1087,6 +1087,26 @@ namespace Opm { } + + + template + std::vector > + BlackoilSolventModel:: + computeFluidInPlace(const ReservoirState& x, + const std::vector& fipnum) + { + if (b_eff_[0].size() == 0) { + // A hack to avoid trouble for initial fluid in place, due to usage of b_eff_. + WellState xw, xwdummy; + xw.init(&wells(), x, xwdummy); + SolutionState solstate = variableState(x, xw); + computeEffectiveProperties(solstate); + } + return Base::computeFluidInPlace(x, fipnum); + } + + + }