diff --git a/ebos/eclwriter.hh b/ebos/eclwriter.hh index b7550ed9c..5444e7fb3 100644 --- a/ebos/eclwriter.hh +++ b/ebos/eclwriter.hh @@ -191,8 +191,8 @@ public: EclWriter(Simulator& simulator) : simulator_(simulator) , collectToIORank_(simulator_.vanguard()) - , eclOutputModule_(simulator, collectToIORank_) { + this->eclOutputModule_ = std::make_unique>(simulator, this->collectToIORank_); if (collectToIORank_.isIORank()) { eclIO_.reset(new Opm::EclipseIO(simulator_.vanguard().eclState(), Opm::UgGridHelpers::createEclipseGrid(globalGrid(), simulator_.vanguard().eclState().getInputGrid()), @@ -279,19 +279,19 @@ public: this->prepareLocalCellData(isSubStep, reportStepNum); if (collectToIORank_.isParallel()) - collectToIORank_.collect({}, eclOutputModule_.getBlockData(), + collectToIORank_.collect({}, eclOutputModule_->getBlockData(), localWellData, localGroupAndNetworkData); std::map miscSummaryData; std::map> regionData; - auto inplace = eclOutputModule_.outputFipLog(miscSummaryData, regionData, isSubStep); + auto inplace = eclOutputModule_->outputFipLog(miscSummaryData, regionData, isSubStep); bool forceDisableProdOutput = false; bool forceDisableInjOutput = false; bool forceDisableCumOutput = false; - eclOutputModule_.outputProdLog(reportStepNum, isSubStep, forceDisableProdOutput); - eclOutputModule_.outputInjLog(reportStepNum, isSubStep, forceDisableInjOutput); - eclOutputModule_.outputCumLog(reportStepNum, isSubStep, forceDisableCumOutput); + eclOutputModule_->outputProdLog(reportStepNum, isSubStep, forceDisableProdOutput); + eclOutputModule_->outputInjLog(reportStepNum, isSubStep, forceDisableInjOutput); + eclOutputModule_->outputCumLog(reportStepNum, isSubStep, forceDisableCumOutput); std::vector buffer; if (this->collectToIORank_.isIORank()) { @@ -316,7 +316,7 @@ public: const auto& blockData = this->collectToIORank_.isParallel() ? this->collectToIORank_.globalBlockData() - : this->eclOutputModule_.getBlockData(); + : this->eclOutputModule_->getBlockData(); summary.eval(summaryState(), reportStepNum, @@ -324,7 +324,7 @@ public: wellData, groupAndNetworkData, miscSummaryData, - eclOutputModule_.initialInplace(), + eclOutputModule_->initialInplace(), inplace, wbp_calculators, regionData, @@ -359,7 +359,7 @@ public: const int reportStepNum = simulator_.episodeIndex() + 1; this->prepareLocalCellData(isSubStep, reportStepNum); - this->eclOutputModule_.outputErrorLog(); + this->eclOutputModule_->outputErrorLog(); // output using eclWriter if enabled auto localWellData = simulator_.problem().wellModel().wellData(); @@ -368,14 +368,14 @@ public: Opm::data::Solution localCellData = {}; if (! isSubStep) { - this->eclOutputModule_.assignToSolution(localCellData); + this->eclOutputModule_->assignToSolution(localCellData); // add cell data to perforations for Rft output - this->eclOutputModule_.addRftDataToWells(localWellData, reportStepNum); + this->eclOutputModule_->addRftDataToWells(localWellData, reportStepNum); } if (this->collectToIORank_.isParallel()) { - collectToIORank_.collect(localCellData, eclOutputModule_.getBlockData(), + collectToIORank_.collect(localCellData, eclOutputModule_->getBlockData(), localWellData, localGroupAndNetworkData); } @@ -420,7 +420,7 @@ public: const auto& gridView = simulator_.vanguard().gridView(); unsigned numElements = gridView.size(/*codim=*/0); - eclOutputModule_.allocBuffers(numElements, restartStepIdx, /*isSubStep=*/false, /*log=*/false, /*isRestart*/ true); + eclOutputModule_->allocBuffers(numElements, restartStepIdx, /*isSubStep=*/false, /*log=*/false, /*isRestart*/ true); { Opm::SummaryState& summaryState = simulator_.vanguard().summaryState(); @@ -429,7 +429,7 @@ public: gridView.grid().comm()); for (unsigned elemIdx = 0; elemIdx < numElements; ++elemIdx) { unsigned globalIdx = collectToIORank_.localIdxToGlobalIdx(elemIdx); - eclOutputModule_.setRestart(restartValues.solution, elemIdx, globalIdx); + eclOutputModule_->setRestart(restartValues.solution, elemIdx, globalIdx); } if (inputThpres.active()) { @@ -452,7 +452,7 @@ public: {} const EclOutputBlackOilModule& eclOutputModule() const - { return eclOutputModule_; } + { return *eclOutputModule_; } Scalar restartTimeStepSize() const { return restartTimeStepSize_; } @@ -717,7 +717,7 @@ private: const int numElements = gridView.size(/*codim=*/0); const bool log = collectToIORank_.isIORank(); - eclOutputModule_.allocBuffers(numElements, reportStepNum, + eclOutputModule_->allocBuffers(numElements, reportStepNum, isSubStep, log, /*isRestart*/ false); ElementContext elemCtx(simulator_); @@ -730,7 +730,7 @@ private: elemCtx.updatePrimaryStencil(elem); elemCtx.updatePrimaryIntensiveQuantities(/*timeIdx=*/0); - eclOutputModule_.processElement(elemCtx); + eclOutputModule_->processElement(elemCtx); } } @@ -784,7 +784,7 @@ private: Simulator& simulator_; CollectDataToIORankType collectToIORank_; - EclOutputBlackOilModule eclOutputModule_; + std::unique_ptr> eclOutputModule_; std::unique_ptr eclIO_; std::unique_ptr taskletRunner_; Scalar restartTimeStepSize_;