The commercial simulator does not support parenting a well directly
to the FIELD group and Flow in multiple locations implicitly assumes
that no well is parented directly to FIELD either.
With this commit we detect this situation at the parser stage and
stop reading the input file. In this case, we issue a diagnostic
message of the form
Error: Problem with keyword WELSPECS
In SPE1CASE1.DATA line 384
Wells cannot be parented directly to 'FIELD'.
Wells entered with disallowed 'FIELD' parent group:
* PROD
* INJ
Error: Unrecoverable errors were encountered while loading input
We define a valid cell geometry as one in which all components of
all eight corner vertices of a cell have finite coordinate values
(absolute value less than 1.0E+20) and at least one pair of pillar
vertices are separated by a positive distance.
One can now set the variable OPM_BINARY_PACKAGE_VERSION to a
meaningful version string (Debian 11.2: 2021.10-4). When building
outside of git it will be used as the project hash. If the variable is
non-empty there will also be no timestamp in project-timestamp.hh (as
this would break reproducible builds).
Note that if building from git or not setting the variable then everything
will be like before.
Instead of checking whether this is Debian system we query the
sitepackages path from Python. If it matches dist-packages then
we use dist-packages if we install below /usr, otherwise site-packages
is used.
Compiling will fail at a very late stage and might cause surprises
for novice users. It seems much better to issue an error in CMake with
a meaningful error message. Might prevent some support issues in the
future.
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.
A lambda expression can read the value of a variable without
capturing it if the variable
has const non-volatile integral or enumeration type and
has been initialized with a constant expression
Clang issues a diagnostic if such variables are captured so drop the
'sz' from the explicit list of captures.
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().
If a well is entered in WCON{INJE,PROD} as status 'SHUT' but later
activated in WELOPEN, we must take care to record this status change
in the well's internal "has_produced" or "has_injected" flags as
appropriate. Otherwise, the counts of "abandoned" wells will not be
correct.
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 introduces a new helper facility,
data::InterRegFlowMap
that knows how to interpret region IDs. It is a simple wrapper
around a common CSR representation of (source, destination) region
ID pairs with the additional feature that the element type of the
connection is a linear sequence values of arithmetic type. We've
initially elected to make this sequence out of 'float' in order to
conserve memory since we expect to do little arithmetic to the
sequence itself outside of compression and parallel communication.
Client code will be of two primary categories
1. Producing side which inserts flow rates from individual
connections, compresses the result when done, and communicates
the results to one or more parallel I/O ranks
2. Consuming side, typically on an I/O rank, which merges the
contributions from multiple source ranks and extracts values
pertaining inter-region flows for purpose of outputting time
series data to a summary file.
The first case will create and populate 'FlowRates' and add these
into the container using the 'addConnection' function and finally
call 'compress' when complete. Consumers will then use member
function 'getInterRegFlows' to extract a signed view of flow rate
values associated to a particular region ID pair (nullopt if no such
pair is registered).
This commit introduces a wrapper for a linear subrange of
consecutive elements of an arithmetic type that imposes an ordering
of the elements when treated as directional component surface flow
rates. The wrapper distinguishes negative from positive flow rate
contributions and tracks those separately. This is a building block
for accounting for the inter-region flows in a parallel context.