From a14f5392ee98d09cddddddd2cae43f77d748f36e Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Mon, 6 Feb 2017 16:51:22 +0100 Subject: [PATCH] fixed: pass the fipnum data into the adaptive timer stepper summary substep reports requires FIP data --- opm/autodiff/BlackoilModelEbos.hpp | 8 ++++++++ opm/autodiff/SimulatorBase_impl.hpp | 3 ++- opm/autodiff/SimulatorFullyImplicitBlackoilEbos.hpp | 3 ++- opm/autodiff/SimulatorFullyImplicitBlackoilOutput.cpp | 5 +++++ opm/autodiff/SimulatorFullyImplicitBlackoilOutput.hpp | 2 ++ opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.cpp | 5 +++++ opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.hpp | 2 ++ 7 files changed, 26 insertions(+), 2 deletions(-) diff --git a/opm/autodiff/BlackoilModelEbos.hpp b/opm/autodiff/BlackoilModelEbos.hpp index c3d74cf77..1ad40735c 100644 --- a/opm/autodiff/BlackoilModelEbos.hpp +++ b/opm/autodiff/BlackoilModelEbos.hpp @@ -1005,6 +1005,14 @@ namespace Opm { return fluid_.numPhases(); } + /// Wrapper required due to not following generic API + template + std::vector > + computeFluidInPlace(const T&, const std::vector& fipnum) const + { + return computeFluidInPlace(fipnum); + } + std::vector > computeFluidInPlace(const std::vector& fipnum) const { diff --git a/opm/autodiff/SimulatorBase_impl.hpp b/opm/autodiff/SimulatorBase_impl.hpp index f2b505847..d3eb3e994 100644 --- a/opm/autodiff/SimulatorBase_impl.hpp +++ b/opm/autodiff/SimulatorBase_impl.hpp @@ -232,7 +232,8 @@ namespace Opm // \Note: The report steps are met in any case // \Note: The sub stepping will require a copy of the state variables if( adaptiveTimeStepping ) { - report += adaptiveTimeStepping->step( timer, *solver, state, well_state, output_writer_ ); + report += adaptiveTimeStepping->step( timer, *solver, state, well_state, output_writer_, + output_writer_.requireFIPNUM() ? &fipnum : nullptr ); } else { // solve for complete report step diff --git a/opm/autodiff/SimulatorFullyImplicitBlackoilEbos.hpp b/opm/autodiff/SimulatorFullyImplicitBlackoilEbos.hpp index fe0a6a936..871062fa0 100644 --- a/opm/autodiff/SimulatorFullyImplicitBlackoilEbos.hpp +++ b/opm/autodiff/SimulatorFullyImplicitBlackoilEbos.hpp @@ -282,7 +282,8 @@ public: // \Note: The report steps are met in any case // \Note: The sub stepping will require a copy of the state variables if( adaptiveTimeStepping ) { - report += adaptiveTimeStepping->step( timer, *solver, state, well_state, output_writer_ ); + report += adaptiveTimeStepping->step( timer, *solver, state, well_state, output_writer_, + output_writer_.requireFIPNUM() ? &fipnum : nullptr ); } else { // solve for complete report step diff --git a/opm/autodiff/SimulatorFullyImplicitBlackoilOutput.cpp b/opm/autodiff/SimulatorFullyImplicitBlackoilOutput.cpp index 84f1bc130..5899e88d3 100644 --- a/opm/autodiff/SimulatorFullyImplicitBlackoilOutput.cpp +++ b/opm/autodiff/SimulatorFullyImplicitBlackoilOutput.cpp @@ -459,4 +459,9 @@ namespace Opm const auto& initconfig = eclipseState_.getInitConfig(); return initconfig.restartRequested(); } + + + bool BlackoilOutputWriter::requireFIPNUM() const { + return eclipseState_.getSummaryConfig().requireFIPNUM(); + } } diff --git a/opm/autodiff/SimulatorFullyImplicitBlackoilOutput.hpp b/opm/autodiff/SimulatorFullyImplicitBlackoilOutput.hpp index a6b8c3e1e..049918756 100644 --- a/opm/autodiff/SimulatorFullyImplicitBlackoilOutput.hpp +++ b/opm/autodiff/SimulatorFullyImplicitBlackoilOutput.hpp @@ -288,6 +288,8 @@ namespace Opm bool isRestart() const; + bool requireFIPNUM() const; + protected: const bool output_; std::unique_ptr< ParallelDebugOutputInterface > parallelOutput_; diff --git a/opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.cpp b/opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.cpp index 41b001d09..0606f1b36 100644 --- a/opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.cpp +++ b/opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.cpp @@ -299,4 +299,9 @@ namespace Opm const auto& initconfig = eclipseState_.getInitConfig(); return initconfig.restartRequested(); } + + + bool BlackoilOutputWriterEbos::requireFIPNUM() const { + return eclipseState_.getSummaryConfig().requireFIPNUM(); + } } diff --git a/opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.hpp b/opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.hpp index bffcc06cb..15f0a4115 100644 --- a/opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.hpp +++ b/opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.hpp @@ -147,6 +147,8 @@ namespace Opm bool isRestart() const; + bool requireFIPNUM() const; + protected: const bool output_; std::unique_ptr< ParallelDebugOutputInterface > parallelOutput_;