Commit Graph

1426 Commits

Author SHA1 Message Date
Bård Skaflestad
ed5a9db25b Use Previous Output Time to Decide Next Output Time
This commit switches the criterion for BASIC=4 and BASIC=5 to using
the difference between the previous and the next output time instead
of "just" the next output time.  The original criteria

    year % freq == 0
    month % freq == 0

don't do what we want.  BASIC=4 and BASIC=5 should output every
'freq' year (=4) or 'freq' month (=5) of simulated time.
2021-07-07 15:06:10 +02:00
Bård Skaflestad
1c49dcc3db Whitespace Adjustments
In preparation of fixing restart output times.
2021-07-07 14:37:21 +02:00
Bård Skaflestad
e8c59932b3 Add Utility to Track Restart Output Events
This commit adds a new helper object

    Opm::WriteRestartFileEvents

that identifies when a restart file output event occurs as well as
the most recent output event prior to a particular report step.  We
implement this facility in terms of a dense bit vector that wastes
up to 63 bits of space.  Most of the logic is devoted to finding the
most recent previous output event, of which the core routine is
counting the number of leading zero bits in a 64 bit value.  We've
elected to implement this in a portable manner using binary search,
although most implementations provide efficient intrinsics for this
operation, e.g., GCC's __builtin_clzl.  In C++20 we can use the new
function std::countl_zero() from <bit>.
2021-07-06 14:26:09 +02:00
Joakim Hove
6ad1d4020c Remove superfluos test 2021-07-05 16:01:31 +02:00
Joakim Hove
6af909778c Load UDQConfig and UDQState from restart data 2021-07-01 07:31:48 +02:00
Joakim Hove
f7427c9ae8 Merge pull request #2539 from joakim-hove/udq-rst-selector
Alternative selector implementation for UDQAssign loaded from rst
2021-06-26 09:41:54 +02:00
Bård Skaflestad
f4d5a80fcc Merge pull request #2468 from osae/tracerWell
Support for tracer summary curves, WT(I/P)(R/T/C).
2021-06-25 17:47:56 +02:00
Joakim Hove
3fa67b21b3 Alternative selector implementation for UDQAssign loaded from rst 2021-06-25 15:25:48 +02:00
Bård Skaflestad
c32aa48b32 Reimplement RstState::load In Terms of RestartFileView
This is in preparation of unconditionally loading analytic aquifer
information from the restart file.  Update callers to new API.
2021-06-25 09:20:55 +02:00
Joakim Hove
0d060fad24 Merge pull request #2527 from tskille/parser
Functionality for parsing only selected sections of a data deck
2021-06-23 14:04:42 +02:00
Joakim Hove
ba21904558 Merge pull request #2524 from joakim-hove/jostein-commits
Jostein commits
2021-06-23 08:11:31 +02:00
Ove Sævareid
30d446d41b Tests for tracer summary. 2021-06-22 20:17:14 +02:00
Ove Sævareid
7f062f213f Comments and cleanup 2021-06-22 20:17:14 +02:00
Torbjørn Skille
eded5fdb0c add functionality to the parser for parsing selected sections of a data deck
- made available in python bindings
 - added unit tests both for c++ and python
2021-06-22 18:45:24 +02:00
Bård Skaflestad
4381eca9ac Rename Analytic Aquifer Structure Data Members
This commit renames various data members of the *_data structures to
aid the reader who may not be intimately familiar with the details
of the analytic models.  We switch the 'initial_pressure' into an
optional<double> instead of a pair<bool,double> with 'std::nullopt'
representing defaulted initial aquifer pressure values in the input
file.

We also add logic and private data members to compute/store aquifer
time constants, mass density of water, water viscosity and, in the
case of Carter-Tracy aquifers, also the influx constant 'beta'.
This centralises the requisite logic which reduces the risk of
subtle errors.

In the case of defaulted initial pressures, we support deferred
calculation of aquifer properties until the equilibrium pressure is
known.  Users are then expected to assign a value to the initial
pressure members and call 'finishInitialisation()' to derive those
properties.

While here, also switch to using raw string literals instead of
concatenated and escaped literals for the embedded deck strings in
the ParserTests.
2021-06-22 16:36:45 +02:00
Jostein Alvestad
c44dcb8257 changes to DeckOutput.hpp for opmpack 2021-06-22 16:20:24 +02:00
Joakim Hove
b240f15ff8 Move eclipseControlMode function as static method in Well class 2021-06-22 10:32:46 +02:00
Joakim Hove
9e2c79517a Remove method Schedule::guideRateConfig() 2021-06-22 10:32:46 +02:00
Joakim Hove
37f07a1b18 Remove stale class TimeMap 2021-06-10 14:12:12 +02:00
Bård Skaflestad
665a82b9cd Identify GCONINJE UDA Items
This commit adds UDA items for the GCONINJE keyword.  This is in
preparation of tracking UDA status in this context.  While here,
also add unit tests for the expected values of UDQ::keyword() and
UDQ::udaCode().
2021-06-09 20:41:03 +02:00
Joakim Hove
9dd4c43209 Add method ConnectionSet::num_open() 2021-06-08 14:41:52 +02:00
Atgeirr Flø Rasmussen
51701f230e Silence warnings. 2021-06-03 12:22:45 +02:00
Joakim Hove
c9325ccfcc Remove unused variables 2021-05-28 12:02:14 +02:00
Joakim Hove
3c4935e10b Merge pull request #2489 from joakim-hove/nupcol-update
Nupcol updates
2021-05-28 07:22:27 +02:00
Joakim Hove
0d565f9c10 Nupcol updates 2021-05-28 00:59:09 +02:00
Bård Skaflestad
dee11eae41 Merge pull request #2475 from jalvestad/rst-wlist
Output of restart tables for Well list information to the Eclipse compatible restart files
2021-05-27 10:29:44 +02:00
Jostein Alvestad
589c6014a4 changed WLIST unit test - made consistent with WListManager - newList 2021-05-26 15:25:58 +02:00
Jostein Alvestad
7974fd219a modified code to handle new empty wlists and make action NEW more robust 2021-05-26 13:58:06 +02:00
Joakim Hove
bf6ca3ff58 Merge pull request #2481 from joakim-hove/min-nupcol
Min nupcol
2021-05-26 10:22:09 +02:00
Bård Skaflestad
32fa3df6b6 Don't Increment Loop Counter Twice 2021-05-25 17:31:44 +02:00
Jostein Alvestad
5907a7520a first complete version that satisfies all unit tests 2021-05-25 10:37:45 +02:00
Jostein Alvestad
1086c60825 first version of restart output for WLIST keyword, plus related parser code changes 2021-05-25 10:37:29 +02:00
Joakim Hove
ff292908ff Add new well event for wells which have been touched by ACTIONX 2021-05-21 15:55:39 +02:00
Joakim Hove
8dd9b47fd4 Use Nupcol class in Runspec & ScheduleState 2021-05-21 14:53:12 +02:00
Joakim Hove
2e52d46b68 Add class Nupcol 2021-05-21 14:40:36 +02:00
Joakim Hove
4b831e750a Assemble output formatting in small struct 2021-05-19 13:02:10 +02:00
Bård Skaflestad
8eb9bee6ed Track AQUNUM Records for Restart Purposes
When forming restart arrays for numerical aquifers (IAQN and RAQN)
we need to know the total number of records in the input AQUNUM
keyword as well as the record ID of each individual record.  This
commit adds a tracking mechanism for this information.

While here, also add unit tests that verify that we've correctly
interpreted the AQUNUM records.
2021-05-18 21:17:33 +02:00
Bård Skaflestad
51cf551eac Output Summary for all Numeric Aquifers When ID Defaulted
This commit extends the 'SummaryConfig' aquifer processing to
recognize numeric aquifer keywords without an explicit list of
aquifer IDs, i.e., summary keywords of the form

    ANQR
    /

We use the new functions '{analytic,numeric}AquiferIDs()' to form
lists of pertinent IDs once and then ensure that we create nodes
only for proper subsets of these ID sets.

Add unit tests to both the analytic and numeric configurations to
ensure that we generate these output sets or input errors when the
input file refers to IDs of incorrect type or out of range.
2021-05-16 12:15:46 +02:00
Bård Skaflestad
79b1f97640 Provide Means of Linearising All Aquifer IDs in a Model
This commit adds two helper functions

    std::vector<int> analyticAquiferIDs(const AquiferConfig&)
    std::vector<int> numericAquiferIDs(const AquiferConfig&)

which return the numeric IDs of the model's analytic and numeric
aquifers respectively.  These are useful for configuring aquifer
summary keywords of the form

    AAQR
    /

that do not list individual aquifer IDs and for identifying issues
in the input file when a summary keyword that does list its aquifer
IDs refers to an aquifer of incorrect category (e.g., ID of numeric
aquifer in an analytic aquifer summary keyword).

While here, also add more unit test coverage to the AquiferConfig
object.  In particular, add a unit test that includes aquifers at
all.
2021-05-16 12:15:46 +02:00
Bård Skaflestad
b216c63921 Add 'empty' Predicate to DeckKeyword Type
Makes logic statements more explicit and removes a number of
"signed vs. unsigned" comparison operations.
2021-05-16 00:07:10 +02:00
Joakim Hove
c1442803bd Merge pull request #2463 from joakim-hove/get_events
Add method WellGroupEvents.at() to get individual events
2021-05-09 13:52:22 +02:00
Joakim Hove
65edae0b2e Add method WellGroupEvents.at() to get individual events 2021-05-09 11:44:11 +02:00
Bård Skaflestad
65dc2e0942 Merge pull request #2462 from joakim-hove/keyword-generator-default-precision
Make sure precision is retained in very small default values

Closes #2448
2021-05-07 12:45:16 +02:00
Joakim Hove
e2572ed89e Merge pull request #2460 from joakim-hove/clear-events
Add clearEvent() method to consume events
2021-05-06 15:45:09 +02:00
Joakim Hove
b21fd3e3e8 Make sure precision is retained in very small default values 2021-05-06 15:33:21 +02:00
Joakim Hove
05fee1fd12 Add small class to handle MAPAXES & MAPUNITS 2021-05-05 16:09:58 +02:00
Joakim Hove
881da80e96 Add clearEvent() method to consume events 2021-05-05 13:40:50 +02:00
Joakim Hove
6650369970 Fix dimension handling for MAPAXES / MAPUNITS 2021-05-04 13:15:40 +02:00
Joakim Hove
2ca78faf3c Configure MAPAXES as DATA keyword to enable loading from IMPORT 2021-05-04 13:15:40 +02:00
Joakim Hove
d3f2f593eb Remove public method EclipseGrid::getMAPUNITS() 2021-05-04 07:48:23 +02:00