This commit switches the 'test_Summary' unit test to use class ESmry
for inspecting the values output to disk by 'out::Summary'. As a
consequence, we are not able to verify units of measure for the
parameters, at least not for the time being. Moreover, class ESmry
exclusively uses the "i,j,k" sub-key for block-related parameters so
switch those to reference the IJK identifiers.
Finally, as class ESmry currently does not support reading separate
(multiple) summary files, switch the input decks to generate unified
output.
This commit switches a set of OPM-Common's unit tests away from
using direct calls to libecl functions and into using base types
from OPM-Common itself (along with Boost.Filesystem).
In particular summary related queries are replaced by calls to ESmry
member functions (wrapped in libecl-like interfaces to minimise code
changes). We disable checks on unit strings since ESmry currently
does not have a way of associating those with individual variables.
This commit takes a pass at the implementation files in opm-common
and removes references to libecl functions where practical. In
particular we switch to using types from C++'s standard library (and
Boost.Filesystem) to achieve the effects of the interfaces being
replaced.
We also insert direct calls to Posix function fnmatch() to preserve
existing pattern matching behaviour (well lists and well templates).
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 replaces the existing system for writing summary and
specification (SMSPEC) files with a new implementation based on
class EclOutput. We package the evaluators of individual parameters
in a set of classes determined by the parameter's category which
each implement a virtual 'update()' function. This update function
ultimately writes new values into a SummaryState object.
Add a factory-like system for instantiating the appropriate class
depending on a SummaryNode's 'category()'. Also, add a helper class
for managing the parameters that a configured in a simulation
model's SUMMARY section in order to distinguish these from those
parameters that are merely needed for restart purposes. The summary
class's 'eval()' function then becomes a loop over the evaluators
for parameters in SUMMARY followed by a loop over the evaluators for
restart vectors.
We reimplement the 'internal_store()' function in terms of an
std::vector of a helper structure 'MiniStep' which holds a ministep
ID (contiguous counter started at zero), a report step ID, and all
the evaluated parameters of this ministep. The final write function
then consists of outputting those ministep structures that have
accumulated since the previous call to write(). If a simulation
does not call write at all, then this will accumulate all parameters
for all ministeps throughout the simulation history.
We create the SMSPEC file at most once, and write to it at most each
report step. We create the summary file once (if unified) or at
each report step (if separate).
Needed to ensure we create the same summary/specification files as
the existing system. We will revert this change once the new system
is in place and we can afford to update the reference solutions.
Flow's saturation function finalizers don't currently handle models
with fewer than three active phases. Don't attempt to fill in
scaled endpoint vectors in this case, but issue a warning that we're
ignoring FILLEPS here.
The summary file must have DAYS (&c) for its TIME vector unit. This
is a step towards enabling new summary writer functionality.
Update the RFT writer accordingly.
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.
This commit extends Flow's support for separate restart files to
more than 10,000 report steps (not necessarily restart steps). In
particular, add support for generating separate restart files named
CASE.X000n, CASE.Y000n, CASE.Z000n (unformatted)
CASE.F000n, CASE.G000n, CASE.H000n (formatted)
This is mostly for completeness. We do not really expect to run
simulation models with more than 10,000 (or 20,000) report steps.