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

View File

@ -36,11 +36,11 @@
#include <ebos/damaris_properties.hh>
#include <ebos/eclbasevanguard.hh>
#include <ebos/eclgenericwriter.hh>
#include <ebos/ecloutputblackoilmodule.hh>
#include <opm/common/OpmLog/OpmLog.hpp>
#include <opm/simulators/flow/countGlobalCells.hpp>
#include <opm/simulators/flow/OutputBlackoilModule.hpp>
#include <opm/simulators/utils/DamarisVar.hpp>
#include <opm/simulators/utils/DeferredLoggingErrorHelpers.hpp>
#include <opm/simulators/utils/GridDataOutput.hpp>
@ -167,7 +167,7 @@ public:
numElements_ = std::distance(interior_elements.begin(), interior_elements.end());
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
Simulator& simulator_;
std::unique_ptr<EclOutputBlackOilModule<TypeTag>> damarisOutputModule_;
std::unique_ptr<OutputBlackOilModule<TypeTag>> damarisOutputModule_;
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

View File

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

View File

@ -32,7 +32,6 @@
#include <ebos/eclcpgridvanguard.hh>
#include <ebos/eclfluxmodule.hh>
#include <ebos/eclnewtonmethod.hh>
#include <ebos/ecloutputblackoilmodule.hh>
#include <ebos/eclwriter.hh>
#if HAVE_DAMARIS
#include <ebos/damariswriter.hh>
@ -49,6 +48,7 @@
#include <opm/models/utils/propertysystem.hh>
#include <opm/simulators/flow/DummyGradientCalculator.hpp>
#include <opm/simulators/flow/OutputBlackoilModule.hpp>
#include <tuple>
@ -62,7 +62,7 @@ namespace Opm::Properties {
namespace TTag {
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/eclbasevanguard.hh>
#include <ebos/eclgenericwriter.hh>
#include <ebos/ecloutputblackoilmodule.hh>
#include <opm/input/eclipse/Units/UnitSystem.hpp>
#include <opm/output/eclipse/RestartValue.hpp>
#include <opm/simulators/flow/OutputBlackoilModule.hpp>
#include <opm/simulators/utils/DeferredLoggingErrorHelpers.hpp>
#include <opm/simulators/utils/ParallelRestart.hpp>
#include <opm/simulators/flow/countGlobalCells.hpp>
@ -126,7 +126,7 @@ public:
static void registerParameters()
{
EclOutputBlackOilModule<TypeTag>::registerParameters();
OutputBlackOilModule<TypeTag>::registerParameters();
EWOMS_REGISTER_PARAM(TypeTag, bool, EnableAsyncEclOutput,
"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))
, simulator_(simulator)
{
this->eclOutputModule_ = std::make_unique<EclOutputBlackOilModule<TypeTag>>
this->outputModule_ = std::make_unique<OutputBlackOilModule<TypeTag>>
(simulator, this->collectToIORank_);
rank_ = simulator_.vanguard().grid().comm().rank() ;
@ -214,7 +214,7 @@ public:
const auto localWellTestState = simulator_.problem().wellModel().wellTestState();
this->prepareLocalCellData(isSubStep, reportStepNum);
if (this->eclOutputModule_->needInterfaceFluxes(isSubStep)) {
if (this->outputModule_->needInterfaceFluxes(isSubStep)) {
this->captureLocalFluxData();
}
@ -222,13 +222,13 @@ public:
OPM_BEGIN_PARALLEL_TRY_CATCH()
this->collectToIORank_.collect({},
eclOutputModule_->getBlockData(),
outputModule_->getBlockData(),
localWellData,
localWBP,
localGroupAndNetworkData,
localAquiferData,
localWellTestState,
this->eclOutputModule_->getInterRegFlows(),
this->outputModule_->getInterRegFlows(),
{},
{});
@ -257,7 +257,7 @@ public:
{
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()){
inplace_ = inplace;
@ -295,11 +295,11 @@ public:
const auto& blockData = this->collectToIORank_.isParallel()
? this->collectToIORank_.globalBlockData()
: this->eclOutputModule_->getBlockData();
: this->outputModule_->getBlockData();
const auto& interRegFlows = this->collectToIORank_.isParallel()
? this->collectToIORank_.globalInterRegFlows()
: this->eclOutputModule_->getInterRegFlows();
: this->outputModule_->getInterRegFlows();
this->evalSummary(reportStepNum,
curTime,
@ -311,7 +311,7 @@ public:
miscSummaryData,
regionData,
inplace,
this->eclOutputModule_->initialInplace(),
this->outputModule_->initialInplace(),
interRegFlows,
this->summaryState(),
this->udqState());
@ -331,7 +331,7 @@ public:
const int num_interior = detail::
countLocalInteriorCellsGridView(gridView);
this->eclOutputModule_->
this->outputModule_->
allocBuffers(num_interior, 0, false, false, /*isRestart*/ false);
#ifdef _OPENMP
@ -341,7 +341,7 @@ public:
const auto& intQuants = *simulator_.model().cachedIntensiveQuantities(dofIdx, /*timeIdx=*/0);
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;
@ -352,13 +352,13 @@ public:
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()){
inplace_ = inplace;
eclOutputModule_->outputFipAndResvLog(inplace_, 0, 0.0, start_time,
false, simulator_.gridView().comm());
outputModule_->outputFipAndResvLog(inplace_, 0, 0.0, start_time,
false, simulator_.gridView().comm());
}
}
}
@ -369,7 +369,7 @@ public:
const int reportStepNum = simulator_.episodeIndex() + 1;
this->prepareLocalCellData(isSubStep, reportStepNum);
this->eclOutputModule_->outputErrorLog(simulator_.gridView().comm());
this->outputModule_->outputErrorLog(simulator_.gridView().comm());
// output using eclWriter if enabled
auto localWellData = simulator_.problem().wellModel().wellData();
@ -379,11 +379,11 @@ public:
auto localAquiferData = simulator_.problem().aquiferModel().aquiferData();
auto localWellTestState = simulator_.problem().wellModel().wellTestState();
const bool isFlowsn = this->eclOutputModule_->hasFlowsn();
auto flowsn = this->eclOutputModule_->getFlowsn();
const bool isFlowsn = this->outputModule_->hasFlowsn();
auto flowsn = this->outputModule_->getFlowsn();
const bool isFloresn = this->eclOutputModule_->hasFloresn();
auto floresn = this->eclOutputModule_->getFloresn();
const bool isFloresn = this->outputModule_->hasFloresn();
auto floresn = this->outputModule_->getFloresn();
// data::Solution localCellData = {};
if (! isSubStep) {
@ -392,25 +392,25 @@ public:
if ((rstep > 0) && (this->collectToIORank_.isIORank())){
eclOutputModule_->outputFipAndResvLog(inplace_, rstep, timer.simulationTimeElapsed(),
timer.currentDateTime(), false, simulator_.gridView().comm());
outputModule_->outputFipAndResvLog(inplace_, rstep, timer.simulationTimeElapsed(),
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);
eclOutputModule_->outputInjLog(reportStepNum);
eclOutputModule_->outputCumLog(reportStepNum);
outputModule_->outputProdLog(reportStepNum);
outputModule_->outputInjLog(reportStepNum);
outputModule_->outputCumLog(reportStepNum);
OpmLog::note(""); // Blank line after all reports.
}
if (localCellData.empty()) {
this->eclOutputModule_->assignToSolution(localCellData);
this->outputModule_->assignToSolution(localCellData);
}
// Add cell data to perforations for RFT output
this->eclOutputModule_->addRftDataToWells(localWellData, reportStepNum);
this->outputModule_->addRftDataToWells(localWellData, reportStepNum);
}
if (this->collectToIORank_.isParallel() ||
@ -422,7 +422,7 @@ public:
// properties on the I/O rank.
this->collectToIORank_.collect(localCellData,
this->eclOutputModule_->getBlockData(),
this->outputModule_->getBlockData(),
localWellData,
/* wbpData = */ {},
localGroupAndNetworkData,
@ -432,10 +432,10 @@ public:
flowsn,
floresn);
if (this->collectToIORank_.isIORank()) {
this->eclOutputModule_->assignGlobalFieldsToSolution(this->collectToIORank_.globalCellData());
this->outputModule_->assignGlobalFieldsToSolution(this->collectToIORank_.globalCellData());
}
} else {
this->eclOutputModule_->assignGlobalFieldsToSolution(localCellData);
this->outputModule_->assignGlobalFieldsToSolution(localCellData);
}
if (this->collectToIORank_.isIORank()) {
@ -501,7 +501,7 @@ public:
const auto& gridView = simulator_.vanguard().gridView();
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();
@ -510,7 +510,7 @@ public:
gridView.grid().comm());
for (unsigned elemIdx = 0; elemIdx < numElements; ++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();
@ -542,11 +542,11 @@ public:
void endRestart()
{}
const EclOutputBlackOilModule<TypeTag>& eclOutputModule() const
{ return *eclOutputModule_; }
const OutputBlackOilModule<TypeTag>& outputModule() const
{ return *outputModule_; }
EclOutputBlackOilModule<TypeTag>& mutableEclOutputModule() const
{ return *eclOutputModule_; }
OutputBlackOilModule<TypeTag>& mutableOutputModule() const
{ return *outputModule_; }
Scalar restartTimeStepSize() const
{ return restartTimeStepSize_; }
@ -554,7 +554,7 @@ public:
template <class Serializer>
void serializeOp(Serializer& serializer)
{
serializer(*eclOutputModule_);
serializer(*outputModule_);
}
private:
@ -581,7 +581,7 @@ private:
{
OPM_TIMEBLOCK(prepareLocalCellData);
if (this->eclOutputModule_->localDataValid()) {
if (this->outputModule_->localDataValid()) {
return;
}
@ -590,7 +590,7 @@ private:
const int num_interior = detail::
countLocalInteriorCellsGridView(gridView);
this->eclOutputModule_->
this->outputModule_->
allocBuffers(num_interior, reportStepNum,
isSubStep, log, /*isRestart*/ false);
@ -601,16 +601,16 @@ private:
{
OPM_TIMEBLOCK(prepareCellBasedData);
this->eclOutputModule_->prepareDensityAccumulation();
this->outputModule_->prepareDensityAccumulation();
for (const auto& elem : elements(gridView, Dune::Partitions::interior)) {
elemCtx.updatePrimaryStencil(elem);
elemCtx.updatePrimaryIntensiveQuantities(/*timeIdx=*/0);
this->eclOutputModule_->processElement(elemCtx);
this->outputModule_->processElement(elemCtx);
}
this->eclOutputModule_->accumulateDensityParallel();
this->outputModule_->accumulateDensityParallel();
}
if constexpr (enableMech) {
@ -619,7 +619,7 @@ private:
for (const auto& elem : elements(gridView, Dune::Partitions::interior)) {
elemCtx.updatePrimaryStencil(elem);
elemCtx.updatePrimaryIntensiveQuantities(/*timeIdx=*/0);
eclOutputModule_->processElementMech(elemCtx);
outputModule_->processElementMech(elemCtx);
}
}
}
@ -630,7 +630,7 @@ private:
elemCtx.updatePrimaryStencil(elem);
elemCtx.updatePrimaryIntensiveQuantities(/*timeIdx=*/0);
this->eclOutputModule_->processElementFlows(elemCtx);
this->outputModule_->processElementFlows(elemCtx);
}
}
@ -640,7 +640,7 @@ private:
elemCtx.updatePrimaryStencil(elem);
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 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: ",
this->simulator_.vanguard().grid().comm());
@ -684,7 +684,7 @@ private:
return this->cartMapper_.cartesianIndex(elemIndex);
};
this->eclOutputModule_->initializeFluxData();
this->outputModule_->initializeFluxData();
OPM_BEGIN_PARALLEL_TRY_CATCH();
@ -693,17 +693,17 @@ private:
elemCtx.updateIntensiveQuantities(timeIdx);
elemCtx.updateExtensiveQuantities(timeIdx);
this->eclOutputModule_->processFluxes(elemCtx, activeIndex, cartesianIndex);
this->outputModule_->processFluxes(elemCtx, activeIndex, cartesianIndex);
}
OPM_END_PARALLEL_TRY_CATCH("EclWriter::captureLocalFluxData() failed: ",
this->simulator_.vanguard().grid().comm())
this->eclOutputModule_->finalizeFluxData();
this->outputModule_->finalizeFluxData();
}
Simulator& simulator_;
std::unique_ptr<EclOutputBlackOilModule<TypeTag> > eclOutputModule_;
std::unique_ptr<OutputBlackOilModule<TypeTag> > outputModule_;
Scalar restartTimeStepSize_;
int rank_ ;
Inplace inplace_;

View File

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

View File

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