diff --git a/examples/sim_poly_fi2p_comp_ad.cpp b/examples/sim_poly_fi2p_comp_ad.cpp index ae5b91ef0..cef9191c8 100644 --- a/examples/sim_poly_fi2p_comp_ad.cpp +++ b/examples/sim_poly_fi2p_comp_ad.cpp @@ -37,7 +37,7 @@ #include #include -#include +#include #include #include #include @@ -239,11 +239,11 @@ try std::cout << "\n\n================ Starting main simulation loop ===============\n" << std::flush; - std::unique_ptr - eclipseWriter(new Opm::EclipseWriter(*eclipseState, - UgGridHelpers - ::createEclipseGrid( cGrid , - eclipseState->getInputGrid()))); + std::unique_ptr + eclipseWriter(new Opm::EclipseIO(*eclipseState, + UgGridHelpers + ::createEclipseGrid( cGrid , + eclipseState->getInputGrid()))); Opm::BlackoilOutputWriter outputWriter(cGrid, param, *eclipseState, std::move(eclipseWriter), pu, new_props->permeability() ); diff --git a/opm/autodiff/FlowMain.hpp b/opm/autodiff/FlowMain.hpp index 47c7240af..f1d6b1fdf 100644 --- a/opm/autodiff/FlowMain.hpp +++ b/opm/autodiff/FlowMain.hpp @@ -234,7 +234,7 @@ namespace Opm // distributeData() boost::any parallel_information_; // setupOutputWriter() - std::unique_ptr eclipse_writer_; + std::unique_ptr eclipse_writer_; std::unique_ptr output_writer_; // setupLinearSolver std::unique_ptr fis_solver_; @@ -762,7 +762,7 @@ namespace Opm if( output && output_ecl && output_cout_) { const EclipseGrid& inputGrid = eclipse_state_->getInputGrid(); - eclipse_writer_.reset(new EclipseWriter(*eclipse_state_, UgGridHelpers::createEclipseGrid( grid , inputGrid ))); + eclipse_writer_.reset(new EclipseIO(*eclipse_state_, UgGridHelpers::createEclipseGrid( grid , inputGrid ))); eclipse_writer_->writeInitial(geoprops_->simProps(grid), geoprops_->nonCartesianConnections()); } diff --git a/opm/autodiff/FlowMainEbos.hpp b/opm/autodiff/FlowMainEbos.hpp index f3c353817..975d9ffe9 100644 --- a/opm/autodiff/FlowMainEbos.hpp +++ b/opm/autodiff/FlowMainEbos.hpp @@ -545,8 +545,8 @@ namespace Opm if( output && output_ecl && output_cout_) { const EclipseGrid& inputGrid = eclState().getInputGrid(); - eclipse_writer_.reset(new EclipseWriter(eclState(), UgGridHelpers::createEclipseGrid( grid , inputGrid ))); - eclipse_writer_->writeInitial(geoprops_->simProps(grid), + eclIO_.reset(new EclipseIO(eclState(), UgGridHelpers::createEclipseGrid( grid , inputGrid ))); + eclIO_->writeInitial(geoprops_->simProps(grid), geoprops_->nonCartesianConnections()); } } @@ -562,7 +562,7 @@ namespace Opm output_writer_.reset(new OutputWriter(grid(), param_, eclState(), - std::move(eclipse_writer_), + std::move(eclIO_), Opm::phaseUsageFromDeck(deck()), fluidprops_->permeability())); } @@ -725,7 +725,7 @@ namespace Opm std::unique_ptr fluidprops_; std::unique_ptr geoprops_; std::unique_ptr state_; - std::unique_ptr eclipse_writer_; + std::unique_ptr eclIO_; std::unique_ptr output_writer_; boost::any parallel_information_; std::unique_ptr fis_solver_; diff --git a/opm/autodiff/SimulatorFullyImplicitBlackoilOutput.cpp b/opm/autodiff/SimulatorFullyImplicitBlackoilOutput.cpp index 051ae9c91..32977925b 100644 --- a/opm/autodiff/SimulatorFullyImplicitBlackoilOutput.cpp +++ b/opm/autodiff/SimulatorFullyImplicitBlackoilOutput.cpp @@ -317,18 +317,18 @@ namespace Opm } // ECL output - if ( eclWriter_ ) + if ( eclIO_ ) { const auto& initConfig = eclipseState_.getInitConfig(); if (initConfig.restartRequested() && ((initConfig.getRestartStep()) == (timer.currentStepNum()))) { std::cout << "Skipping restart write in start of step " << timer.currentStepNum() << std::endl; } else { // ... insert "extra" data (KR, VISC, ...) - eclWriter_->writeTimeStep(timer.reportStepNum(), - substep, - timer.simulationTimeElapsed(), - simProps, - wellState.report(phaseUsage_)); + eclIO_->writeTimeStep(timer.reportStepNum(), + substep, + timer.simulationTimeElapsed(), + simProps, + wellState.report(phaseUsage_)); } } diff --git a/opm/autodiff/SimulatorFullyImplicitBlackoilOutput.hpp b/opm/autodiff/SimulatorFullyImplicitBlackoilOutput.hpp index aed311313..191f68dc4 100644 --- a/opm/autodiff/SimulatorFullyImplicitBlackoilOutput.hpp +++ b/opm/autodiff/SimulatorFullyImplicitBlackoilOutput.hpp @@ -26,14 +26,13 @@ #include #include #include -#include #include #include #include #include #include -#include +#include #include #include @@ -208,7 +207,7 @@ namespace Opm BlackoilOutputWriter(const Grid& grid, const parameter::ParameterGroup& param, const Opm::EclipseState& eclipseState, - std::unique_ptr&& eclWriter, + std::unique_ptr&& eclIO, const Opm::PhaseUsage &phaseUsage, const double* permeability ); @@ -305,7 +304,7 @@ namespace Opm Opm::PhaseUsage phaseUsage_; std::unique_ptr< BlackoilSubWriter > vtkWriter_; std::unique_ptr< BlackoilSubWriter > matlabWriter_; - std::unique_ptr< EclipseWriter > eclWriter_; + std::unique_ptr< EclipseIO > eclIO_; const EclipseState& eclipseState_; std::unique_ptr< ThreadHandle > asyncOutput_; @@ -323,7 +322,7 @@ namespace Opm BlackoilOutputWriter(const Grid& grid, const parameter::ParameterGroup& param, const Opm::EclipseState& eclipseState, - std::unique_ptr&& eclWriter, + std::unique_ptr&& eclIO, const Opm::PhaseUsage &phaseUsage, const double* permeability ) : output_( param.getDefault("output", true) ), @@ -360,7 +359,7 @@ namespace Opm .reset(new BlackoilMatlabWriter< Grid >( grid, outputDir_ )); } - eclWriter_ = std::move(eclWriter); + eclIO_ = std::move(eclIO); // Ensure that output dir exists boost::filesystem::path fpath(outputDir_); @@ -406,6 +405,13 @@ namespace Opm SimulationDataContainer& simulatorstate, WellStateFullyImplicitBlackoil& wellstate) { + std::map solution_keys {{"PRESSURE" , UnitSystem::measure::pressure}, + {"SWAT" , UnitSystem::measure::identity}, + {"SGAS" , UnitSystem::measure::identity}, + {"TEMP" , UnitSystem::measure::temperature}, + {"RS" , UnitSystem::measure::gas_oil_ratio}, + {"RV" , UnitSystem::measure::oil_gas_ratio}}; + // gives a dummy dynamic_list_econ_limited DynamicListEconLimited dummy_list_econ_limited; WellsManager wellsmanager(eclipseState_, @@ -428,12 +434,10 @@ namespace Opm const Wells* wells = wellsmanager.c_wells(); wellstate.resize(wells, simulatorstate); //Resize for restart step - auto restarted = Opm::init_from_restart_file( - eclipseState_, - Opm::UgGridHelpers::numCells(grid) ); + auto state = eclIO_->loadRestart(solution_keys); - solutionToSim( restarted.first, phaseusage, simulatorstate ); - wellsToState( restarted.second, phaseusage, wellstate ); + solutionToSim( state.first, phaseusage, simulatorstate ); + wellsToState( state.second, phaseusage, wellstate ); } diff --git a/opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.cpp b/opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.cpp index 85480608c..6c8405ec3 100644 --- a/opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.cpp +++ b/opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.cpp @@ -156,7 +156,7 @@ namespace Opm bool substep) { // ECL output - if ( eclWriter_ ) + if ( eclIO_ ) { const auto& initConfig = eclipseState_.getInitConfig(); if (initConfig.restartRequested() && ((initConfig.getRestartStep()) == (timer.currentStepNum()))) { @@ -164,11 +164,11 @@ namespace Opm } else { data::Solution combined_sol = simToSolution(state, phaseUsage_); // Get "normal" data (SWAT, PRESSURE, ...) combined_sol.insert(sol.begin(), sol.end()); // ... insert "extra" data (KR, VISC, ...) - eclWriter_->writeTimeStep(timer.reportStepNum(), - substep, - timer.simulationTimeElapsed(), - combined_sol, - wellState.report(phaseUsage_)); + eclIO_->writeTimeStep(timer.reportStepNum(), + substep, + timer.simulationTimeElapsed(), + combined_sol, + wellState.report(phaseUsage_)); } } diff --git a/opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.hpp b/opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.hpp index b2c1b4bf0..ee6e8e28a 100644 --- a/opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.hpp +++ b/opm/autodiff/SimulatorFullyImplicitBlackoilOutputEbos.hpp @@ -25,12 +25,11 @@ #include #include #include -#include #include #include #include -#include +#include #include #include @@ -70,7 +69,7 @@ namespace Opm BlackoilOutputWriterEbos(const Grid& grid, const parameter::ParameterGroup& param, const EclipseState& eclipseState, - std::unique_ptr&& eclWriter, + std::unique_ptr&& eclIO, const Opm::PhaseUsage &phaseUsage, const double* permeability ); @@ -162,7 +161,7 @@ namespace Opm std::ofstream backupfile_; Opm::PhaseUsage phaseUsage_; - std::unique_ptr eclWriter_; + std::unique_ptr eclIO_; const EclipseState& eclipseState_; std::unique_ptr< ThreadHandle > asyncOutput_; @@ -180,7 +179,7 @@ namespace Opm BlackoilOutputWriterEbos(const Grid& grid, const parameter::ParameterGroup& param, const Opm::EclipseState& eclipseState, - std::unique_ptr&& eclWriter, + std::unique_ptr&& eclIO, const Opm::PhaseUsage &phaseUsage, const double* permeability ) : output_( param.getDefault("output", true) ), @@ -194,7 +193,7 @@ namespace Opm { // For output. if (output_ && parallelOutput_->isIORank() ) { - eclWriter_ = std::move(eclWriter); + eclIO_ = std::move(eclIO); // Ensure that output dir exists boost::filesystem::path fpath(outputDir_); @@ -239,6 +238,13 @@ namespace Opm SimulationDataContainer& simulatorstate, WellStateFullyImplicitBlackoilDense& wellstate) { + std::map solution_keys {{"PRESSURE" , UnitSystem::measure::pressure}, + {"SWAT" , UnitSystem::measure::identity}, + {"SGAS" , UnitSystem::measure::identity}, + {"TEMP" , UnitSystem::measure::temperature}, + {"RS" , UnitSystem::measure::gas_oil_ratio}, + {"RV" , UnitSystem::measure::oil_gas_ratio}}; + // gives a dummy dynamic_list_econ_limited DynamicListEconLimited dummy_list_econ_limited; WellsManager wellsmanager(eclipseState_, @@ -261,12 +267,9 @@ namespace Opm const Wells* wells = wellsmanager.c_wells(); wellstate.resize(wells, simulatorstate, phaseusage ); //Resize for restart step - auto restarted = Opm::init_from_restart_file( - eclipseState_, - Opm::UgGridHelpers::numCells(grid) ); - - solutionToSim( restarted.first, phaseusage, simulatorstate ); - wellsToState( restarted.second, phaseusage, wellstate ); + auto state = eclIO_->loadRestart(solution_keys); + solutionToSim( state.first, phaseusage, simulatorstate ); + wellsToState( state.second, phaseusage, wellstate ); } diff --git a/opm/polymer/fullyimplicit/SimulatorFullyImplicitCompressiblePolymer.hpp b/opm/polymer/fullyimplicit/SimulatorFullyImplicitCompressiblePolymer.hpp index 1c22d5ed2..580fa4a77 100644 --- a/opm/polymer/fullyimplicit/SimulatorFullyImplicitCompressiblePolymer.hpp +++ b/opm/polymer/fullyimplicit/SimulatorFullyImplicitCompressiblePolymer.hpp @@ -38,7 +38,7 @@ #include #include #include -#include +#include #include #include