mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Use unique_ptr for outputmodule member in EclWriter
This commit is contained in:
parent
1fbc25979f
commit
1bb7b0d30f
@ -191,8 +191,8 @@ public:
|
|||||||
EclWriter(Simulator& simulator)
|
EclWriter(Simulator& simulator)
|
||||||
: simulator_(simulator)
|
: simulator_(simulator)
|
||||||
, collectToIORank_(simulator_.vanguard())
|
, collectToIORank_(simulator_.vanguard())
|
||||||
, eclOutputModule_(simulator, collectToIORank_)
|
|
||||||
{
|
{
|
||||||
|
this->eclOutputModule_ = std::make_unique<EclOutputBlackOilModule<TypeTag>>(simulator, this->collectToIORank_);
|
||||||
if (collectToIORank_.isIORank()) {
|
if (collectToIORank_.isIORank()) {
|
||||||
eclIO_.reset(new Opm::EclipseIO(simulator_.vanguard().eclState(),
|
eclIO_.reset(new Opm::EclipseIO(simulator_.vanguard().eclState(),
|
||||||
Opm::UgGridHelpers::createEclipseGrid(globalGrid(), simulator_.vanguard().eclState().getInputGrid()),
|
Opm::UgGridHelpers::createEclipseGrid(globalGrid(), simulator_.vanguard().eclState().getInputGrid()),
|
||||||
@ -279,19 +279,19 @@ public:
|
|||||||
this->prepareLocalCellData(isSubStep, reportStepNum);
|
this->prepareLocalCellData(isSubStep, reportStepNum);
|
||||||
|
|
||||||
if (collectToIORank_.isParallel())
|
if (collectToIORank_.isParallel())
|
||||||
collectToIORank_.collect({}, eclOutputModule_.getBlockData(),
|
collectToIORank_.collect({}, eclOutputModule_->getBlockData(),
|
||||||
localWellData, localGroupAndNetworkData);
|
localWellData, localGroupAndNetworkData);
|
||||||
|
|
||||||
std::map<std::string, double> miscSummaryData;
|
std::map<std::string, double> miscSummaryData;
|
||||||
std::map<std::string, std::vector<double>> regionData;
|
std::map<std::string, std::vector<double>> regionData;
|
||||||
auto inplace = eclOutputModule_.outputFipLog(miscSummaryData, regionData, isSubStep);
|
auto inplace = eclOutputModule_->outputFipLog(miscSummaryData, regionData, isSubStep);
|
||||||
|
|
||||||
bool forceDisableProdOutput = false;
|
bool forceDisableProdOutput = false;
|
||||||
bool forceDisableInjOutput = false;
|
bool forceDisableInjOutput = false;
|
||||||
bool forceDisableCumOutput = false;
|
bool forceDisableCumOutput = false;
|
||||||
eclOutputModule_.outputProdLog(reportStepNum, isSubStep, forceDisableProdOutput);
|
eclOutputModule_->outputProdLog(reportStepNum, isSubStep, forceDisableProdOutput);
|
||||||
eclOutputModule_.outputInjLog(reportStepNum, isSubStep, forceDisableInjOutput);
|
eclOutputModule_->outputInjLog(reportStepNum, isSubStep, forceDisableInjOutput);
|
||||||
eclOutputModule_.outputCumLog(reportStepNum, isSubStep, forceDisableCumOutput);
|
eclOutputModule_->outputCumLog(reportStepNum, isSubStep, forceDisableCumOutput);
|
||||||
|
|
||||||
std::vector<char> buffer;
|
std::vector<char> buffer;
|
||||||
if (this->collectToIORank_.isIORank()) {
|
if (this->collectToIORank_.isIORank()) {
|
||||||
@ -316,7 +316,7 @@ public:
|
|||||||
const auto& blockData
|
const auto& blockData
|
||||||
= this->collectToIORank_.isParallel()
|
= this->collectToIORank_.isParallel()
|
||||||
? this->collectToIORank_.globalBlockData()
|
? this->collectToIORank_.globalBlockData()
|
||||||
: this->eclOutputModule_.getBlockData();
|
: this->eclOutputModule_->getBlockData();
|
||||||
|
|
||||||
summary.eval(summaryState(),
|
summary.eval(summaryState(),
|
||||||
reportStepNum,
|
reportStepNum,
|
||||||
@ -324,7 +324,7 @@ public:
|
|||||||
wellData,
|
wellData,
|
||||||
groupAndNetworkData,
|
groupAndNetworkData,
|
||||||
miscSummaryData,
|
miscSummaryData,
|
||||||
eclOutputModule_.initialInplace(),
|
eclOutputModule_->initialInplace(),
|
||||||
inplace,
|
inplace,
|
||||||
wbp_calculators,
|
wbp_calculators,
|
||||||
regionData,
|
regionData,
|
||||||
@ -359,7 +359,7 @@ public:
|
|||||||
const int reportStepNum = simulator_.episodeIndex() + 1;
|
const int reportStepNum = simulator_.episodeIndex() + 1;
|
||||||
|
|
||||||
this->prepareLocalCellData(isSubStep, reportStepNum);
|
this->prepareLocalCellData(isSubStep, reportStepNum);
|
||||||
this->eclOutputModule_.outputErrorLog();
|
this->eclOutputModule_->outputErrorLog();
|
||||||
|
|
||||||
// output using eclWriter if enabled
|
// output using eclWriter if enabled
|
||||||
auto localWellData = simulator_.problem().wellModel().wellData();
|
auto localWellData = simulator_.problem().wellModel().wellData();
|
||||||
@ -368,14 +368,14 @@ public:
|
|||||||
|
|
||||||
Opm::data::Solution localCellData = {};
|
Opm::data::Solution localCellData = {};
|
||||||
if (! isSubStep) {
|
if (! isSubStep) {
|
||||||
this->eclOutputModule_.assignToSolution(localCellData);
|
this->eclOutputModule_->assignToSolution(localCellData);
|
||||||
|
|
||||||
// add cell data to perforations for Rft output
|
// add cell data to perforations for Rft output
|
||||||
this->eclOutputModule_.addRftDataToWells(localWellData, reportStepNum);
|
this->eclOutputModule_->addRftDataToWells(localWellData, reportStepNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->collectToIORank_.isParallel()) {
|
if (this->collectToIORank_.isParallel()) {
|
||||||
collectToIORank_.collect(localCellData, eclOutputModule_.getBlockData(),
|
collectToIORank_.collect(localCellData, eclOutputModule_->getBlockData(),
|
||||||
localWellData, localGroupAndNetworkData);
|
localWellData, localGroupAndNetworkData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -420,7 +420,7 @@ public:
|
|||||||
|
|
||||||
const auto& gridView = simulator_.vanguard().gridView();
|
const auto& gridView = simulator_.vanguard().gridView();
|
||||||
unsigned numElements = gridView.size(/*codim=*/0);
|
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();
|
Opm::SummaryState& summaryState = simulator_.vanguard().summaryState();
|
||||||
@ -429,7 +429,7 @@ public:
|
|||||||
gridView.grid().comm());
|
gridView.grid().comm());
|
||||||
for (unsigned elemIdx = 0; elemIdx < numElements; ++elemIdx) {
|
for (unsigned elemIdx = 0; elemIdx < numElements; ++elemIdx) {
|
||||||
unsigned globalIdx = collectToIORank_.localIdxToGlobalIdx(elemIdx);
|
unsigned globalIdx = collectToIORank_.localIdxToGlobalIdx(elemIdx);
|
||||||
eclOutputModule_.setRestart(restartValues.solution, elemIdx, globalIdx);
|
eclOutputModule_->setRestart(restartValues.solution, elemIdx, globalIdx);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inputThpres.active()) {
|
if (inputThpres.active()) {
|
||||||
@ -452,7 +452,7 @@ public:
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
const EclOutputBlackOilModule<TypeTag>& eclOutputModule() const
|
const EclOutputBlackOilModule<TypeTag>& eclOutputModule() const
|
||||||
{ return eclOutputModule_; }
|
{ return *eclOutputModule_; }
|
||||||
|
|
||||||
Scalar restartTimeStepSize() const
|
Scalar restartTimeStepSize() const
|
||||||
{ return restartTimeStepSize_; }
|
{ return restartTimeStepSize_; }
|
||||||
@ -717,7 +717,7 @@ private:
|
|||||||
const int numElements = gridView.size(/*codim=*/0);
|
const int numElements = gridView.size(/*codim=*/0);
|
||||||
const bool log = collectToIORank_.isIORank();
|
const bool log = collectToIORank_.isIORank();
|
||||||
|
|
||||||
eclOutputModule_.allocBuffers(numElements, reportStepNum,
|
eclOutputModule_->allocBuffers(numElements, reportStepNum,
|
||||||
isSubStep, log, /*isRestart*/ false);
|
isSubStep, log, /*isRestart*/ false);
|
||||||
|
|
||||||
ElementContext elemCtx(simulator_);
|
ElementContext elemCtx(simulator_);
|
||||||
@ -730,7 +730,7 @@ private:
|
|||||||
elemCtx.updatePrimaryStencil(elem);
|
elemCtx.updatePrimaryStencil(elem);
|
||||||
elemCtx.updatePrimaryIntensiveQuantities(/*timeIdx=*/0);
|
elemCtx.updatePrimaryIntensiveQuantities(/*timeIdx=*/0);
|
||||||
|
|
||||||
eclOutputModule_.processElement(elemCtx);
|
eclOutputModule_->processElement(elemCtx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -784,7 +784,7 @@ private:
|
|||||||
|
|
||||||
Simulator& simulator_;
|
Simulator& simulator_;
|
||||||
CollectDataToIORankType collectToIORank_;
|
CollectDataToIORankType collectToIORank_;
|
||||||
EclOutputBlackOilModule<TypeTag> eclOutputModule_;
|
std::unique_ptr<EclOutputBlackOilModule<TypeTag>> eclOutputModule_;
|
||||||
std::unique_ptr<Opm::EclipseIO> eclIO_;
|
std::unique_ptr<Opm::EclipseIO> eclIO_;
|
||||||
std::unique_ptr<TaskletRunner> taskletRunner_;
|
std::unique_ptr<TaskletRunner> taskletRunner_;
|
||||||
Scalar restartTimeStepSize_;
|
Scalar restartTimeStepSize_;
|
||||||
|
Loading…
Reference in New Issue
Block a user