20#ifndef OPM_IO_OUTPUTSTREAM_HPP_INCLUDED
21#define OPM_IO_OUTPUTSTREAM_HPP_INCLUDED
23#include <opm/io/eclipse/PaddedOutputString.hpp>
24#include <opm/common/utility/TimeService.hpp>
33namespace Opm {
namespace EclIO {
39namespace Opm {
namespace EclIO {
namespace OutputStream {
73 Init& operator=(
const Init& rhs) =
delete;
81 void write(
const std::string& kw,
82 const std::vector<int>& data);
89 void write(
const std::string& kw,
90 const std::vector<bool>& data);
98 void write(
const std::string& kw,
99 const std::vector<float>& data);
107 void write(
const std::string& kw,
108 const std::vector<double>& data);
116 void write(
const std::string& kw,
121 void message(
const std::string& msg);
125 std::unique_ptr<EclOutput> stream_;
135 void open(
const std::string& fname,
136 const bool formatted);
142 template <
typename T>
143 void writeImpl(
const std::string& kw,
144 const std::vector<T>& data);
185 void message(
const std::string& msg);
192 void write(
const std::string& kw,
193 const std::vector<int>& data);
200 void write(
const std::string& kw,
201 const std::vector<bool>& data);
209 void write(
const std::string& kw,
210 const std::vector<float>& data);
218 void write(
const std::string& kw,
219 const std::vector<double>& data);
226 void write(
const std::string& kw,
227 const std::vector<std::string>& data);
235 void write(
const std::string& kw,
240 std::unique_ptr<EclOutput> stream_;
254 void openUnified(
const std::string& fname,
255 const bool formatted,
267 void openNew(
const std::string& fname,
268 const bool formatted);
280 void openExisting(
const std::string& fname,
281 const bool formatted,
282 const std::streampos writePos);
290 template <
typename T>
291 void writeImpl(
const std::string& kw,
292 const std::vector<T>& data);
316 RFT(
const RFT& rhs) =
delete;
319 RFT& operator=(
const RFT& rhs) =
delete;
320 RFT& operator=(
RFT&& rhs);
327 void write(
const std::string& kw,
328 const std::vector<int>& data);
336 void write(
const std::string& kw,
337 const std::vector<float>& data);
345 void write(
const std::string& kw,
350 std::unique_ptr<EclOutput> stream_;
363 void open(
const std::string& fname,
364 const bool formatted,
365 const bool existing);
371 template <
typename T>
372 void writeImpl(
const std::string& kw,
373 const std::vector<T>& data);
376 class SummarySpecification
379 using StartTime = time_point;
381 enum class UnitConvention
398 void add(
const std::string& keyword,
399 const std::string& wgname,
401 const std::string&
unit);
403 friend class SummarySpecification;
406 std::vector<PaddedOutputString<8>> keywords{};
407 std::vector<PaddedOutputString<8>> wgnames{};
408 std::vector<int> nums{};
409 std::vector<PaddedOutputString<8>> units{};
412 explicit SummarySpecification(
const ResultSet& rset,
414 const UnitConvention uconv,
415 const std::array<int,3>& cartDims,
417 const StartTime start);
419 ~SummarySpecification();
421 SummarySpecification(
const SummarySpecification& rhs) =
delete;
422 SummarySpecification(SummarySpecification&& rhs);
424 SummarySpecification& operator=(
const SummarySpecification& rhs) =
delete;
425 SummarySpecification& operator=(SummarySpecification&& rhs);
432 std::array<int,3> cartDims_;
433 StartTime startDate_;
434 std::vector<PaddedOutputString<8>> restart_;
437 std::unique_ptr<EclOutput> stream_;
445 std::unique_ptr<EclOutput>
464 std::string outputFileName(
const ResultSet& rsetDescriptor,
465 const std::string& ext);
Definition EclOutput.hpp:38
void write(const std::string &kw, const std::vector< int > &data)
Write integer data to underlying output stream.
Definition OutputStream.cpp:237
void message(const std::string &msg)
Definition OutputStream.cpp:271
Init(const ResultSet &rset, const Formatted &fmt)
Constructor.
Definition OutputStream.cpp:212
void write(const std::string &kw, const std::vector< int > &data)
Write integer data to underlying output stream.
Definition OutputStream.cpp:516
RFT(const ResultSet &rset, const Formatted &fmt, const OpenExisting &existing)
Constructor.
Definition OutputStream.cpp:490
Restart(const ResultSet &rset, const int seqnum, const Formatted &fmt, const Unified &unif)
Constructor.
Definition OutputStream.cpp:304
void message(const std::string &msg)
Generate a message string (keyword type 'MESS') in underlying output stream.
Definition OutputStream.cpp:343
void write(const std::string &kw, const std::vector< int > &data)
Write integer data to underlying output stream.
Definition OutputStream.cpp:350
Definition OutputStream.hpp:396
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:299
Abstract representation of an ECLIPSE-style result set.
Definition OutputStream.hpp:46
std::string baseName
Base name of simulation run.
Definition OutputStream.hpp:51
std::string outputDir
Output directory. Commonly "." or location of run's .DATA file.
Definition OutputStream.hpp:48
Definition OutputStream.hpp:390
Definition OutputStream.hpp:42