This commit makes the helper function find_wells() aware of summary
vectors defined on segments. Previously, this helper function would
return an empty list of wells in the case of ECL_SMSPEC_SEGMENT_VAR
whence all segment-related summary vectors would be zero at all
times.
Add a small set of unit tests to verify that we transmit the known
(small) set of segment-related summary vectors (SOFR, SGFR, SWFR,
SPR) to the internal "prev_state" with correct output units and sign
convention (producing flow rates--reservoir to well--positive).
This commit extends the processing of segment-related summary
vectors to also support specifications of the form
SOFR
/
designating all segments of all multi-segmented wells at all times.
Expand SummaryConfig unit test to exercise this extended record
processing mode.
This commit extends the SummaryConfig class to recognise a small
subset of segment-related summary vectors. In particular, this
brings support for 'SGFR', 'SOFR', 'SPR', and 'SWFR'--at least in a
restricted sense. We do not yet support cases like
SOFR
/
which designates all segments in all wells at all times.
The unit testing is presently minimal and must be expanded before
this is ready for inclusion into master. In particular, we only
check that cases like
SOFR
'PROD01' 1 /
/
generate the expected summary vector nodes (class SummaryNode).
This commit extends Opm::data::Wells to include a set of output
vectors for well segment information. At present we define output
structures for segment rates and segment pressures. The immediate
use case is properly assigning restart vector items RSEG[8 .. 11],
but these same values are also usable for outputting the summary
vectors SPR, SOFR, SGFR, and SWFR. Future expansion is likely.
The deckAssigned() query method is added to the GridProperty class to enable the
simulator to check whether a property has been explicitly assigned in the deck
or autocreated through the use of some EDIT operators like MULTIPLY.
Using const string as key type instead of plain string fails with libc++,
the standard library implementation used by clang. The libc++ implementation
assumes that map keys can be copied, and the standard requires map keys to be
copyable.
Using const string as a value also fails with clang, I am not 100% sure why.
It does severely restrict how you can interact with the container, and seems to
make it noncopyable. The error is reported from DynamicState<GroupTree>::update(),
the std::fill() call.
This commit ensures that the data members 'headI' and 'headJ' are
properly initialised in the constructor
WellConnections(const WellConnections&, const EclipseGrid&)
which powers the implementation of
Well::getActiveConnections()