21#ifndef OPM_IO_OUTPUTSTREAM_HPP_INCLUDED
22#define OPM_IO_OUTPUTSTREAM_HPP_INCLUDED
24#include <opm/io/eclipse/PaddedOutputString.hpp>
25#include <opm/common/utility/TimeService.hpp>
34namespace Opm {
namespace EclIO {
40namespace Opm {
namespace EclIO {
namespace OutputStream {
74 Init& operator=(
const Init& rhs) =
delete;
82 void write(
const std::string& kw,
83 const std::vector<int>& data);
90 void write(
const std::string& kw,
91 const std::vector<bool>& data);
99 void write(
const std::string& kw,
100 const std::vector<float>& data);
108 void write(
const std::string& kw,
109 const std::vector<double>& data);
117 void write(
const std::string& kw,
122 void message(
const std::string& msg);
126 std::unique_ptr<EclOutput> stream_;
136 void open(
const std::string& fname,
137 const bool formatted);
143 template <
typename T>
144 void writeImpl(
const std::string& kw,
145 const std::vector<T>& data);
186 void message(
const std::string& msg);
193 void write(
const std::string& kw,
194 const std::vector<int>& data);
201 void write(
const std::string& kw,
202 const std::vector<bool>& data);
210 void write(
const std::string& kw,
211 const std::vector<float>& data);
219 void write(
const std::string& kw,
220 const std::vector<double>& data);
227 void write(
const std::string& kw,
228 const std::vector<std::string>& data);
236 void write(
const std::string& kw,
241 std::unique_ptr<EclOutput> stream_;
255 void openUnified(
const std::string& fname,
256 const bool formatted,
268 void openNew(
const std::string& fname,
269 const bool formatted);
281 void openExisting(
const std::string& fname,
282 const bool formatted,
283 const std::streampos writePos);
291 template <
typename T>
292 void writeImpl(
const std::string& kw,
293 const std::vector<T>& data);
317 RFT(
const RFT& rhs) =
delete;
320 RFT& operator=(
const RFT& rhs) =
delete;
321 RFT& operator=(
RFT&& rhs);
328 void write(
const std::string& kw,
329 const std::vector<int>& data);
337 void write(
const std::string& kw,
338 const std::vector<float>& data);
346 void write(
const std::string& kw,
351 std::unique_ptr<EclOutput> stream_;
364 void open(
const std::string& fname,
365 const bool formatted,
366 const bool existing);
372 template <
typename T>
373 void writeImpl(
const std::string& kw,
374 const std::vector<T>& data);
377 class SummarySpecification
380 using StartTime = time_point;
382 enum class UnitConvention
399 void add(
const std::string& keyword,
400 const std::string& wgname,
402 const std::string&
unit);
404 friend class SummarySpecification;
407 std::vector<PaddedOutputString<8>> keywords{};
408 std::vector<PaddedOutputString<8>> wgnames{};
409 std::vector<int> nums{};
410 std::vector<PaddedOutputString<8>> units{};
413 explicit SummarySpecification(
const ResultSet& rset,
415 const UnitConvention uconv,
416 const std::array<int,3>& cartDims,
418 const StartTime start,
419 const StartTime computeStart);
421 ~SummarySpecification();
423 SummarySpecification(
const SummarySpecification& rhs) =
delete;
424 SummarySpecification(SummarySpecification&& rhs);
426 SummarySpecification& operator=(
const SummarySpecification& rhs) =
delete;
427 SummarySpecification& operator=(SummarySpecification&& rhs);
436 const int currentStep,
const int basic);
441 std::array<int,3> cartDims_;
442 StartTime startDate_;
444 StartTime computeStart_;
445 std::vector<PaddedOutputString<8>> restart_;
448 std::unique_ptr<EclOutput> stream_;
456 std::unique_ptr<EclOutput>
475 std::string outputFileName(
const ResultSet& rsetDescriptor,
476 const std::string& ext);
Definition EclOutput.hpp:39
void write(const std::string &kw, const std::vector< int > &data)
Write integer data to underlying output stream.
Definition OutputStream.cpp:238
void message(const std::string &msg)
Definition OutputStream.cpp:272
Init(const ResultSet &rset, const Formatted &fmt)
Constructor.
Definition OutputStream.cpp:213
void write(const std::string &kw, const std::vector< int > &data)
Write integer data to underlying output stream.
Definition OutputStream.cpp:517
RFT(const ResultSet &rset, const Formatted &fmt, const OpenExisting &existing)
Constructor.
Definition OutputStream.cpp:491
Restart(const ResultSet &rset, const int seqnum, const Formatted &fmt, const Unified &unif)
Constructor.
Definition OutputStream.cpp:305
void message(const std::string &msg)
Generate a message string (keyword type 'MESS') in underlying output stream.
Definition OutputStream.cpp:344
void write(const std::string &kw, const std::vector< int > &data)
Write integer data to underlying output stream.
Definition OutputStream.cpp:351
Definition OutputStream.hpp:397
void write(const Parameters ¶ms, const bool simulationFinished, const int currentStep, const int basic)
Write SMSPEC file.
Definition OutputStream.cpp:806
Null-terminated, left adjusted, space padded array of N characters.
Definition PaddedOutputString.hpp:40
Definition of various units.
Definition Units.hpp:84
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30
Definition OutputStream.hpp:300
Abstract representation of an ECLIPSE-style result set.
Definition OutputStream.hpp:47
std::string baseName
Base name of simulation run.
Definition OutputStream.hpp:52
std::string outputDir
Output directory. Commonly "." or location of run's .DATA file.
Definition OutputStream.hpp:49
Definition OutputStream.hpp:391
Definition OutputStream.hpp:43