move ebos/ecloutputblackoilmodule.hh to opm/simulators/flow

This commit is contained in:
Arne Morten Kvarving 2024-02-05 19:22:15 +01:00
parent 41319eab7d
commit b6cbf513bc
7 changed files with 83 additions and 83 deletions

View File

@ -431,7 +431,6 @@ list (APPEND PUBLIC_HEADER_FILES
ebos/eclgenericwriter_impl.hh ebos/eclgenericwriter_impl.hh
ebos/eclmixingratecontrols.hh ebos/eclmixingratecontrols.hh
ebos/eclnewtonmethod.hh ebos/eclnewtonmethod.hh
ebos/ecloutputblackoilmodule.hh
ebos/eclpolyhedralgridvanguard.hh ebos/eclpolyhedralgridvanguard.hh
ebos/eclproblem.hh ebos/eclproblem.hh
ebos/eclproblem_properties.hh ebos/eclproblem_properties.hh
@ -460,6 +459,7 @@ list (APPEND PUBLIC_HEADER_FILES
opm/simulators/flow/LogOutputHelper.hpp opm/simulators/flow/LogOutputHelper.hpp
opm/simulators/flow/Main.hpp opm/simulators/flow/Main.hpp
opm/simulators/flow/NonlinearSolver.hpp opm/simulators/flow/NonlinearSolver.hpp
opm/simulators/flow/OutputBlackoilModule.hpp
opm/simulators/flow/partitionCells.hpp opm/simulators/flow/partitionCells.hpp
opm/simulators/flow/priVarsPacking.hpp opm/simulators/flow/priVarsPacking.hpp
opm/simulators/flow/RSTConv.hpp opm/simulators/flow/RSTConv.hpp

View File

@ -36,11 +36,11 @@
#include <ebos/damaris_properties.hh> #include <ebos/damaris_properties.hh>
#include <ebos/eclbasevanguard.hh> #include <ebos/eclbasevanguard.hh>
#include <ebos/eclgenericwriter.hh> #include <ebos/eclgenericwriter.hh>
#include <ebos/ecloutputblackoilmodule.hh>
#include <opm/common/OpmLog/OpmLog.hpp> #include <opm/common/OpmLog/OpmLog.hpp>
#include <opm/simulators/flow/countGlobalCells.hpp> #include <opm/simulators/flow/countGlobalCells.hpp>
#include <opm/simulators/flow/OutputBlackoilModule.hpp>
#include <opm/simulators/utils/DamarisVar.hpp> #include <opm/simulators/utils/DamarisVar.hpp>
#include <opm/simulators/utils/DeferredLoggingErrorHelpers.hpp> #include <opm/simulators/utils/DeferredLoggingErrorHelpers.hpp>
#include <opm/simulators/utils/GridDataOutput.hpp> #include <opm/simulators/utils/GridDataOutput.hpp>
@ -167,7 +167,7 @@ public:
numElements_ = std::distance(interior_elements.begin(), interior_elements.end()); numElements_ = std::distance(interior_elements.begin(), interior_elements.end());
this->elements_rank_offsets_.resize(nranks_) ; this->elements_rank_offsets_.resize(nranks_) ;
this->damarisOutputModule_ = std::make_unique<EclOutputBlackOilModule<TypeTag>>(simulator, this->collectToIORank_); this->damarisOutputModule_ = std::make_unique<OutputBlackOilModule<TypeTag>>(simulator, this->collectToIORank_);
} }
/*! /*!
@ -236,7 +236,7 @@ private:
int numElements_ ; ///< size of the unique vector elements int numElements_ ; ///< size of the unique vector elements
Simulator& simulator_; Simulator& simulator_;
std::unique_ptr<EclOutputBlackOilModule<TypeTag>> damarisOutputModule_; std::unique_ptr<OutputBlackOilModule<TypeTag>> damarisOutputModule_;
std::vector<unsigned long long> elements_rank_offsets_ ; std::vector<unsigned long long> elements_rank_offsets_ ;
bool damarisUpdate_ = false; ///< Whenever this is true writeOutput() will set up Damaris mesh information and offsets of model fields bool damarisUpdate_ = false; ///< Whenever this is true writeOutput() will set up Damaris mesh information and offsets of model fields

View File

@ -40,7 +40,6 @@
#include <ebos/eclfluxmodule.hh> #include <ebos/eclfluxmodule.hh>
#include <ebos/eclgenericproblem.hh> #include <ebos/eclgenericproblem.hh>
#include <ebos/eclnewtonmethod.hh> #include <ebos/eclnewtonmethod.hh>
#include <ebos/ecloutputblackoilmodule.hh>
#include <ebos/eclproblem_properties.hh> #include <ebos/eclproblem_properties.hh>
#include <ebos/eclthresholdpressure.hh> #include <ebos/eclthresholdpressure.hh>
#include <ebos/ecltransmissibility.hh> #include <ebos/ecltransmissibility.hh>
@ -83,6 +82,7 @@
#include <opm/simulators/flow/ActionHandler.hpp> #include <opm/simulators/flow/ActionHandler.hpp>
#include <opm/simulators/flow/DummyGradientCalculator.hpp> #include <opm/simulators/flow/DummyGradientCalculator.hpp>
#include <opm/simulators/flow/OutputBlackoilModule.hpp>
#include <opm/simulators/timestepping/AdaptiveTimeStepping.hpp> #include <opm/simulators/timestepping/AdaptiveTimeStepping.hpp>
#include <opm/simulators/timestepping/SimulatorReport.hpp> #include <opm/simulators/timestepping/SimulatorReport.hpp>
#include <opm/simulators/utils/DeferredLoggingErrorHelpers.hpp> #include <opm/simulators/utils/DeferredLoggingErrorHelpers.hpp>
@ -1799,7 +1799,7 @@ public:
void setConvData(const std::vector<std::vector<int>>& data) void setConvData(const std::vector<std::vector<int>>& data)
{ {
eclWriter_->mutableEclOutputModule().setCnvData(data); eclWriter_->mutableOutputModule().setCnvData(data);
} }
template<class Serializer> template<class Serializer>
@ -2190,8 +2190,8 @@ protected:
for (std::size_t elemIdx = 0; elemIdx < numElems; ++elemIdx) { for (std::size_t elemIdx = 0; elemIdx < numElems; ++elemIdx) {
auto& elemFluidState = initialFluidStates_[elemIdx]; auto& elemFluidState = initialFluidStates_[elemIdx];
elemFluidState.setPvtRegionIndex(pvtRegionIndex(elemIdx)); elemFluidState.setPvtRegionIndex(pvtRegionIndex(elemIdx));
eclWriter_->eclOutputModule().initHysteresisParams(simulator, elemIdx); eclWriter_->outputModule().initHysteresisParams(simulator, elemIdx);
eclWriter_->eclOutputModule().assignToFluidState(elemFluidState, elemIdx); eclWriter_->outputModule().assignToFluidState(elemFluidState, elemIdx);
// Note: Function processRestartSaturations_() mutates the // Note: Function processRestartSaturations_() mutates the
// 'ssol' argument--the value from the restart file--if solvent // 'ssol' argument--the value from the restart file--if solvent
@ -2201,27 +2201,27 @@ protected:
// into 'solventSaturation_' unless solvent is enabled. // into 'solventSaturation_' unless solvent is enabled.
{ {
auto ssol = enableSolvent auto ssol = enableSolvent
? eclWriter_->eclOutputModule().getSolventSaturation(elemIdx) ? eclWriter_->outputModule().getSolventSaturation(elemIdx)
: Scalar(0); : Scalar(0);
processRestartSaturations_(elemFluidState, ssol); processRestartSaturations_(elemFluidState, ssol);
if constexpr (enableSolvent) { if constexpr (enableSolvent) {
this->solventSaturation_[elemIdx] = ssol; this->solventSaturation_[elemIdx] = ssol;
this->solventRsw_[elemIdx] = eclWriter_->eclOutputModule().getSolventRsw(elemIdx); this->solventRsw_[elemIdx] = eclWriter_->outputModule().getSolventRsw(elemIdx);
} }
} }
this->mixControls_.updateLastValues(elemIdx, elemFluidState.Rs(), elemFluidState.Rv()); this->mixControls_.updateLastValues(elemIdx, elemFluidState.Rs(), elemFluidState.Rv());
if constexpr (enablePolymer) if constexpr (enablePolymer)
this->polymer_.concentration[elemIdx] = eclWriter_->eclOutputModule().getPolymerConcentration(elemIdx); this->polymer_.concentration[elemIdx] = eclWriter_->outputModule().getPolymerConcentration(elemIdx);
if constexpr (enableMICP){ if constexpr (enableMICP){
this->micp_.microbialConcentration[elemIdx] = eclWriter_->eclOutputModule().getMicrobialConcentration(elemIdx); this->micp_.microbialConcentration[elemIdx] = eclWriter_->outputModule().getMicrobialConcentration(elemIdx);
this->micp_.oxygenConcentration[elemIdx] = eclWriter_->eclOutputModule().getOxygenConcentration(elemIdx); this->micp_.oxygenConcentration[elemIdx] = eclWriter_->outputModule().getOxygenConcentration(elemIdx);
this->micp_.ureaConcentration[elemIdx] = eclWriter_->eclOutputModule().getUreaConcentration(elemIdx); this->micp_.ureaConcentration[elemIdx] = eclWriter_->outputModule().getUreaConcentration(elemIdx);
this->micp_.biofilmConcentration[elemIdx] = eclWriter_->eclOutputModule().getBiofilmConcentration(elemIdx); this->micp_.biofilmConcentration[elemIdx] = eclWriter_->outputModule().getBiofilmConcentration(elemIdx);
this->micp_.calciteConcentration[elemIdx] = eclWriter_->eclOutputModule().getCalciteConcentration(elemIdx); this->micp_.calciteConcentration[elemIdx] = eclWriter_->outputModule().getCalciteConcentration(elemIdx);
} }
// if we need to restart for polymer molecular weight simulation, we need to add related here // if we need to restart for polymer molecular weight simulation, we need to add related here
} }

View File

@ -32,7 +32,6 @@
#include <ebos/eclcpgridvanguard.hh> #include <ebos/eclcpgridvanguard.hh>
#include <ebos/eclfluxmodule.hh> #include <ebos/eclfluxmodule.hh>
#include <ebos/eclnewtonmethod.hh> #include <ebos/eclnewtonmethod.hh>
#include <ebos/ecloutputblackoilmodule.hh>
#include <ebos/eclwriter.hh> #include <ebos/eclwriter.hh>
#if HAVE_DAMARIS #if HAVE_DAMARIS
#include <ebos/damariswriter.hh> #include <ebos/damariswriter.hh>
@ -49,6 +48,7 @@
#include <opm/models/utils/propertysystem.hh> #include <opm/models/utils/propertysystem.hh>
#include <opm/simulators/flow/DummyGradientCalculator.hpp> #include <opm/simulators/flow/DummyGradientCalculator.hpp>
#include <opm/simulators/flow/OutputBlackoilModule.hpp>
#include <tuple> #include <tuple>
@ -62,7 +62,7 @@ namespace Opm::Properties {
namespace TTag { namespace TTag {
struct EclBaseProblem { struct EclBaseProblem {
using InheritsFrom = std::tuple<VtkEclTracer, EclOutputBlackOil, EclCpGridVanguard>; using InheritsFrom = std::tuple<VtkEclTracer, OutputBlackOil, EclCpGridVanguard>;
}; };
} }

View File

@ -33,12 +33,12 @@
#include <ebos/collecttoiorank.hh> #include <ebos/collecttoiorank.hh>
#include <ebos/eclbasevanguard.hh> #include <ebos/eclbasevanguard.hh>
#include <ebos/eclgenericwriter.hh> #include <ebos/eclgenericwriter.hh>
#include <ebos/ecloutputblackoilmodule.hh>
#include <opm/input/eclipse/Units/UnitSystem.hpp> #include <opm/input/eclipse/Units/UnitSystem.hpp>
#include <opm/output/eclipse/RestartValue.hpp> #include <opm/output/eclipse/RestartValue.hpp>
#include <opm/simulators/flow/OutputBlackoilModule.hpp>
#include <opm/simulators/utils/DeferredLoggingErrorHelpers.hpp> #include <opm/simulators/utils/DeferredLoggingErrorHelpers.hpp>
#include <opm/simulators/utils/ParallelRestart.hpp> #include <opm/simulators/utils/ParallelRestart.hpp>
#include <opm/simulators/flow/countGlobalCells.hpp> #include <opm/simulators/flow/countGlobalCells.hpp>
@ -126,7 +126,7 @@ public:
static void registerParameters() static void registerParameters()
{ {
EclOutputBlackOilModule<TypeTag>::registerParameters(); OutputBlackOilModule<TypeTag>::registerParameters();
EWOMS_REGISTER_PARAM(TypeTag, bool, EnableAsyncEclOutput, EWOMS_REGISTER_PARAM(TypeTag, bool, EnableAsyncEclOutput,
"Write the ECL-formated results in a non-blocking way (i.e., using a separate thread)."); "Write the ECL-formated results in a non-blocking way (i.e., using a separate thread).");
@ -156,7 +156,7 @@ public:
EWOMS_GET_PARAM(TypeTag, bool, EnableEsmry)) EWOMS_GET_PARAM(TypeTag, bool, EnableEsmry))
, simulator_(simulator) , simulator_(simulator)
{ {
this->eclOutputModule_ = std::make_unique<EclOutputBlackOilModule<TypeTag>> this->outputModule_ = std::make_unique<OutputBlackOilModule<TypeTag>>
(simulator, this->collectToIORank_); (simulator, this->collectToIORank_);
rank_ = simulator_.vanguard().grid().comm().rank() ; rank_ = simulator_.vanguard().grid().comm().rank() ;
@ -214,7 +214,7 @@ public:
const auto localWellTestState = simulator_.problem().wellModel().wellTestState(); const auto localWellTestState = simulator_.problem().wellModel().wellTestState();
this->prepareLocalCellData(isSubStep, reportStepNum); this->prepareLocalCellData(isSubStep, reportStepNum);
if (this->eclOutputModule_->needInterfaceFluxes(isSubStep)) { if (this->outputModule_->needInterfaceFluxes(isSubStep)) {
this->captureLocalFluxData(); this->captureLocalFluxData();
} }
@ -222,13 +222,13 @@ public:
OPM_BEGIN_PARALLEL_TRY_CATCH() OPM_BEGIN_PARALLEL_TRY_CATCH()
this->collectToIORank_.collect({}, this->collectToIORank_.collect({},
eclOutputModule_->getBlockData(), outputModule_->getBlockData(),
localWellData, localWellData,
localWBP, localWBP,
localGroupAndNetworkData, localGroupAndNetworkData,
localAquiferData, localAquiferData,
localWellTestState, localWellTestState,
this->eclOutputModule_->getInterRegFlows(), this->outputModule_->getInterRegFlows(),
{}, {},
{}); {});
@ -257,7 +257,7 @@ public:
{ {
OPM_TIMEBLOCK(outputFipLogAndFipresvLog); OPM_TIMEBLOCK(outputFipLogAndFipresvLog);
inplace = eclOutputModule_->calc_inplace(miscSummaryData, regionData, simulator_.gridView().comm()); inplace = outputModule_->calc_inplace(miscSummaryData, regionData, simulator_.gridView().comm());
if (this->collectToIORank_.isIORank()){ if (this->collectToIORank_.isIORank()){
inplace_ = inplace; inplace_ = inplace;
@ -295,11 +295,11 @@ public:
const auto& blockData = this->collectToIORank_.isParallel() const auto& blockData = this->collectToIORank_.isParallel()
? this->collectToIORank_.globalBlockData() ? this->collectToIORank_.globalBlockData()
: this->eclOutputModule_->getBlockData(); : this->outputModule_->getBlockData();
const auto& interRegFlows = this->collectToIORank_.isParallel() const auto& interRegFlows = this->collectToIORank_.isParallel()
? this->collectToIORank_.globalInterRegFlows() ? this->collectToIORank_.globalInterRegFlows()
: this->eclOutputModule_->getInterRegFlows(); : this->outputModule_->getInterRegFlows();
this->evalSummary(reportStepNum, this->evalSummary(reportStepNum,
curTime, curTime,
@ -311,7 +311,7 @@ public:
miscSummaryData, miscSummaryData,
regionData, regionData,
inplace, inplace,
this->eclOutputModule_->initialInplace(), this->outputModule_->initialInplace(),
interRegFlows, interRegFlows,
this->summaryState(), this->summaryState(),
this->udqState()); this->udqState());
@ -331,7 +331,7 @@ public:
const int num_interior = detail:: const int num_interior = detail::
countLocalInteriorCellsGridView(gridView); countLocalInteriorCellsGridView(gridView);
this->eclOutputModule_-> this->outputModule_->
allocBuffers(num_interior, 0, false, false, /*isRestart*/ false); allocBuffers(num_interior, 0, false, false, /*isRestart*/ false);
#ifdef _OPENMP #ifdef _OPENMP
@ -341,7 +341,7 @@ public:
const auto& intQuants = *simulator_.model().cachedIntensiveQuantities(dofIdx, /*timeIdx=*/0); const auto& intQuants = *simulator_.model().cachedIntensiveQuantities(dofIdx, /*timeIdx=*/0);
const auto totVolume = simulator_.model().dofTotalVolume(dofIdx); const auto totVolume = simulator_.model().dofTotalVolume(dofIdx);
this->eclOutputModule_->updateFluidInPlace(dofIdx, intQuants, totVolume); this->outputModule_->updateFluidInPlace(dofIdx, intQuants, totVolume);
} }
std::map<std::string, double> miscSummaryData; std::map<std::string, double> miscSummaryData;
@ -352,12 +352,12 @@ public:
boost::posix_time::ptime start_time = boost::posix_time::from_time_t(simulator_.vanguard().schedule().getStartTime()); boost::posix_time::ptime start_time = boost::posix_time::from_time_t(simulator_.vanguard().schedule().getStartTime());
inplace = eclOutputModule_->calc_inplace(miscSummaryData, regionData, simulator_.gridView().comm()); inplace = outputModule_->calc_inplace(miscSummaryData, regionData, simulator_.gridView().comm());
if (this->collectToIORank_.isIORank()){ if (this->collectToIORank_.isIORank()){
inplace_ = inplace; inplace_ = inplace;
eclOutputModule_->outputFipAndResvLog(inplace_, 0, 0.0, start_time, outputModule_->outputFipAndResvLog(inplace_, 0, 0.0, start_time,
false, simulator_.gridView().comm()); false, simulator_.gridView().comm());
} }
} }
@ -369,7 +369,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(simulator_.gridView().comm()); this->outputModule_->outputErrorLog(simulator_.gridView().comm());
// output using eclWriter if enabled // output using eclWriter if enabled
auto localWellData = simulator_.problem().wellModel().wellData(); auto localWellData = simulator_.problem().wellModel().wellData();
@ -379,11 +379,11 @@ public:
auto localAquiferData = simulator_.problem().aquiferModel().aquiferData(); auto localAquiferData = simulator_.problem().aquiferModel().aquiferData();
auto localWellTestState = simulator_.problem().wellModel().wellTestState(); auto localWellTestState = simulator_.problem().wellModel().wellTestState();
const bool isFlowsn = this->eclOutputModule_->hasFlowsn(); const bool isFlowsn = this->outputModule_->hasFlowsn();
auto flowsn = this->eclOutputModule_->getFlowsn(); auto flowsn = this->outputModule_->getFlowsn();
const bool isFloresn = this->eclOutputModule_->hasFloresn(); const bool isFloresn = this->outputModule_->hasFloresn();
auto floresn = this->eclOutputModule_->getFloresn(); auto floresn = this->outputModule_->getFloresn();
// data::Solution localCellData = {}; // data::Solution localCellData = {};
if (! isSubStep) { if (! isSubStep) {
@ -392,25 +392,25 @@ public:
if ((rstep > 0) && (this->collectToIORank_.isIORank())){ if ((rstep > 0) && (this->collectToIORank_.isIORank())){
eclOutputModule_->outputFipAndResvLog(inplace_, rstep, timer.simulationTimeElapsed(), outputModule_->outputFipAndResvLog(inplace_, rstep, timer.simulationTimeElapsed(),
timer.currentDateTime(), false, simulator_.gridView().comm()); timer.currentDateTime(), false, simulator_.gridView().comm());
eclOutputModule_->outputTimeStamp("WELLS", timer.simulationTimeElapsed(), rstep, timer.currentDateTime()); outputModule_->outputTimeStamp("WELLS", timer.simulationTimeElapsed(), rstep, timer.currentDateTime());
eclOutputModule_->outputProdLog(reportStepNum); outputModule_->outputProdLog(reportStepNum);
eclOutputModule_->outputInjLog(reportStepNum); outputModule_->outputInjLog(reportStepNum);
eclOutputModule_->outputCumLog(reportStepNum); outputModule_->outputCumLog(reportStepNum);
OpmLog::note(""); // Blank line after all reports. OpmLog::note(""); // Blank line after all reports.
} }
if (localCellData.empty()) { if (localCellData.empty()) {
this->eclOutputModule_->assignToSolution(localCellData); this->outputModule_->assignToSolution(localCellData);
} }
// Add cell data to perforations for RFT output // Add cell data to perforations for RFT output
this->eclOutputModule_->addRftDataToWells(localWellData, reportStepNum); this->outputModule_->addRftDataToWells(localWellData, reportStepNum);
} }
if (this->collectToIORank_.isParallel() || if (this->collectToIORank_.isParallel() ||
@ -422,7 +422,7 @@ public:
// properties on the I/O rank. // properties on the I/O rank.
this->collectToIORank_.collect(localCellData, this->collectToIORank_.collect(localCellData,
this->eclOutputModule_->getBlockData(), this->outputModule_->getBlockData(),
localWellData, localWellData,
/* wbpData = */ {}, /* wbpData = */ {},
localGroupAndNetworkData, localGroupAndNetworkData,
@ -432,10 +432,10 @@ public:
flowsn, flowsn,
floresn); floresn);
if (this->collectToIORank_.isIORank()) { if (this->collectToIORank_.isIORank()) {
this->eclOutputModule_->assignGlobalFieldsToSolution(this->collectToIORank_.globalCellData()); this->outputModule_->assignGlobalFieldsToSolution(this->collectToIORank_.globalCellData());
} }
} else { } else {
this->eclOutputModule_->assignGlobalFieldsToSolution(localCellData); this->outputModule_->assignGlobalFieldsToSolution(localCellData);
} }
if (this->collectToIORank_.isIORank()) { if (this->collectToIORank_.isIORank()) {
@ -501,7 +501,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); outputModule_->allocBuffers(numElements, restartStepIdx, /*isSubStep=*/false, /*log=*/false, /*isRestart*/ true);
{ {
SummaryState& summaryState = simulator_.vanguard().summaryState(); SummaryState& summaryState = simulator_.vanguard().summaryState();
@ -510,7 +510,7 @@ public:
gridView.grid().comm()); gridView.grid().comm());
for (unsigned elemIdx = 0; elemIdx < numElements; ++elemIdx) { for (unsigned elemIdx = 0; elemIdx < numElements; ++elemIdx) {
unsigned globalIdx = this->collectToIORank_.localIdxToGlobalIdx(elemIdx); unsigned globalIdx = this->collectToIORank_.localIdxToGlobalIdx(elemIdx);
eclOutputModule_->setRestart(restartValues.solution, elemIdx, globalIdx); outputModule_->setRestart(restartValues.solution, elemIdx, globalIdx);
} }
auto& tracer_model = simulator_.problem().tracerModel(); auto& tracer_model = simulator_.problem().tracerModel();
@ -542,11 +542,11 @@ public:
void endRestart() void endRestart()
{} {}
const EclOutputBlackOilModule<TypeTag>& eclOutputModule() const const OutputBlackOilModule<TypeTag>& outputModule() const
{ return *eclOutputModule_; } { return *outputModule_; }
EclOutputBlackOilModule<TypeTag>& mutableEclOutputModule() const OutputBlackOilModule<TypeTag>& mutableOutputModule() const
{ return *eclOutputModule_; } { return *outputModule_; }
Scalar restartTimeStepSize() const Scalar restartTimeStepSize() const
{ return restartTimeStepSize_; } { return restartTimeStepSize_; }
@ -554,7 +554,7 @@ public:
template <class Serializer> template <class Serializer>
void serializeOp(Serializer& serializer) void serializeOp(Serializer& serializer)
{ {
serializer(*eclOutputModule_); serializer(*outputModule_);
} }
private: private:
@ -581,7 +581,7 @@ private:
{ {
OPM_TIMEBLOCK(prepareLocalCellData); OPM_TIMEBLOCK(prepareLocalCellData);
if (this->eclOutputModule_->localDataValid()) { if (this->outputModule_->localDataValid()) {
return; return;
} }
@ -590,7 +590,7 @@ private:
const int num_interior = detail:: const int num_interior = detail::
countLocalInteriorCellsGridView(gridView); countLocalInteriorCellsGridView(gridView);
this->eclOutputModule_-> this->outputModule_->
allocBuffers(num_interior, reportStepNum, allocBuffers(num_interior, reportStepNum,
isSubStep, log, /*isRestart*/ false); isSubStep, log, /*isRestart*/ false);
@ -601,16 +601,16 @@ private:
{ {
OPM_TIMEBLOCK(prepareCellBasedData); OPM_TIMEBLOCK(prepareCellBasedData);
this->eclOutputModule_->prepareDensityAccumulation(); this->outputModule_->prepareDensityAccumulation();
for (const auto& elem : elements(gridView, Dune::Partitions::interior)) { for (const auto& elem : elements(gridView, Dune::Partitions::interior)) {
elemCtx.updatePrimaryStencil(elem); elemCtx.updatePrimaryStencil(elem);
elemCtx.updatePrimaryIntensiveQuantities(/*timeIdx=*/0); elemCtx.updatePrimaryIntensiveQuantities(/*timeIdx=*/0);
this->eclOutputModule_->processElement(elemCtx); this->outputModule_->processElement(elemCtx);
} }
this->eclOutputModule_->accumulateDensityParallel(); this->outputModule_->accumulateDensityParallel();
} }
if constexpr (enableMech) { if constexpr (enableMech) {
@ -619,7 +619,7 @@ private:
for (const auto& elem : elements(gridView, Dune::Partitions::interior)) { for (const auto& elem : elements(gridView, Dune::Partitions::interior)) {
elemCtx.updatePrimaryStencil(elem); elemCtx.updatePrimaryStencil(elem);
elemCtx.updatePrimaryIntensiveQuantities(/*timeIdx=*/0); elemCtx.updatePrimaryIntensiveQuantities(/*timeIdx=*/0);
eclOutputModule_->processElementMech(elemCtx); outputModule_->processElementMech(elemCtx);
} }
} }
} }
@ -630,7 +630,7 @@ private:
elemCtx.updatePrimaryStencil(elem); elemCtx.updatePrimaryStencil(elem);
elemCtx.updatePrimaryIntensiveQuantities(/*timeIdx=*/0); elemCtx.updatePrimaryIntensiveQuantities(/*timeIdx=*/0);
this->eclOutputModule_->processElementFlows(elemCtx); this->outputModule_->processElementFlows(elemCtx);
} }
} }
@ -640,7 +640,7 @@ private:
elemCtx.updatePrimaryStencil(elem); elemCtx.updatePrimaryStencil(elem);
elemCtx.updatePrimaryIntensiveQuantities(/*timeIdx=*/0); elemCtx.updatePrimaryIntensiveQuantities(/*timeIdx=*/0);
this->eclOutputModule_->processElementBlockData(elemCtx); this->outputModule_->processElementBlockData(elemCtx);
} }
} }
@ -654,11 +654,11 @@ private:
const auto& intQuants = *simulator_.model().cachedIntensiveQuantities(dofIdx, /*timeIdx=*/0); const auto& intQuants = *simulator_.model().cachedIntensiveQuantities(dofIdx, /*timeIdx=*/0);
const auto totVolume = simulator_.model().dofTotalVolume(dofIdx); const auto totVolume = simulator_.model().dofTotalVolume(dofIdx);
this->eclOutputModule_->updateFluidInPlace(dofIdx, intQuants, totVolume); this->outputModule_->updateFluidInPlace(dofIdx, intQuants, totVolume);
} }
} }
this->eclOutputModule_->validateLocalData(); this->outputModule_->validateLocalData();
OPM_END_PARALLEL_TRY_CATCH("EclWriter::prepareLocalCellData() failed: ", OPM_END_PARALLEL_TRY_CATCH("EclWriter::prepareLocalCellData() failed: ",
this->simulator_.vanguard().grid().comm()); this->simulator_.vanguard().grid().comm());
@ -684,7 +684,7 @@ private:
return this->cartMapper_.cartesianIndex(elemIndex); return this->cartMapper_.cartesianIndex(elemIndex);
}; };
this->eclOutputModule_->initializeFluxData(); this->outputModule_->initializeFluxData();
OPM_BEGIN_PARALLEL_TRY_CATCH(); OPM_BEGIN_PARALLEL_TRY_CATCH();
@ -693,17 +693,17 @@ private:
elemCtx.updateIntensiveQuantities(timeIdx); elemCtx.updateIntensiveQuantities(timeIdx);
elemCtx.updateExtensiveQuantities(timeIdx); elemCtx.updateExtensiveQuantities(timeIdx);
this->eclOutputModule_->processFluxes(elemCtx, activeIndex, cartesianIndex); this->outputModule_->processFluxes(elemCtx, activeIndex, cartesianIndex);
} }
OPM_END_PARALLEL_TRY_CATCH("EclWriter::captureLocalFluxData() failed: ", OPM_END_PARALLEL_TRY_CATCH("EclWriter::captureLocalFluxData() failed: ",
this->simulator_.vanguard().grid().comm()) this->simulator_.vanguard().grid().comm())
this->eclOutputModule_->finalizeFluxData(); this->outputModule_->finalizeFluxData();
} }
Simulator& simulator_; Simulator& simulator_;
std::unique_ptr<EclOutputBlackOilModule<TypeTag> > eclOutputModule_; std::unique_ptr<OutputBlackOilModule<TypeTag> > outputModule_;
Scalar restartTimeStepSize_; Scalar restartTimeStepSize_;
int rank_ ; int rank_ ;
Inplace inplace_; Inplace inplace_;

View File

@ -705,7 +705,7 @@ namespace Opm {
{ {
OPM_TIMEBLOCK(invalidateAndUpdateIntensiveQuantities); OPM_TIMEBLOCK(invalidateAndUpdateIntensiveQuantities);
simulator_.model().invalidateAndUpdateIntensiveQuantities(/*timeIdx=*/0); simulator_.model().invalidateAndUpdateIntensiveQuantities(/*timeIdx=*/0);
simulator_.problem().eclWriter()->mutableEclOutputModule().invalidateLocalData(); simulator_.problem().eclWriter()->mutableOutputModule().invalidateLocalData();
} }
} }

View File

@ -22,10 +22,10 @@
*/ */
/*! /*!
* \file * \file
* \copydoc Opm::EclOutputBlackOilModule * \copydoc Opm::OutputBlackOilModule
*/ */
#ifndef EWOMS_ECL_OUTPUT_BLACK_OIL_MODULE_HH #ifndef OPM_OUTPUT_BLACK_OIL_MODULE_HPP
#define EWOMS_ECL_OUTPUT_BLACK_OIL_MODULE_HH #define OPM_OUTPUT_BLACK_OIL_MODULE_HPP
#include <dune/common/fvector.hh> #include <dune/common/fvector.hh>
@ -71,7 +71,7 @@ namespace Opm::Properties
// create new type tag for the Ecl-output // create new type tag for the Ecl-output
namespace TTag namespace TTag
{ {
struct EclOutputBlackOil { struct OutputBlackOil {
}; };
} // namespace TTag } // namespace TTag
@ -81,7 +81,7 @@ struct ForceDisableFluidInPlaceOutput {
}; };
template <class TypeTag> template <class TypeTag>
struct ForceDisableFluidInPlaceOutput<TypeTag, TTag::EclOutputBlackOil> { struct ForceDisableFluidInPlaceOutput<TypeTag, TTag::OutputBlackOil> {
static constexpr bool value = false; static constexpr bool value = false;
}; };
@ -92,7 +92,7 @@ struct ForceDisableResvFluidInPlaceOutput {
}; };
template <class TypeTag> template <class TypeTag>
struct ForceDisableResvFluidInPlaceOutput<TypeTag, TTag::EclOutputBlackOil> { struct ForceDisableResvFluidInPlaceOutput<TypeTag, TTag::OutputBlackOil> {
static constexpr bool value = false; static constexpr bool value = false;
}; };
@ -106,13 +106,13 @@ template <class TypeTag>
class EcfvDiscretization; class EcfvDiscretization;
/*! /*!
* \ingroup EclBlackOilSimulator * \ingroup BlackOilSimulator
* *
* \brief Output module for the results black oil model writing in * \brief Output module for the results black oil model writing in
* ECL binary format. * ECL binary format.
*/ */
template <class TypeTag> template <class TypeTag>
class EclOutputBlackOilModule : public GenericOutputBlackoilModule<GetPropType<TypeTag, Properties::FluidSystem>, class OutputBlackOilModule : public GenericOutputBlackoilModule<GetPropType<TypeTag, Properties::FluidSystem>,
GetPropType<TypeTag, Properties::Scalar>> GetPropType<TypeTag, Properties::Scalar>>
{ {
using Simulator = GetPropType<TypeTag, Properties::Simulator>; using Simulator = GetPropType<TypeTag, Properties::Simulator>;
@ -143,7 +143,7 @@ class EclOutputBlackOilModule : public GenericOutputBlackoilModule<GetPropType<T
public: public:
template <class CollectDataToIORankType> template <class CollectDataToIORankType>
EclOutputBlackOilModule(const Simulator& simulator, OutputBlackOilModule(const Simulator& simulator,
const CollectDataToIORankType& collectToIORank) const CollectDataToIORankType& collectToIORank)
: BaseType(simulator.vanguard().eclState(), : BaseType(simulator.vanguard().eclState(),
simulator.vanguard().schedule(), simulator.vanguard().schedule(),
@ -1687,4 +1687,4 @@ private:
} // namespace Opm } // namespace Opm
#endif #endif // OPM_OUTPUT_BLACK_OIL_MODULE_HPP