mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
BlackoilOutputWriter rewritten to use opm-output
Changes to BlackoilOutputWriter as mandated by the split and rewrite of opm-output. Notable changes: * BlackoilOutputWriter is no longer a child class of OutputWriter. * Minor interface changes; writeTimeStep requires a Wells pointer * restore requires a Wells* pointer * VTK/Matlab support rewrites; no longer inherits OutputWriter * WellStateFullyImplicitBlackoil::report added, to write its data to a opm-output understood format Relies on utility/Compat.hpp for quick conversion to the opm-output defined formats.
This commit is contained in:
@@ -34,6 +34,7 @@
|
||||
#include <opm/core/simulator/SimulatorReport.hpp>
|
||||
#include <opm/core/simulator/SimulatorTimer.hpp>
|
||||
#include <opm/core/utility/StopWatch.hpp>
|
||||
#include <opm/core/utility/DataMap.hpp>
|
||||
#include <opm/output/vtk/writeVtkData.hpp>
|
||||
#include <opm/core/utility/miscUtilities.hpp>
|
||||
#include <opm/core/utility/miscUtilitiesBlackoil.hpp>
|
||||
|
||||
@@ -36,6 +36,8 @@
|
||||
#include <opm/core/simulator/SimulatorReport.hpp>
|
||||
#include <opm/core/simulator/SimulatorTimer.hpp>
|
||||
#include <opm/core/utility/StopWatch.hpp>
|
||||
#include <opm/core/utility/Compat.hpp>
|
||||
#include <opm/core/utility/DataMap.hpp>
|
||||
#include <opm/output/vtk/writeVtkData.hpp>
|
||||
#include <opm/core/utility/miscUtilities.hpp>
|
||||
|
||||
@@ -608,17 +610,20 @@ namespace Opm
|
||||
const std::string& output_dir)
|
||||
{
|
||||
#ifdef HAVE_ERT
|
||||
Opm::DataMap dm;
|
||||
dm["saturation"] = &state.saturation();
|
||||
dm["pressure"] = &state.pressure();
|
||||
dm["concentration"] = &state.getCellData( state.CONCENTRATION ) ;
|
||||
dm["cmax"] = &state.getCellData( state.CMAX ) ;
|
||||
std::vector<double> cell_velocity;
|
||||
Opm::estimateCellVelocity(grid, state.faceflux(), cell_velocity);
|
||||
dm["velocity"] = &cell_velocity;
|
||||
using ds = data::Solution::key;
|
||||
data::Solution sol;
|
||||
sol.insert( ds::PRESSURE, state.pressure() );
|
||||
sol.insert( ds::SWAT, destripe( state.saturation(), 0, 2 ) );
|
||||
|
||||
writeECLData(grid, dm, simtimer.currentStepNum(), simtimer.simulationTimeElapsed(), simtimer.currentDateTime(),
|
||||
output_dir, "polymer_ecl");
|
||||
writeECLData( grid.cartdims[ 0 ],
|
||||
grid.cartdims[ 1 ],
|
||||
grid.cartdims[ 2 ],
|
||||
grid.number_of_cells,
|
||||
sol,
|
||||
simtimer.currentStepNum(),
|
||||
simtimer.simulationTimeElapsed(),
|
||||
simtimer.currentPosixTime(),
|
||||
output_dir, "polymer_ecl");
|
||||
#else
|
||||
OPM_THROW(std::runtime_error, "Cannot call outputStateBinary() without ert library support. Reconfigure with --with-ert and recompile.");
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user