Commit Graph

9127 Commits

Author SHA1 Message Date
Joakim Hove
a8b510334e
Merge pull request #2002 from bska/welpi
Add Support Infrastructure for WELPI Feature
2020-10-08 17:48:03 +02:00
Bård Skaflestad
70ef0858f7 Store WELPI Scaling Eligibility as Per-Connection Flag
Greatly simplifies logic in container class (WellConnection).

Suggested by: [at]joakim-hove
2020-10-08 11:19:04 +02:00
Bård Skaflestad
f384269133 Represent Assigned PI as an optional<>
Suggested by: [at]joakim-hove
2020-10-08 11:19:04 +02:00
Bård Skaflestad
a077847f69 Create Fully Non-Defaulted Serialization Test Objects
Suggested by [at]akva2.
2020-10-08 11:19:03 +02:00
Bård Skaflestad
fa7d8bc28c Add Support Infrastructure for WELPI Feature
This commit adds logic implementing the static parts of the WELPI
keyword.  We internalize the keyword data, record appropriate events
and provide hooks for dynamically adjusting the per-connection
transmissibility factor (Connection::CF()) when those events occur.
We implement support at three levels

  - WellConnections:
    Add new public member functions prepareWellPIScaling and
    applyWellPIScaling which, respectively, creates bookkeeping
    data to track those connections which are subject to CF scaling
    and actually applies that CF scaling.

  - Well:
    Add new data member 'productivity_index' which holds the 'WELPI'
    data value from the input keyword (converted to SI) and new
    member functions updateWellProductivityIndex and
    applyWellProdIndexScaling.  The first follows the 'update*'
    protocol (return 'true' if state change) and assigns new values
    to 'productivity_index' while the second uses the stored PI
    value and a dynamically calculated effective PI value to rescale
    the pertinent connections' CF value.

  - Schedule:
    Add new member function handleWELPI which internalizes the WELPI
    keyword and its data and records WELPI events for subsequent
    playback in the simulator layer.

Also add a set of unit tests to exercise the new features at all
levels.
2020-10-08 11:19:03 +02:00
Bård Skaflestad
de5e3d90cd Miscellaneous Cleanup Changes
In particular, include standard library headers as needed, fix
function declarations (operator<<() for Well::WellProductionProperties),
and make a few helper functions 'static' to avoid warnings of the
form "no previous declaration for".

For the Schedule's keyword handlers, also switch to storing member
function pointers directly instead of std::function objects.  This
saves space and does not incur function pointer conversions.  Use
std::invoke to call those handlers to avoid having to spell out the
'->*' operator.
2020-10-08 11:19:03 +02:00
Bård Skaflestad
36e3a25782 Use Explicit Powers of Two for Events Enumerators
Suggested by [at]joakim-hove
2020-10-08 11:19:03 +02:00
Bård Skaflestad
cc22c3bcf3 Remove Duplicated Logic in filterConnections
The Schedule::filterConnections() member function contained three
copies of the same loop, possibly as a result of earlier conflict
resolution.  Remove two of those loops.
2020-10-08 11:19:03 +02:00
Joakim Hove
732f19d2a2
Merge pull request #2003 from joakim-hove/rst-group2
Establish group <-> group relationship when loading from restartfile
2020-10-08 10:59:15 +02:00
Joakim Hove
0dcb31cae5 Use Group constructor when loading from restart file 2020-10-08 08:15:32 +02:00
Joakim Hove
fa24394f69 Establish group <-> group relationship when loading from restartfile 2020-10-08 08:13:17 +02:00
Joakim Hove
cc4f8faa4c
Merge pull request #2005 from bska/wellconnections-empty
Add Convenience Predicate WellConnections::empty
2020-10-08 08:05:15 +02:00
Bård Skaflestad
a5a18fea9e Add Convenience Predicate WellConnections::empty
Replace expressions comparing size() to 0 with calls to empty().
2020-10-07 22:29:18 +02:00
Bård Skaflestad
e2da49d028
Merge pull request #2004 from joakim-hove/rst-wellopen
Rst wellopen
2020-10-07 21:37:44 +02:00
Joakim Hove
f02ecb472f Store Value::Shut == -1000 for shut wells in IWEL 2020-10-07 18:38:46 +02:00
Joakim Hove
956dce6be6 rebase fixup 2020-10-07 18:30:38 +02:00
Joakim Hove
00d5421153 Load well status from IWEL when loading restart file 2020-10-07 18:28:11 +02:00
Joakim Hove
a33fd2483f Updates to well control mode reported in IWEL
With this commit the IWEL[ActWCtrl] is assigned a value independently of the
wells OPEN / SHUT status.

With this PR the index enum value Status is used instead of the previously used
item11. Also numerical constants are introduced for eclipse status values for
Shut, Stop, Open and Auto.
2020-10-07 18:28:11 +02:00
Joakim Hove
23faea7b81
Merge pull request #1996 from wito/required-keywords
Required and Prohibited Keywords
2020-10-07 09:06:42 +02:00
Joakim Hove
efbfbaa90c
Merge pull request #1999 from joakim-hove/rst-cmode
Rst cmode
2020-10-07 09:05:58 +02:00
Atgeirr Flø Rasmussen
de5e91c80c
Merge pull request #2001 from atgeirr/silence-warnings
Fix struct/class warning.
2020-10-06 19:32:35 +02:00
Atgeirr Flø Rasmussen
a56eb48b85 Fix struct/class warning. 2020-10-06 15:54:11 +02:00
Joakim Hove
20e253a27a
Merge pull request #1997 from joakim-hove/group-constructor
Add Group constructor based on RstGroup
2020-10-06 14:52:31 +02:00
Bård Skaflestad
7823045b02
Merge pull request #1995 from bska/prepare-dynamic-ctf
Summary/Restart: Get CTF From Simulator
2020-10-06 14:32:07 +02:00
Joakim Hove
1ec834dd71 Add Group constructor based on RstGroup 2020-10-06 13:16:33 +02:00
Williham Williham Totland
90d980a4f6 Adds manipulation of the ParseContext to tests. 2020-10-06 09:58:46 +02:00
Bård Skaflestad
b1abbe831a
Merge pull request #2000 from akva2/janitoring
fixed: anonymize globals to avoid shadowing warnings
2020-10-06 08:54:51 +02:00
Arne Morten Kvarving
62c067f462 fixed: anonymize globals to avoid shadowing warnings 2020-10-06 08:23:11 +02:00
Bård Skaflestad
d65b83c28b Rename Top-Level Loop Function
Suggested by [at]joakim-hove
2020-10-05 23:34:01 +02:00
Bård Skaflestad
4956e880a4 Summary/Restart: Get CTF From Simulator
This commit switches to getting the output files' connection
transmissibility factor from Opm::data::Connection instead of
Opm::Connection.  This is in preparation for implementing the WELPI
feature, in which the CTFs are occasionally adjusted based on the
dynamic simulation state.
2020-10-05 23:34:01 +02:00
Bård Skaflestad
e92d6138f8 Refactor Connection Loop Function
In particular, split out the connection loop from the well loop, and
don't make a copy of the wells when we already have a Schedule
object and a "sim_step".
2020-10-05 23:34:01 +02:00
Bård Skaflestad
33d09936c3
Merge pull request #1719 from GitPaean/aquifer_keywords
adding aquifer summary keywords
2020-10-05 22:49:32 +02:00
Kai Bao
5c33c39495 addressing reviewing comments for OPM/opm-common#1719
using std::any_of instead of std::find_if
2020-10-05 20:55:06 +02:00
Joakim Hove
be898b5534
Merge pull request #1989 from wito/tablemanager-exceptions
Implements OpmInputError in TableManager
2020-10-05 17:02:42 +02:00
Joakim Hove
f9a52791a4 Load Water and gas Injection cmode from restart file 2020-10-05 15:23:09 +02:00
Joakim Hove
96fdb150b1 Use named index WInjCMode and GInjCMode 2020-10-05 15:23:02 +02:00
Joakim Hove
001b399d42 Change order of is_field() test 2020-10-05 15:13:37 +02:00
Joakim Hove
acfd917aab Add production control mode for restart group 2020-10-05 15:06:04 +02:00
Joakim Hove
08f41d4fa2 Add named index ProdCMode for IGRP 2020-10-05 15:06:01 +02:00
Williham Williham Totland
91e863e674 Resolves issue where test data was missing for Eclipse300. 2020-10-05 13:52:09 +02:00
Williham Williham Totland
7aba0cd976 Implements required and prohibited keywords. 2020-10-05 13:34:35 +02:00
Bård Skaflestad
fcdc57d92b
Merge pull request #1994 from joakim-hove/rst-alq
Small Changes in restart <-> Schedule interaction
2020-10-05 13:07:15 +02:00
Williham Williham Totland
bd3242fe05 Adds getters/setters for required and prohibited keywords. 2020-10-05 11:37:18 +02:00
Williham Williham Totland
f610ce28a2 Adds test data. 2020-10-05 11:20:56 +02:00
Williham Williham Totland
c43600337b Throws exception with nesting, and generalises tests to account for same. 2020-10-05 11:06:19 +02:00
Joakim Hove
b9b55bb9b0 Early return in productionGroup() 2020-10-05 10:44:38 +02:00
Joakim Hove
ce463e6020 Extract functions for production and injection when creating IGRP 2020-10-05 10:44:33 +02:00
Joakim Hove
296538c724 Minor rewrite for checking group type 2020-10-05 09:31:02 +02:00
Williham Williham Totland
d0c5fa042c Adjusts the defaultMessage format string. 2020-10-05 09:26:25 +02:00
Williham Williham Totland
7a8347f1ab Unifies interface of OpmInputError::OpmInputError() 2020-10-05 08:26:51 +02:00