This commit adds the requisite backing storage and parser support
for capturing and transporting simulator-level calculation of phase
and mixture density value for purpose of summary file output. To
this end, make 'SegmentQuantity' into a template on a set of defined
items and make SegmentPhaseQuantity into a specialisation of this
template. Add a new specialisation, SegmentPhaseDensity, which
holds phase densities (oil, gas, water), and fluid mixture densities
with and without flowing fraction exponents.
These will be used to transport the values needed to output segment
level summary vectors
SDENx -- Phase density of phase 'x' (O, G, W)
SDENM -- Fluid mixture density without flowing fraction exponents
SMDEN -- Fluid mixture density with flowing fraction exponents
In particular, add support for
SxFT - Cumulative flow of phase 'x'
SxFV - Free flow velocity of phase 'x'
SxHF - Free flow holdup fraction of phase 'x'
SxVIS - Phase viscosity of phase 'x'
The last three of these were added to the RFT file in 802a401a8,
but are also useful in the summary output file. In the interest of
avoiding duplicate logic, refactor the existing segment-related
quantity calculation/extraction in terms of callbacks.
This commit adds sanity checking to the cell references of block
level summary vectors (e.g., BPR or BGSAT). If the summary vector
references a cell that's outside the models declared dimensions we
issue a warning and ignore that particular summary vector request.
In particular, add parser and summary output support for the free
vs. solution flow rates of gas and oil as well as the dissolved
gas/oil ratio, the vaporised oil/gas ratio, and the water/gas ratio.
This commit adds a new query
SummaryConfig::fip_regions_interreg_flow
that retrieves the set of FIP array names (e.g., FIPNUM and FIPXYZ)
that are associated to any inter-region flow summary keywords. This
query method returns an empty set if there are no inter-region flow
summary keywords.
This commit extends the 'SummaryConfig' support for inter-region
flows to be aware of user-provided FIP arrays. In other words, we
now recognize, e.g., that
ROFT_XYZ
is the cumulative inter-region oil flow volume corresponding to
regions defined by the 'FIPXYZ' region definition.
This commit adds new nodes pertaining to the inter-region flows to
the summary configuration keyword list. We combine the pair of
region IDs into a single 'NUMS' value as part of creating the node.
We also split inter-region nodes into a "supported" and an
"unsupported" set, with the former containing the oil, gas, and
water keywords.
While here, also correct a misprint in a diagnostic message which I
noticed as part of developing the new feature.
This commit adds support for recognizing additional inter-region
flow rate/cumulatives at the parser level. In particular, we now
have input support for the E300-compatible keyword strings
R[OGW]F(R[-+]?|T[-+])
(e.g., ROFR, RGFT-, or RWFR+). This, in turn, ensures that the
parsing process does not abruptly terminate when encountering such
summary keywords. This is also a necessary step towards supporting
actually calculating those summary vectors, but we presently do not
support doing so.
Expand the minimum, input-reading only, corresponding unit test to
include the oil, gas, and water varieties of the new keyword strings.
While here, also properly classify the per-phase gas cumulatives
RGFTG, RGFTL
as inter-region summary vectors. These were inadvertently listed as
per-region vectors (i.e., in the REGION_PROBE instead of in the
REGION2REGION_PROBE).