- EclIO classes have been updated to support arrays with size beyond numeric limits for integers
- Output of arrays having 2^31 or more elements is facilitated by using a pair of headers
- The first header is of type X231, second should have the actual type
- The large array format extension is documented in the Eclipse File format manual
since we still support g++-7, where filesystem is marked experimental,
we introduce a wrapper header and expose the namespace to use
as Opm::filesystem.
for gcc we unconditionally link with libstdc++fs in the python bindings.
the setup.py stuff links as c code, not c++ code, so it is not
automatically added on any gcc version. this might prove unportable
later.
This commit introduces a new member function
int ESmry::miniStepIdxAtReportStep(rptStep)
which returns the zero-based ministep corresponding to the start of
the given report step (one-based indexing). This will simplify
decoupling a few unit tests from libecl.
This commit adds a single function, createSummaryFile, that opens an
EclOutput object on a file named as an ECLIPSE summary file
(formatted vs. unformatted, unified vs. separate) and returns a
unique_ptr to this.
This is a step towards enabling new summary writer functionality.
Calls '.flush()' on the contained 'ofstream' object. Needed as a
means of ensuring that bits in the internal buffers of the I/O
system are promptly output to permanent storage. This, in turn, is
needed in upcoming work on the summary writing feature.
This commit introduces a new OutputStream class for representing the
summary specification file (.SMSPEC). The stream is constructed
with constant data (output directory, basename, start date &c), and
provides a single write() member function that outputs a summary
specification.
Each call to write rewinds the underlying stream's output position.
Class EclOutput grants friendship to the new output stream class in
order to support easy stream rewinding.
Add a unit test to exercise the new class.
This commit introduces a new output stream, 'RFT', that is intended
as a new backend for writing RFT files. At present this supports
integer, float, and PaddedOutputString<8> element types since those
are the types needed for basic RFT data. We will extend the element
support if needed for PLT and/or Segment data.
We support formatted and unformatted output streams and distinguish
between opening a new stream and opening an existing output stream
(essentially between open modes ios_base::out and ios_base::app).
Add unit tests to exercise the possible combinations.
This commit introduces a new file manager,
Opm::EclIO::OutputStream::Init
that's intended to replace the low-level operations of Flow's INIT
file writer. The implementation uses the 'EclOutput' class and is
very similar to that of the 'Restart' stream introduced in commit
992d3b0c. The commonality between the two file managers might
possibly be extracted to a base class at a later time.
As of right now, the Init class supports outputting vectors of
'int', 'bool', 'float', and 'double'. Additional types will be
supported when needed.
This commit makes class 'Opm::EclIO::ERst' able to open separate
restart files (*.X000n, *.F000n). Specifically, we refactor the
existing class constructor body into a new helper function
'initUnified'. We add a new helper function 'initSeparate' that
builds the requisite indices in the case of a single report step,
and make the constructor body call 'initUnified' or 'initSeparate'
depending on whether or not the SEQNUM keyword exists in the restart
stream.
Add two new unit tests to exercise the new ability.