Commit Graph

4406 Commits

Author SHA1 Message Date
Joakim Hove
11d5128cbf Use KeywordLocation instead of passing keyword and filename separately 2020-09-22 09:55:45 +02:00
Williham Williham Totland
7a7920f3e7 Implements a new dispatcher for keywords in Schedule. 2020-09-21 19:22:11 +02:00
Bård Skaflestad
dbfd013cf4 Add Means of Retrieving Node Names from Extended Network
This commit adds a new member function

    ExtNetwork::node_names() const

which collects the names (std::string) of all nodes in a network.
The immediate use case is creating summary config nodes for network
level quantities specified without explicit lists of nodes, e.g.,

    GPR
    /

Add a simple unit test for demonstration.
2020-09-20 17:46:01 +02:00
Bård Skaflestad
df1f03e4a8 SatFunc: Add Means of Retrieving Select Function Values
This commit introduces a new helper structure, RawFunctionValues,
which collects unscaled saturation function values that are needed
for vertical scaling of saturation functions using keywords such as

    KRO, KRORG, KRGR, PCW

and their hysteretic and directional counterparts.  We also
introduce a new helper function, getRawFunctionValues, which
extracts those values from the function tables in TableManager.

Add a set of unit tests to exercise the new feature.
2020-09-17 08:33:42 +02:00
Bård Skaflestad
7a2350bc3c Merge pull request #1922 from joakim-hove/dynamicstate-update-equal
Dynamicstate update equal
2020-09-17 08:03:29 +02:00
Bård Skaflestad
fb93e08ef0 Merge pull request #1928 from hakonhagland/liftopt_4
Add get method for LIFTOPT item 4.
2020-09-17 08:00:51 +02:00
Bård Skaflestad
60f6c26456 Merge pull request #1924 from joakim-hove/keyword-location
Keyword location
2020-09-16 23:35:09 +02:00
Håkon Hægland
672eb6e689 Add get method for LIFTOPT item 4. 2020-09-16 21:20:58 +02:00
Arne Morten Kvarving
08df29c991 fixed: serialization nupcol in Runspec
also add it to comparison operator
2020-09-16 14:59:26 +02:00
Joakim Hove
bef5a4c27b Renamed class Location -> KeywordLocation 2020-09-16 14:06:54 +02:00
Joakim Hove
a023d4b437 DynamicState::find will return std::optional<std::size_t> 2020-09-16 11:59:03 +02:00
Joakim Hove
e03a97b539 DynamicState::update_equal() will return index of next value 2020-09-16 09:55:09 +02:00
Joakim Hove
ae8dc1a770 Merge pull request #1920 from totto82/scaleAlq
scaling of the Alq values
2020-09-16 09:27:59 +02:00
Tor Harald Sandve
ca2dfc6136 scaling of the Alq values 2020-09-16 07:56:05 +02:00
Bård Skaflestad
7649df53a2 GuideRate: Revise Damping Factor Implementation
This commit centralises the way we incorporate damping factors (item
10 of the GUIDERAT keyword) into the calculation of group/well guide
rates.  In particular, we create a structure that manages both the
current and the previous (damped) guiderate values and ensures that
the new guiderate value is

    GR_p = f*GR_p' + (1 - f)*GR_p^{n-1}

with GR_p' denoting the "raw" guiderate value calculated directly
from potential rates at the current timelevel (n).  GR_p^{n-1} is
the damped-and previously used-guiderate value from timelevel n-1.
Finally 'f' denotes the damping factor.  This is the same approach
used previously, but with some small changes to exclude zero-valued
guiderates.

We furthermore remove one of the early returns in GuideRate::get().
There is no need to return the nominated phase's guiderate value if
the model phase rate is very low and doing so produces incorrect
water guiderates for the OPL5 well in the MOD4_GRP test case.
2020-09-15 10:15:10 +02:00
Bård Skaflestad
3080b9c7f6 RateVector: Forward 'eval' Calls to GuideRateModel::Target Overload
Avoids having to repeat the implementation for wells and groups.
2020-09-15 10:15:08 +02:00
Bård Skaflestad
98ec42f472 Merge pull request #1874 from totto82/fixwsaltunit
Fix unit for salt concentration in WSALT
2020-09-14 15:40:48 +02:00
Joakim Hove
db64c858d1 Add method SummaryConfig::keywords( pattern ) 2020-09-14 09:17:53 +02:00
Tor Harald Sandve
02031a00e6 add salinity to unitSystem 2020-09-14 08:22:21 +02:00
Joakim Hove
20a6a522dc Merge pull request #1891 from joakim-hove/summary-region
Add basic support for xxx_REG summary keywords
2020-09-10 09:23:33 +02:00
Joakim Hove
c3f94834c3 Add wildcard matching of keywords in SummaryConfig 2020-09-10 08:23:42 +02:00
Joakim Hove
dad067835c RegionCache object can manage multiple fip regions 2020-09-10 08:23:42 +02:00
Joakim Hove
5976efa953 Add fip regioin name to summaryconfig node 2020-09-10 08:23:42 +02:00
Joakim Hove
5a060910a3 Differentiate better between UDQ ASSIGN and UDQ DEFINE
A quite typical situation is that a UDQ keyword is first initialized with UDQ
ASSIGN statement, and then subsequently a formula for updates every timestep is
entered with UDQ DEFINE:

  UDQ
     ASSIGN FU_VAR1 0 /
     DEFINE FU_VAR1 FU_VAR1 + 1 /
  /

Then the assign statement should be run once, and the define formula should be
evaluated for every subsequent timestep.
2020-09-09 21:39:29 +02:00
Joakim Hove
2f3ba50ca6 Add boolean flag to indicate whether a well has been an open producer 2020-09-09 15:07:55 +02:00
Joakim Hove
8d11a04033 Add report_step argument to UDQConfig::eval() 2020-09-08 08:23:45 +02:00
Joakim Hove
42fcb4507f FieldProps::get_global<T> will fill with correct default value 2020-09-05 11:52:22 +02:00
Bård Skaflestad
1b7fab4bd1 Merge pull request #1904 from joakim-hove/box-global-list
Box global list
2020-09-03 23:51:08 +02:00
Joakim Hove
ae049a927f Add accessor method for *all* cells in a Box 2020-09-03 21:12:29 +02:00
Joakim Hove
a5bb313394 Remove unused index member from Box class 2020-09-03 16:49:29 +02:00
Joakim Hove
11e70ca779 Handle undefined UDQ expressions 2020-09-02 23:03:03 +02:00
Arne Morten Kvarving
44f29eb4f7 add explicit copy-constructors
implicitly generated copy constructors are deprecated in C++11,
if the class already has an assignment operator.

quells warnings with modern gcc/clang.
2020-09-01 15:25:44 +02:00
Joakim Hove
4b3304730c Serializer class: SummaryState & UDQState 2020-09-01 13:15:42 +02:00
Joakim Hove
53f78a02fe Internalize WSEGITER settings in Tuning implementation 2020-08-31 18:24:09 +02:00
Joakim Hove
71ba9ae6fd Remove DynamicState<..> access to Tuning class 2020-08-31 17:25:40 +02:00
Joakim Hove
0161f50255 Add UDQState 2020-08-27 17:25:51 +02:00
Joakim Hove
168aa5602d Make sure DEFINE statements are evaluated in input order 2020-08-27 15:24:32 +02:00
Joakim Hove
718e00ca1f Correctly parse and handle UADD / UMUL / UMIN / UMAX set operations 2020-08-27 15:24:32 +02:00
Joakim Hove
1cf069c837 Merge pull request #1886 from joakim-hove/udq-tokens
Fix UDQ parsing for mix of '*' and *
2020-08-27 15:22:25 +02:00
Joakim Hove
76e8805d92 Merge pull request #1893 from joakim-hove/remove-require-fipnum
Remove function SummaryConfig::requireFIPNUM
2020-08-27 13:56:36 +02:00
Joakim Hove
dee69e78c3 Remove function SummaryConfig::requireFIPNUM 2020-08-27 11:55:17 +02:00
Joakim Hove
9ccc9a72e4 Use std::optional<double> in UDQScalar 2020-08-24 06:59:11 +02:00
Joakim Hove
6c2563c5a5 Fix tokenizer bug with mix of '*' and *
The token '*' should be interpreted as all wells/groups for a variable like WOPR
or GGPR, whereas the naked * is a multiplication sign. This commit fixes a bug
where the all wells/groups token '*' would be incorrectly interpreted as a
multiplication sign.
2020-08-23 08:31:15 +02:00
Joakim Hove
c84b95ed85 Merge pull request #1875 from joakim-hove/tlmixpar
Implement TLMIXPAR as dedicated vector of struct - not table
2020-08-14 12:56:39 +02:00
Joakim Hove
d358d94f58 Merge pull request #1806 from goncalvesmachadoc/salt
finalizeSaltTables
2020-08-14 12:55:49 +02:00
Joakim Hove
748c3975fb Fix salt table tests 2020-08-13 18:44:04 +02:00
Joakim Hove
1b851f03cb Implement TLMIXPAR as dedicated vector of struct - not table 2020-08-12 14:47:21 +02:00
Joakim Hove
3e1411bf87 Replace opm implementation of string_view with std::string_view 2020-08-04 11:40:41 +02:00
Joakim Hove
f500adba24 ACTIONX will handle WLIST well arguments 2020-07-09 15:16:33 +02:00
Joakim Hove
f4f993586a Add method WListManager::wells() which can do WLIST wildcards 2020-07-09 15:12:54 +02:00