Commit Graph

5211 Commits

Author SHA1 Message Date
Joakim Hove
7f8578ea96
Merge pull request #2020 from joakim-hove/fmwia
Fmwia
2020-10-14 14:22:38 +02:00
Joakim Hove
dd34f2d831 Maintain whether a well has ever injected 2020-10-14 00:39:48 +02:00
Joakim Hove
53fe0f2d11 Add guide rate delay and damping to rst header class 2020-10-13 13:11:04 +02:00
Joakim Hove
ead5a19209 Extract update of guide rate model into separate function 2020-10-13 09:52:33 +02:00
Joakim Hove
94c697ccd0 Load boolean flag to indicate whether group control is active 2020-10-13 09:52:33 +02:00
Bård Skaflestad
6f20858d73 Record Event if WellConnections Change
This is different from COMPLETION_CHANGE which is unconditionally
recorded when processing COMPDAT.  This event is recorded only when
the Well's internal WellConnections structure actually changes and
informs clients that they may need to rerun any dynamic WELPI
scaling.  Such scaling will not be automatically forwarded onto the
new WellConnections structure.

This is arguably a hack.
2020-10-12 15:10:28 +02:00
Joakim Hove
fa65ce92d8 Allow loading of RstState for restart files without wells 2020-10-09 15:32:45 +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
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
a5a18fea9e Add Convenience Predicate WellConnections::empty
Replace expressions comparing size() to 0 with calls to empty().
2020-10-07 22:29:18 +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
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
Joakim Hove
1ec834dd71 Add Group constructor based on RstGroup 2020-10-06 13:16:33 +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
33d09936c3
Merge pull request #1719 from GitPaean/aquifer_keywords
adding aquifer summary keywords
2020-10-05 22:49:32 +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
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
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
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
Williham Williham Totland
3af6fac35d Adds a standard-format exception message to OpmInputError. 2020-10-05 07:28:07 +02:00
Williham Williham Totland
65f45b60a8 Extends OpmInputError to support multiple KeywordLocations. 2020-10-05 07:28:07 +02:00
Kai Bao
995316e97c handling unknown aquifer in SUMMARY section 2020-10-05 00:27:28 +02:00
Joakim Hove
aa54bc67de Load group->parent_group when loading from restart file 2020-10-04 16:00:50 +02:00
Joakim Hove
5b3a76172b Store parent_group index when loading restart group 2020-10-04 16:00:15 +02:00
Joakim Hove
c2522fd5ce Create symbol for IGRP parent group index 2020-10-04 15:59:53 +02:00
Joakim Hove
007ef0e94f Load well alq value when loading from restart file 2020-10-04 15:33:20 +02:00
Kai Bao
e86e8796ec adding a small test for aquifer keywords 2020-10-02 22:32:23 +02:00
Joakim Hove
26bc6cb2ea
Merge pull request #1980 from joakim-hove/time-keyword-info-logging
Time keyword info logging
2020-10-02 18:20:12 +02:00
Tor Harald Sandve
8210bcde34
Merge pull request #1968 from hakonhagland/wglir
Add support for WGLIR.
2020-10-02 14:48:18 +02:00
Kai Bao
fd773423b0 adding the following aquifer summary keywords
AAQR, AAQT, AAQP
2020-10-02 13:18:51 +02:00
Joakim Hove
1206570da5 Edit msg 2020-10-02 10:30:37 +02:00
Williham Williham Totland
4c016660d8 Logs simulation time advance information (level: info). 2020-10-02 10:30:37 +02:00
Joakim Hove
c0336d5eb7 Remove leftover template<...> 2020-10-01 16:59:50 +02:00
Joakim Hove
96ce078dfd
Merge pull request #1983 from joakim-hove/private-fmt
Mkae sure fmtlib is not a dependency in the public api
2020-10-01 15:24:15 +02:00
Joakim Hove
fbf88e8ce1
Merge pull request #1984 from joakim-hove/remove-value
Remove homemade optional - use std::optional
2020-10-01 15:23:55 +02:00
Joakim Hove
6dc84b67df Remove homemade optional - use std::optional 2020-10-01 13:53:58 +02:00
Joakim Hove
0475ccdb77
Merge pull request #1978 from joakim-hove/schedule-skriprest-refactor
Changes in schedule iterate section for restarts
2020-10-01 07:47:50 +02:00