The simulator already calculates the requisite values, but due to
the requisite summary keyword RPRH not being listed among the known
region level vectors the output layer did not write the values to
the summary file. This commit adds the requisite table entry.
Region level summary keywords may have suffixes which refer to user
defined region sets ('FIP*' keyword). This commit prunes those
suffixes when performing function lookup, so that we do not get
false negatives.
To this end, introduce a new helper function
EclIO::SummaryNode::normalise_region_keyword()
and use this both when determining the summary keyword type (rate,
cumulative, pressure &c) and when looking up evaluation functions
for region level summary vectors. The new helper could arguably
have been integrated into the existing 'normalise_keyword()' helper
function, but that would have necessitated a different change
elsewhere in the code base. For now, we keep this helper as a
separate function.
In particular, recognize the summary vectors
- SDENx -- Phase density of phase 'x' (segment conditions)
- SDENM -- Fluid mixture density without flowing fraction exponents
- SMDEN -- Fluid mixture density with flowing fraction exponents
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
Mostly to aid future maintenance. While here, also re-indent the
other unit tables and add a type alias (UnitTable) to avoid spelling
out the 'unordered_map<>' type repeatedly.
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.
The *_history() helper functions assumed that all wells would be
flowing. This is an incorrect assumption and would lead to, e.g.,
field-level observed rates being non-zero even if all wells were
stopped/shut.
This commit adds a check for non-flowing wells, and omits flow rate
contributions in that case.
In particular
* Tag a single argument constructor as 'explicit',
* Remove an unused private function
* Fix mismatched tags (struct vs. class) in forward declaration
* Return 'false' in an impossible updateHyst() case
While here, also use a real UnitSystem object instead of creating
a METRIC system just to infer unit strings.
This initial commit changes the Summary class's API for consuming
block-averaged well level pressure values (summary keywords WBPn).
The former approach was intended to consume a collection of source
values--pressures, densities, and pore-volumes--and then to defer
calculation of the WBPn summary vectors to the Summary class.
This commit introduces a 'WellBlockAvgPress' container class which
holds precomputed WBPn results and the intention is to move the
calculation to the simulator side for greater parallelism.
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 support for the GEFF, WEFF, and WEFFG summary
vectors that report the efficiency factors at the well (WEFAC) and
group (GEFAC) levels. WEFFG additionally accounts for efficiency
factors in a well's superior groups in the group tree.
This commit outputs the various BxIP* summary output values such as
BOIP (block-level oil-in-place) and BGIPL (block-level gas-in-place
in liquid phase). While here, also add support for outputting the
block-level dissolved gas-oil-ratio (BRS) and vaporised
oil-gas-ratio (BRV).
We now print
"Keyword category 'Region' (e.g., summary keywords RPR) not supported
by ACTIONX."
instead of
"make_default_nodes does not yet support: RPR"
This commit recognises the summary vector "BNSAT" as a supported
keyword. This, in turn, enables retrieving the simulator's solvent
saturation values at the block level as a time series.
This commit adds support for the BWPR and BGPR summary vectors that
output block-level phase pressures for water (BWPR) and gas (BGPR)
to the summary file.
This commit adds the glue code necessary to extract the pertinent
flow rate values from an inter-region flow rate map and then
accumulating those into the SummaryState. We multiply with the
timestep size if we're computing a cumulative total volume.
Add basic unit test for this part of Summary::eval().
This commit adds a new parameter, interreg_flows, to the eval()
member function of class Opm::Summary. This is in preparation of
adding summary file output of inter-region flow rates and
cumulatives-e.g., the ROFT summary vectors.
This commit ensures that the field, group, and well level cumulative
production curves of solution/free oil and gas are continuous in a
restarted simulation run.
Thanks to Torbjørn Skille for identifying the appropriate locations
in XGRP/XWEL for outputting these items.