Looking up well keywords uses the well matching algorithm. This covers
all cases supplied by the eclipse documentation, and extends it slightly
by also allowing matching.
By using the ALL keyword or by denoting the same keyword multiple times,
there would be corresponding multiple entries in the SUMMARY file.
Address this by removing duplicate entries from the list of smspec
nodes.
The internal helper functions have been redesign. The initial ambition
was to create small, composable functions by-value functions and have
the high-level algorithm, which is essentially (concat . map handler
[kwlist]). However, MSVC breaking and therefore poor development speed
of utility libraries mandates adjusting the approach a bit.
The major change here is the "return value" of the helper functions
being passed by-reference to all helpers, which will append the elements
they generate onto the collection.
Generalises the SummaryConfig internal representation building by no
longer special casing the ALL keyword in the loop, but rather explicitly
look it up, analyse the expanded list as a new and isolated deck, and
then merge the results.
Some minor hygiene, not exposing some highly internal detail. The list
of keywords ALL expands to is duplicated rather than acessible via a
method, but:
1. this is highly likely never an interesting list of applications
2. it's really only useful for testing **AND** is unlikely to change
3. unclutters the header files slightly
Deprecate the WellPtr -> shared_ptr aliases. The Schedule object is the
sole owner of these objects, and shared_ptr in the interfaces hid that.
The interfaces still relies on pointers to pass Wells around for now,
in order to (mostly) preserve source compability.
Occasionally the SUMMARY section requests wells or groups that aren't
defined in the Deck. Ignore these names (which would typically crash
downstream) and carry on.
This object turns out to be the actual configuration object, not a
mediator state to obtain a configuration. It is therefore renamed to
reflect intent and behaviour.