By precomputing and storing the keyword-to-enum mapping, accessing and
writing to a node overhead changes from log(N) to constant, and should
behave better w.r.t. cache and memory access.
Not asking sum_rate/vol for wat/oil/gas is a programmer error in the
library and shouldn't happen, but is unfortunately unverifiable with the
current tooling. The fall-through now signals a runtime error instead of
silently returning the wrong value.
To clarify intent and the high-level formulas used to calculate the
requested values, a series of partial applications are introduced since
most parameters to the functions are fixed from the caller.
This increases signal-to-noise ratio in the switch dispatch, at the
expense of some boilerplate before the switch itself.
The WRITE test was a mere convenience to create and inspect a summary
file, but this should instead be moved to applications or examples, and
out of tests. The helper class setup now has a destructor that will
automatically attempt to clean up the files produced by ert.
Support for the creation and output of ecl-compatible SUMMARY-section
configured files. Supports a set of Well keywords, with unit conversions
based on user request, and comes with a test suite.
Introduces a simple format for data exchange between the simulators and
the the output facilities. Output functions will expect these types, and
it is the simulator's responsibility to create and provide it.
This patch introduces aggregates for well-related information: well
rates, bottom hole pressures and completion rates. Uses a simple bitmask
scheme to differentiate between written values and random garbage.
this fixes the problem that well totals are off by a factor of
two. Note that the better solution would be to continue to write once
per substep but skipping report step writes if the adaptive time
stepper is used. since I've got no idea how to find this out I propose
this patch.
this enables to build opm-output using an unpatched `dunecontrol` from
Dune 2.3 (and Dune 2.4 if USE_CMAKE is set to "no").
In the medium term the build system needs to become compatible with
Dune's cmake based build system since I think I read somewhere that
the Dune devs intend to remove the autotools based build system before
their next release.
Borrows macros and common infrastructure from the rest of the opm
project instead of half-implementing its own (as parser must do).
Largely a build system simplification.