mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
making OutputModule template parameter of EclWriter
This commit is contained in:
parent
197282ccfc
commit
3635132d95
@ -30,23 +30,30 @@
|
||||
|
||||
#include <dune/grid/common/partitionset.hh>
|
||||
|
||||
#include <opm/common/TimingMacros.hpp> // OPM_TIMEBLOCK
|
||||
#include <opm/common/OpmLog/OpmLog.hpp>
|
||||
#include <opm/input/eclipse/Schedule/RPTConfig.hpp>
|
||||
|
||||
#include <opm/input/eclipse/Units/UnitSystem.hpp>
|
||||
#include <opm/input/eclipse/EclipseState/SummaryConfig/SummaryConfig.hpp>
|
||||
|
||||
#include <opm/output/eclipse/Inplace.hpp>
|
||||
#include <opm/output/eclipse/RestartValue.hpp>
|
||||
|
||||
#include <opm/models/blackoil/blackoilproperties.hh> // Properties::EnableMech, EnableTemperature, EnableSolvent
|
||||
#include <opm/models/common/multiphasebaseproperties.hh> // Properties::FluidSystem
|
||||
|
||||
#include <opm/simulators/flow/CollectDataOnIORank.hpp>
|
||||
#include <opm/simulators/flow/countGlobalCells.hpp>
|
||||
#include <opm/simulators/flow/EclGenericWriter.hpp>
|
||||
#include <opm/simulators/flow/FlowBaseVanguard.hpp>
|
||||
#include <opm/simulators/flow/OutputCompositionalModule.hpp>
|
||||
#include <opm/simulators/timestepping/SimulatorTimer.hpp>
|
||||
#include <opm/simulators/utils/DeferredLoggingErrorHelpers.hpp>
|
||||
#include <opm/simulators/utils/ParallelRestart.hpp>
|
||||
#include <opm/simulators/utils/ParallelSerialization.hpp>
|
||||
|
||||
#include <boost/date_time/posix_time/posix_time.hpp>
|
||||
|
||||
#include <limits>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
@ -101,7 +108,7 @@ namespace Opm {
|
||||
* - This class requires to use the black oil model with the element
|
||||
* centered finite volume discretization.
|
||||
*/
|
||||
template <class TypeTag>
|
||||
template <class TypeTag, class OutputModule>
|
||||
class EclWriter : public EclGenericWriter<GetPropType<TypeTag, Properties::Grid>,
|
||||
GetPropType<TypeTag, Properties::EquilGrid>,
|
||||
GetPropType<TypeTag, Properties::GridView>,
|
||||
@ -120,7 +127,7 @@ class EclWriter : public EclGenericWriter<GetPropType<TypeTag, Properties::Grid>
|
||||
using ElementMapper = GetPropType<TypeTag, Properties::ElementMapper>;
|
||||
using ElementIterator = typename GridView::template Codim<0>::Iterator;
|
||||
using BaseType = EclGenericWriter<Grid,EquilGrid,GridView,ElementMapper,Scalar>;
|
||||
|
||||
|
||||
typedef Dune::MultipleCodimMultipleGeomTypeMapper< GridView > VertexMapper;
|
||||
|
||||
enum { enableEnergy = getPropValue<TypeTag, Properties::EnableEnergy>() };
|
||||
@ -132,7 +139,7 @@ public:
|
||||
|
||||
static void registerParameters()
|
||||
{
|
||||
OutputCompositionalModule<TypeTag>::registerParameters();
|
||||
OutputModule::registerParameters();
|
||||
|
||||
Parameters::Register<Parameters::EnableAsyncEclOutput>
|
||||
("Write the ECL-formated results in a non-blocking way "
|
||||
@ -169,13 +176,13 @@ public:
|
||||
|
||||
eclBroadcast(this->simulator_.vanguard().grid().comm(), smryCfg);
|
||||
|
||||
this->outputModule_ = std::make_unique<OutputCompositionalModule<TypeTag>>
|
||||
this->outputModule_ = std::make_unique<OutputModule>
|
||||
(simulator, smryCfg, this->collectOnIORank_);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
this->outputModule_ = std::make_unique<OutputCompositionalModule<TypeTag>>
|
||||
this->outputModule_ = std::make_unique<OutputModule>
|
||||
(simulator, this->eclIO_->finalSummaryConfig(), this->collectOnIORank_);
|
||||
}
|
||||
|
||||
@ -660,10 +667,10 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
const OutputCompositionalModule<TypeTag>& outputModule() const
|
||||
const OutputModule& outputModule() const
|
||||
{ return *outputModule_; }
|
||||
|
||||
OutputCompositionalModule<TypeTag>& mutableOutputModule() const
|
||||
OutputModule& mutableOutputModule() const
|
||||
{ return *outputModule_; }
|
||||
|
||||
Scalar restartTimeStepSize() const
|
||||
@ -825,8 +832,8 @@ private:
|
||||
}
|
||||
|
||||
Simulator& simulator_;
|
||||
// TODO: OutputCompositionalModule needs to be part of the TypeTag
|
||||
std::unique_ptr<OutputCompositionalModule<TypeTag> > outputModule_;
|
||||
// TODO: OutputModule needs to be part of the TypeTag
|
||||
std::unique_ptr<OutputModule> outputModule_;
|
||||
Scalar restartTimeStepSize_;
|
||||
int rank_ ;
|
||||
Inplace inplace_;
|
||||
|
@ -50,6 +50,7 @@
|
||||
#include <opm/simulators/flow/FlowProblemBlackoilProperties.hpp>
|
||||
#include <opm/simulators/flow/FlowThresholdPressure.hpp>
|
||||
#include <opm/simulators/flow/MixingRateControls.hpp>
|
||||
#include <opm/simulators/flow/OutputBlackoilModule.hpp>
|
||||
#include <opm/simulators/flow/VtkTracerModule.hpp>
|
||||
|
||||
#include <opm/simulators/utils/satfunc/SatfuncConsistencyCheckManager.hpp>
|
||||
@ -141,7 +142,7 @@ class FlowProblemBlackoil : public FlowProblem<TypeTag>
|
||||
using ModuleParams = typename BlackOilLocalResidualTPFA<TypeTag>::ModuleParams;
|
||||
|
||||
using InitialFluidState = typename EquilInitializer<TypeTag>::ScalarFluidState;
|
||||
using EclWriterType = EclWriter<TypeTag>;
|
||||
using EclWriterType = EclWriter<TypeTag, OutputBlackOilModule<TypeTag> >;
|
||||
#if HAVE_DAMARIS
|
||||
using DamarisWriterType = DamarisWriter<TypeTag>;
|
||||
#endif
|
||||
|
@ -32,6 +32,8 @@
|
||||
|
||||
|
||||
#include <opm/simulators/flow/FlowProblem.hpp>
|
||||
#include <opm/simulators/flow/OutputCompositionalModule.hpp>
|
||||
|
||||
#include <opm/material/fluidstates/CompositionalFluidState.hpp>
|
||||
|
||||
#include <opm/material/thermal/EclThermalLawManager.hpp>
|
||||
@ -82,7 +84,7 @@ class FlowProblemComp : public FlowProblem<TypeTag>
|
||||
using typename FlowProblemType::RateVector;
|
||||
|
||||
using InitialFluidState = CompositionalFluidState<Scalar, FluidSystem>;
|
||||
using EclWriterType = EclWriter<TypeTag>;
|
||||
using EclWriterType = EclWriter<TypeTag, OutputCompositionalModule<TypeTag> >;
|
||||
|
||||
public:
|
||||
using FlowProblemType::porosity;
|
||||
|
Loading…
Reference in New Issue
Block a user