21 #ifndef OPM_IO_OUTPUTSTREAM_HPP_INCLUDED 22 #define OPM_IO_OUTPUTSTREAM_HPP_INCLUDED 24 #include <opm/io/eclipse/PaddedOutputString.hpp> 25 #include <opm/io/eclipse/SummaryNode.hpp> 26 #include <opm/common/utility/TimeService.hpp> 36 namespace Opm {
namespace EclIO {
42 namespace Opm {
namespace EclIO {
namespace OutputStream {
76 Init& operator=(
const Init& rhs) =
delete;
84 void write(
const std::string& kw,
85 const std::vector<int>& data);
92 void write(
const std::string& kw,
93 const std::vector<bool>& data);
101 void write(
const std::string& kw,
102 const std::vector<float>& data);
110 void write(
const std::string& kw,
111 const std::vector<double>& data);
119 void write(
const std::string& kw,
124 void message(
const std::string& msg);
128 std::unique_ptr<EclOutput> stream_;
138 void open(
const std::string& fname,
139 const bool formatted);
145 template <
typename T>
146 void writeImpl(
const std::string& kw,
147 const std::vector<T>& data);
188 void message(
const std::string& msg);
195 void write(
const std::string& kw,
196 const std::vector<int>& data);
203 void write(
const std::string& kw,
204 const std::vector<bool>& data);
212 void write(
const std::string& kw,
213 const std::vector<float>& data);
221 void write(
const std::string& kw,
222 const std::vector<double>& data);
229 void write(
const std::string& kw,
230 const std::vector<std::string>& data);
238 void write(
const std::string& kw,
243 std::unique_ptr<EclOutput> stream_;
257 void openUnified(
const std::string& fname,
258 const bool formatted,
270 void openNew(
const std::string& fname,
271 const bool formatted);
283 void openExisting(
const std::string& fname,
284 const bool formatted,
285 const std::streampos writePos);
293 template <
typename T>
294 void writeImpl(
const std::string& kw,
295 const std::vector<T>& data);
319 RFT(
const RFT& rhs) =
delete;
322 RFT& operator=(
const RFT& rhs) =
delete;
323 RFT& operator=(
RFT&& rhs);
330 void write(
const std::string& kw,
331 const std::vector<int>& data);
339 void write(
const std::string& kw,
340 const std::vector<float>& data);
348 void write(
const std::string& kw,
353 std::unique_ptr<EclOutput> stream_;
366 void open(
const std::string& fname,
367 const bool formatted,
368 const bool existing);
374 template <
typename T>
375 void writeImpl(
const std::string& kw,
376 const std::vector<T>& data);
382 using StartTime = time_point;
384 enum class UnitConvention
401 void add(
const std::string& keyword,
402 const std::string& wgname,
404 const std::string& unit);
406 void add(
const std::string& keyword,
407 const std::string& wgname,
409 const std::string& unit,
410 const std::optional<Opm::EclIO::lgr_info>& lgr);
421 void setNumber(
const std::size_t paramIx,
427 std::vector<PaddedOutputString<8>> keywords{};
428 std::vector<PaddedOutputString<8>> wgnames{};
429 std::vector<int> nums{};
430 std::vector<PaddedOutputString<8>> units{};
431 std::vector<PaddedOutputString<8>> lgrs{};
432 std::vector<int> numlx{};
433 std::vector<int> numly{};
434 std::vector<int> numlz{};
439 const UnitConvention uconv,
440 const std::array<int,3>& cartDims,
442 const StartTime start,
443 const StartTime computeStart);
461 const int currentStep,
const int basic);
466 std::array<int,3> cartDims_;
467 StartTime startDate_;
469 StartTime computeStart_;
470 std::vector<PaddedOutputString<8>> restart_;
473 std::unique_ptr<EclOutput> stream_;
477 void writeLgrMetadata(
const Parameters& params,
int currentStep);
482 std::unique_ptr<EclOutput>
501 std::string outputFileName(
const ResultSet& rsetDescriptor,
502 const std::string& ext);
506 #endif // OPM_IO_OUTPUTSTREAM_HPP_INCLUDED void write(const Parameters ¶ms, const bool simulationFinished, const int currentStep, const int basic)
Write SMSPEC file.
Definition: OutputStream.cpp:861
void message(const std::string &msg)
Generate a message string (keyword type 'MESS') in underlying output stream.
Definition: OutputStream.cpp:346
Init(const ResultSet &rset, const Formatted &fmt)
Constructor.
Definition: OutputStream.cpp:215
Definition: OutputStream.hpp:379
void write(const std::string &kw, const std::vector< int > &data)
Write integer data to underlying output stream.
Definition: OutputStream.cpp:240
File manager for restart output streams.
Definition: OutputStream.hpp:151
File manager for "init" output streams.
Definition: OutputStream.hpp:58
void message(const std::string &msg)
Definition: OutputStream.cpp:274
Definition: OutputStream.hpp:45
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:30
Definition: EclOutput.hpp:39
Definition: OutputStream.hpp:398
Definition: OutputStream.hpp:302
void setNumber(const std::size_t paramIx, const int num)
Assign NUMBER value of a single summary vector.
Definition: OutputStream.cpp:793
File manager for RFT output streams.
Definition: OutputStream.hpp:299
std::string baseName
Base name of simulation run.
Definition: OutputStream.hpp:54
std::string outputDir
Output directory. Commonly "." or location of run's .DATA file.
Definition: OutputStream.hpp:51
RFT(const ResultSet &rset, const Formatted &fmt, const OpenExisting &existing)
Constructor.
Definition: OutputStream.cpp:493
void write(const std::string &kw, const std::vector< int > &data)
Write integer data to underlying output stream.
Definition: OutputStream.cpp:353
void write(const std::string &kw, const std::vector< int > &data)
Write integer data to underlying output stream.
Definition: OutputStream.cpp:519
Abstract representation of an ECLIPSE-style result set.
Definition: OutputStream.hpp:48
Definition: OutputStream.hpp:392
Restart(const ResultSet &rset, const int seqnum, const Formatted &fmt, const Unified &unif)
Constructor.
Definition: OutputStream.cpp:307
Null-terminated, left adjusted, space padded array of N characters.
Definition: PaddedOutputString.hpp:39