Commit Graph

3457 Commits

Author SHA1 Message Date
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
387be05c77 WindowedArray: Add Doxygen-Style Reference Documentation
Requested by: [at]atgeirr
2018-07-12 10:44:27 +02:00
Bård Skaflestad
349ee4657e WindowedArray: Switch to Explicitly Using vector<T>
Suggested by: [at]joakim-hove and [at]atgeirr
2018-07-12 10:44:27 +02:00
Bård Skaflestad
7d7ec8efca WindowedArray: Rename Include Guards
Original name was a remnant of an earlier implementation.
2018-07-12 10:44:27 +02:00
Bård Skaflestad
84739c3bed InteHEAD: Publish Index of Common Size Items
Use these in implementation of InteHEAD and AggregateWellData.
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
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
98e3bbcf1d Changes to make the code compile and run. 2018-06-29 15:57:15 +02:00
Joakim Hove
976bfdab35 Use opm-internal algorithm for volume calculation 2018-06-29 15:57:15 +02:00
Lars Petter Øren Hauge
fc3bc714fc Support WCI(R/T) 2018-06-29 09:45:14 +02:00
Atgeirr Flø Rasmussen
89e95b0789 Segment class: fix warnings and operator!= bug.
While silencing warnings in this class, it became apparent that
operator!=() was buggy, it was just a copy of operator==().
2018-06-28 17:01:27 +02:00
Atgeirr Flø Rasmussen
ffa4a8ef7b Include required <array> header. 2018-06-28 14:45:30 +02:00
Joakim Hove
1f7a2d5459 Merge pull request #435 from joakim-hove/completion-support2
Completion support2
2018-06-28 09:58:36 +02:00
Atgeirr Flø Rasmussen
cfb3d34467 Add more flexibility to compareECL.
In particular:
 - Grid comparison will now also check that the active cells are the same,
   not just that the number of active cells is identical.
 - In the grid comparison, checking volumes is now optional, from compareECL
   this feature is used by passing the '-V' option on the command line.
2018-06-27 15:22:55 +02:00
Joakim Hove
4d3c143af4 Silnce warning 2018-06-26 12:36:49 +02:00
Joakim Hove
3a46555b6d Reorder connection members to quell warning 2018-06-26 12:36:49 +02:00
Joakim Hove
a5cc1cfe48 Remove stale private functions 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
6461cc2a81 Remove stale function Connection::fixDefaultIJ() 2018-06-26 12:36:49 +02:00
Joakim Hove
8895ee171a Remove function Connection::shift_complnum() 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
7a790a33bb Remove stale forwards 2018-06-26 12:36:49 +02:00
Joakim Hove
d72c45cd62 Remove unused construtors 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
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
f3d82437fd Using shared_ptr to manage connections 2018-06-26 12:35:30 +02:00
Joakim Hove
d52d4cc3a6 Add method WellConnections::addConnection() 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
Joakim Hove
2cb5f62591 Add mutable WellConnections::getFromIJK() 2018-06-26 12:35:30 +02:00
Arne Morten Kvarving
32722f3b9c fixed: pass string by const ref 2018-06-26 08:39:34 +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
ba04fbb1ad Add no deck constructor to Eclipse3DProperties 2018-06-22 13:27:19 +02:00
Joakim Hove
aa04fee73f Merge pull request #426 from joakim-hove/rename-connection-set
Rename connectionset and wellset
2018-06-21 08:14:08 +02:00
Arne Morten Kvarving
261f6ac270 fixed: pass by const ref 2018-06-20 12:56:10 +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