Commit Graph

509 Commits

Author SHA1 Message Date
Joakim Hove
f80644b616 Remove special case for Travis 2018-07-19 06:44:20 +02:00
Bård Skaflestad
34b1b3a073 xWEL Restart Vectors: Switch to Using Named Indexes
While here, also update pertinent unit tests to use the same vector
identfication scheme.

Suggested by: [at]joakim-hove and [at]atgeirr.
2018-07-12 10:44:27 +02:00
Bård Skaflestad
20d0565220 Char Array Unit Test: Introduce Convenience Type Alias
Mostly for shortening constructor calls.

Suggested by: [at]atgeirr.
2018-07-12 10:44:27 +02:00
Bård Skaflestad
1695dfe78b Char-Array Unit Test: Prune Duplicate Check
Identified by [at]atgeirr.
2018-07-12 10:44:27 +02:00
Bård Skaflestad
1c21ec9d5c Restart *WEL Arrays: Add Facility for Aggregating Vectors
This commit adds a new class that aggregates the *WEL vectors for
restart purposes.  Using the data sources

    - Simulation run's "Schedule" object
    - Simulation run's "UnitSystem" object
    - Current simulation step ("sim_step")
    - WellRates object from simulator at the end of sim_step
    - SummaryState object from Summary class at the end of sim_step

this class will fill in the (presently) known elements of the IWEL
(integers), SWEL (Real/float), XWEL (double precision), and ZWEL
arrays for output to a restart file.  We distinguish contributions
of data sources extracted directly from the simulation deck from
those computed dynamically by the simulator--mostly to separate
concerns and to enable independent testing.  If this introduces too
much computational overhead in actual simulation runs we can fuse
the member functions

    AggregateWellData::captureDeclaredWellData()
    AggregateWellData::captureDynamicWellData()

to reduce the number of loops over active wells.

The overall structure of this facility is that we have a single
templated function, wellLoop(), that calls user-defined "operations"
on each active well.  Each of these operations in turn define a
subset of one of the {I,S,X,Z}WEL arrays pertaining to the
particular well.  We furthermore put implementation functions into
namespaces according to the pertinent arrays.

Many thanks to my Equinor collaborators.
2018-07-12 10:44:27 +02:00
Bård Skaflestad
03b3be48b0 Restart *WEL Arrays: Add Foundational Helper Classes
This commit adds new helper classes,

    Opm::RestartIO::Helpers::CharArrayNullTerm<NChar>
    Opm::RestartIO::Helpers::WindowedArray<T>
    Opm::RestartIO::Helpers::WindowedMatrix<T>

the first of which represents a nul-terminated character string of
'NChar' user data (total array size is NChar + 1).  Mainly intended
for representing Fortran-compatible characters arrays--especially
for ZWEL and similar restart vectors (e.g., ZGRP).

The second two simplify working with subsets of large linear arrays,
particularly those that represent N items per well, group, or
segment.  The WindowedArray is a linear array of windows (N items
per window) packed into a std::vector<T> and the WindowedMatrix
additionally imposes a Row-by-Colum structure which is useful for
the case of N windows (each of size K) for each of M entities (e.g.,
K items for each of N connections for each of M wells).
2018-07-12 10:44:27 +02:00
Bård Skaflestad
0be3f2c76f Unit Tests: Supply Enough Parameters for data::Connection
We must provide cell_pressure, cell_saturation_water,
cell_saturation_gas, and effective_Kh.

Forgotten in commit 687f108.
2018-07-12 00:46:46 +02:00
Bård Skaflestad
687f108285 Unit System: Recognize Units for Effective Kh Product
While here, also add check for all (current) unit conversion
constants for METRIC, FIELD, and LAB unit conventions and extend the
existing PVT-M checks to cover effective Kh too.
2018-07-11 22:07:38 +02:00
Bård Skaflestad
48047f8c7a Restart Output (Wells): Store Effective 'Kh' Product
Mostly to forward to SCON array.

While here, also fix 'Missing initializer' warnings in the
'get_completions' unit test.
2018-07-10 17:37:49 +02:00
Bård Skaflestad
3466776c1a Connection: Capture Effective 'Kh' Value from COMPDAT
Needed for restart output (especially, SCON), and also useful for
computing the connection transmissibility factor (WI) in some cases
if not supplied in COMPDAT.
2018-07-10 17:23:04 +02:00
Kai Bao
b5ff9bc393 handling the over-writing control part of WHISTCTL
for producers. The termination flag part is not handled yet.
2018-07-04 14:50:08 +02:00
Joakim Hove
4144d761dd Merge pull request #431 from lars-petter-hauge/support_polymer_keys
Support polymer keys
2018-07-02 09:39:35 +02:00
Atgeirr Flø Rasmussen
65639b0a03 Make it possible to create Input unit systems, add test. 2018-06-29 10:56:34 +02:00
Lars Petter Øren Hauge
5c68a0aaa8 Support CCI(R/T) 2018-06-29 09:45:14 +02:00
Lars Petter Øren Hauge
7a91bebd61 Support FCI(R/T) 2018-06-29 09:45:14 +02:00
Lars Petter Øren Hauge
102bd6b728 Support GCI(R/T) 2018-06-29 09:45:14 +02:00
Lars Petter Øren Hauge
fc3bc714fc Support WCI(R/T) 2018-06-29 09:45:14 +02:00
Joakim Hove
3a46555b6d Reorder connection members to quell warning 2018-06-26 12:36:49 +02:00
Joakim Hove
6095fda39f Access connection direction directly 2018-06-26 12:36:49 +02:00
Joakim Hove
a8d1545947 Acces Connection sat table id directly 2018-06-26 12:36:49 +02:00
Joakim Hove
c212af9253 Remove stale function Connection::sameCoordinate() 2018-06-26 12:36:49 +02:00
Joakim Hove
90f6b46837 Remove stale method Well::addConnections( ) 2018-06-26 12:36:49 +02:00
Joakim Hove
04a3a9ada5 WIP: cleaun up access methods 2018-06-26 12:36:49 +02:00
Joakim Hove
bcfb195a83 Rename completionIdx -> complnum and size_t -> int 2018-06-26 12:36:49 +02:00
Joakim Hove
0327393951 Add function to get completions 2018-06-26 12:35:30 +02:00
Joakim Hove
15dd449354 Changed WELSEGS implementation 2018-06-26 12:35:30 +02:00
Joakim Hove
ad2af10c5a New implementation of WELLPI 2018-06-26 12:35:30 +02:00
Joakim Hove
5bce16c4e9 Reenable COMPLUMP tests 2018-06-26 12:35:30 +02:00
Joakim Hove
9d16cc8ec4 New implementation of WELOPEN 2018-06-26 12:35:30 +02:00
Joakim Hove
1f1ecebec5 New implementation of COMPLUMP 2018-06-26 12:35:30 +02:00
Joakim Hove
fd3000cd31 WellConnections::add() does not inspect IJK 2018-06-26 12:35:30 +02:00
Joakim Hove
363b8589e6 Change handleCOMPDAT implementation 2018-06-26 12:35:30 +02:00
Joakim Hove
93f7f50eb7 Temporarily disable COMPLUMP test 2018-06-26 12:35:30 +02:00
Joakim Hove
f3d82437fd Using shared_ptr to manage connections 2018-06-26 12:35:30 +02:00
Joakim Hove
7332ee4b18 Remove intializer list ctx + stale test 2018-06-26 12:35:30 +02:00
Bård Skaflestad
c3a11a2fb5 Summary: Calculate Independent Set of Vectors for Restart
This commit ensures that the following set of vectors are stored/updated in

    Summary::add_timestep()

for all active wells and well groups (including FIELD):

    - Production rates for Oil, Water, Gas, and Reservoir Volume
      (i.e., (O|W|G|V)PR).

    - Cumulative production totals for Oil, Water, Gas, and
      Reservoir Volume (i.e., (O|W|G|V)PT).

    - Injection rates for Water and Gas (i.e., (W|G)IR).

    - Cumulative injection totals for Water and Gas ((W|G)IT).

    - Producing Water Cut (WCT).

    - Producing Gas/Oil ratio (GOR).

We additionally capture the well bottom-hole pressure (WBHP) for all
wells that are active at the pertinent simulation step (sim_step).

Add an accessor function

    const SummaryState& Summary::get_restart_vectors() const

that returns the 'prev_state' which contains these summary vectors
and add a set of unit tests to exercise the new interface.
2018-06-25 14:04:11 +02:00
Joakim Hove
b22e00b92d Rename WellSegment::numberSegment() WellSegment::size() 2018-06-20 11:48:02 +02:00
Joakim Hove
6c7f6d7afb Rename SegmentSet -> WellSegments 2018-06-20 11:36:50 +02:00
Joakim Hove
dc318f731f Rename ConnectionSet > WellConnections 2018-06-20 11:35:11 +02:00
Joakim Hove
501b1dc760 Remove stale test 2018-06-20 09:27:02 +02:00
Tor Harald Sandve
fb0272f343 Add posibility to store closed completions in wellTestState 2018-06-19 10:37:44 +02:00
Joakim Hove
3975db2ff3 Rename CompletionSet -> ConnectionSet 2018-06-11 14:03:32 +02:00
Joakim Hove
d39db2f0db Rename Completion -> Connection 2018-06-11 10:40:59 +02:00
Joakim Hove
088ba8a19a Merge pull request #413 from joakim-hove/restart-icon-skip-inactive
Restart icon skip inactive
2018-06-08 12:49:37 +02:00
Joakim Hove
d168e9ff67 Merge pull request #414 from joakim-hove/welltest-state
Add WellTestState object to keep track of automatically closed wells
2018-06-07 12:41:05 +02:00
Joakim Hove
58e4e5263e Add WellTestState object to keep track of automatically closed wells 2018-06-07 07:42:03 +02:00
Joakim Hove
d299e003b7 Merge pull request #411 from GitPaean/adding_vfp_numbers
VFP related needs to be processed even without THP target/limit
2018-06-05 17:34:29 +02:00
Joakim Hove
1ee597206c Add CompletionsSet constructor including only active connections. 2018-06-05 12:25:20 +02:00
Joakim Hove
163c3d435a Remove unused test file 2018-06-05 12:25:17 +02:00
Joakim Hove
24f28e8a5d Ignore THPRES input for restart runs 2018-05-31 17:15:34 +02:00