Commit Graph

9381 Commits

Author SHA1 Message Date
Joakim Hove
508b4e6f96 Scan UDQ expressions to extract required summary keywords 2020-10-24 10:15:58 +02:00
Joakim Hove
5c1604c5f2
Merge pull request #2045 from joakim-hove/include-udq-summary-commits
Include udq summary commits
2020-10-24 10:15:30 +02:00
Bård Skaflestad
9fc6948e05
Merge pull request #2042 from joakim-hove/well-reperf
Changes to well reference depth
2020-10-23 16:49:08 +02:00
Joakim Hove
3fa4c4bbb1 Publish function SummaryConfig::parseKeywordType() 2020-10-23 16:05:55 +02:00
Joakim Hove
b53acbc6a7 Add functionality to extract required summary keys from UDQConfig 2020-10-23 16:05:55 +02:00
Joakim Hove
faa1e7dc4d Add function to return pointers to all unique UDQConfig objects 2020-10-23 16:05:55 +02:00
Joakim Hove
b4388ba203
Merge pull request #2040 from joakim-hove/udq-left-assoc
Ensure that division is left assosiative in UDQ parser
2020-10-23 16:04:45 +02:00
Joakim Hove
b9bd1598d7 Changes to well reference depth
1. The well reference depth should *not* be updated when new connections are
   added with COMPDAT.

2. The well reference depth should be recalculated when the well is updated with
   the WELSPECS keyword.
2020-10-23 15:25:38 +02:00
Joakim Hove
58e859fb11
Merge pull request #2043 from joakim-hove/eclipsegrid-remove-test
Remove not interesting test code
2020-10-22 20:23:47 +02:00
Joakim Hove
0a0f30133d Remove not interesting test code 2020-10-22 18:52:05 +02:00
Joakim Hove
7a21769ca1
Merge pull request #2041 from akva2/janitoring
quell unused parameter warning
2020-10-22 17:22:24 +02:00
Arne Morten Kvarving
be84d23da4 quell unused parameter warning 2020-10-22 14:53:25 +02:00
Joakim Hove
80a023794e Ensure that division is left assosiative in UDQ parser 2020-10-22 14:40:32 +02:00
Joakim Hove
4a806533db
Merge pull request #1915 from goncalvesmachadoc/addSpyderwebGrid
add Spiderweb grid
2020-10-22 14:08:01 +02:00
Joakim Hove
d9a7d6326f
Merge pull request #2033 from joakim-hove/rst-group-commits
Rst group commits
2020-10-22 09:25:56 +02:00
Joakim Hove
f6077809c7 Init GuideRateModel from restart file 2020-10-22 08:18:47 +02:00
Joakim Hove
5a91c73b8e
Merge pull request #2035 from joakim-hove/igrp-guide-rate
Igrp guide rate
2020-10-22 08:06:56 +02:00
Joakim Hove
0894f7e774
Merge pull request #2032 from joakim-hove/MULTIREG
Multireg
2020-10-22 08:06:37 +02:00
Joakim Hove
ee7f50a51d
Merge pull request #2037 from joakim-hove/udq-define-order
Make sure UDQ define statements are evaluated in definition order
2020-10-21 17:32:55 +02:00
Markus Blatt
8951ff3130 [cmake] Use scotch include dir for parmetis bindings of scotch.
The parmetis.h distributed via the parmetis binding of scotch
with Ubuntu 18.04 (libscotchparmetis-dev) includes the header
scotch.h located in /usr/include/scotch/. Therefore our check
of the include file failed. With this commit we check the
parmetis.h header another time with the scotch include path added.
Now parmetis is found on my Ubuntu.
2020-10-21 14:36:39 +02:00
Joakim Hove
85f7380721
Merge pull request #2030 from joakim-hove/default-group
Use optional - and default to self - for reinj and voidage groups
2020-10-21 13:58:07 +02:00
Joakim Hove
413a16157c Make sure UDQ define statements are evaluated in definition order 2020-10-21 13:49:07 +02:00
Joakim Hove
ba4082b2b9
Merge pull request #2034 from joakim-hove/udq-assign-define
Udq assign define
2020-10-21 11:45:41 +02:00
Joakim Hove
3f2e41ba99 Add member guide_rate_def to Group object loaded from restart file 2020-10-21 10:31:44 +02:00
Joakim Hove
c8efb7fd3b Use named constants when saving GuideRate defintion to IGRP 2020-10-21 09:47:16 +02:00
Joakim Hove
67f24bd3a7 When loading from restart: set wells active control also for SHUT 2020-10-20 22:48:08 +02:00
Joakim Hove
5c6fa9cc51 Add Group update events after loading from restart file 2020-10-20 22:46:28 +02:00
Joakim Hove
2bc338e87f Add functions converting integer group control modes to enum 2020-10-20 22:44:01 +02:00
Joakim Hove
b72460f0c8 Remove unused members from rst header class 2020-10-20 22:43:49 +02:00
Joakim Hove
2289ba165b Update SummaryState in UDQContext 2020-10-20 22:22:21 +02:00
Joakim Hove
313f576e37 Ensure that UDQDefine::eval returns nodes with correct name 2020-10-20 20:45:59 +02:00
Joakim Hove
5ff65747f3 Rename summary variable in test 2020-10-20 20:02:19 +02:00
Joakim Hove
ab43f54076 Export undefined value from UDQState 2020-10-20 19:44:15 +02:00
Joakim Hove
bf2f049a4b
Merge pull request #2031 from bska/schedule-apply-wellpi
Apply WELPI CTF Scaling at Schedule Level
2020-10-20 12:05:05 +02:00
Bård Skaflestad
ab51949909 Address Code Review Comments
Use more complete object name and fix up a comment.
2020-10-20 11:14:03 +02:00
Joakim Hove
158c7376d7 Add test for MULTIREG and COPYREG keywords 2020-10-20 08:22:42 +02:00
Joakim Hove
eb7cb2f94a Bug in COPYEREG keyword - look up wrong item 2020-10-20 08:22:22 +02:00
Bård Skaflestad
91bb168ee5 Fix Shadowing Type Alias
The local 'WellPI' type alias shadowed the name of the test.
2020-10-19 21:16:55 +02:00
Bård Skaflestad
5b4a1c0bad Remove WELL_CONNECTIONS_UPDATED Event
With the introduction of Schedule::applyWellProdIndexScaling(), this
special-purpose event type is no longer needed and only causes
confusion.
2020-10-19 19:16:17 +02:00
Bård Skaflestad
26ef5d01a2 Apply WELPI CTF Scaling at Schedule Level
This commit adds a new member function

  applyWellProdIndexScaling(well_name, report_step, scalingFactor)

which applies WELPI-based CTF scaling (by scalingFactor) for all
pertinent report steps from 'report_step' and until the end of the
simulation run.  We use the 'scalingApplicable' array to communicate
connection eligibility between report steps and only apply the
scaling if the internal connections pointers differ between report
steps.
2020-10-19 19:16:16 +02:00
Bård Skaflestad
cfa5dd80cc Enable Applying WELPI CTF Scaling Across Time Direction
This commit adds a new in/out parameter, scalingApplicable, to the
applyWellProdIndexScaling functions.  This parameter carries time
(history) information on whether or not a particular connection is
eligible for WELPI-based CTF scaling.  Entries are marked ineligible
(false) and left untouched on subsequent calls if the corresponding
connection is ineligible at any point--e.g., as a result of new
COMPDAT entries.

This ability enables implementing WELPI CTF scaling at the Schedule
level which is the only level that has sufficient time information
to identify all the unique Well/WellConnections object combinations.
2020-10-19 19:16:15 +02:00
Bård Skaflestad
338a48708a Add Special Predicate to Check if Two Wells Have Same Connections
This commit adds a new special purpose predicate member function

    bool Well::hasSameConnectionsPointers

which checks if the internal WellConnections pointers of two Well
objects (*this and the input argument) point to the same object.
This, in turn, enables identifying when to apply dynamic WELPI CTF
scaling across the time direction the internalized connection
information.
2020-10-19 19:16:15 +02:00
Bård Skaflestad
dabf988aa7 Split WELPI Application Into Two Parts
First part, implemented in a new member function

    Well::getWellPIScalingFactor

calculates a CTF scaling factor from stored WELPI information and a
dynamically calculated well-level PI value.  The second part, using
the original name applyWellProdIndexScaling, applies an externally
calculate CTF scaling factor to all eligble connections.

This is needed to enable applying multiple scalings across the time
direction.  Update unit tests accordingly.
2020-10-19 19:16:12 +02:00
Joakim Hove
452c222f71
Merge pull request #2018 from bska/preferred-is-injected
Use Injected Phase as Preferred Phase for Injectors
2020-10-19 18:03:52 +02:00
Joakim Hove
d545359395 Use optional - and default to self - for reinj and voidage groups 2020-10-19 17:07:00 +02:00
Bård Skaflestad
641b9fb4b1
Merge pull request #2029 from joakim-hove/udq-function-rename
Renamed UDQ functions: MIN -> UDQ_MIN and MAX -> UDQ_MAX
2020-10-19 14:28:44 +02:00
Joakim Hove
63e0eb385a Renamed UDQ functions: MIN -> UDQ_MIN and MAX -> UDQ_MAX 2020-10-19 13:09:40 +02:00
Bård Skaflestad
3eef45e87d Capture Preferred Phase When Processing WELPI Keyword
This is to handle the case of an injector changing its injected (and
therefore preferred) phase (e.g., in WCONINJE or WCONINJH) at the
same report step as a WELPI CTF rescaling, but logically after the
WELPI action is applied.

For instance, this happens in the following setup:

    WCONINJH
       INJ2   WATER   OPEN  5500 /
    /

    DATES
      1 'JAN' 2020 /
    /

    WELPI
      'INJ2' 0.1E5 /
    /

    WCONINJH
       INJ2   GAS   OPEN   701627 /
    /

    DATES
      1 'FEB' 2020 /
    /

In this case, the WELPI for 'INJ2' is supposed to be interpreted as
the water-phase PI (preferred phase is 'WATER' when we read WELPI),
but since the injecting phase is reset to 'GAS' at the same report
step we risk misinterpreting the PI as pertaining to the 'GAS' phase
when calculating the well's effective/dynamic PI in the simulator if
we just use Well::getPreferredPhase().

Switch the the well's input PI from an optional<double> to an
optional<struct> that captures both the input PI value (SI units)
and the preferred phase when processing the WELPI data.  Provide a
way to query that information from the simulator and update unit
tests accordingly.
2020-10-19 11:09:00 +02:00
Bård Skaflestad
f84858279f WELPI: Don't Inadvertently Overwrite Scaling Eligiblity
Since the Well stores a pointer to its connections, rather than the
connections themselves, we must take care not change the existing
state of the connections' WELPI eligibility flag.  Do the update
check on a copy of the connections instead of the real connections.

Pointy Hat: [at]bska
2020-10-19 11:08:59 +02:00
Bård Skaflestad
f718cc1adc Injectors: Ensure "Preferred" Phase is "Injected" Phase
This needed to correctly interpret WELPI values when wells switch
from injecting Water to injecting Gas or the other way around.
2020-10-19 11:08:59 +02:00