Commit Graph

237 Commits

Author SHA1 Message Date
Bård Skaflestad
3d94dc7e63 Merge pull request #1411 from joakim-hove/rst-connectin
Simple POD class for connection info loaded from restart file
2020-01-15 00:48:20 +01:00
Joakim Hove
66fd1d39e9 Small POD class for connections loaded from restart file 2020-01-14 23:04:57 +01:00
Bård Skaflestad
8f182db27a Rework RFT Config to Handle More Cases
Generally, this commit captures more of the surrounding context of
calls to the updateRFT() and updatePLT() member functions.  We need
this additional context in order to handle the conflicting semantics
of output requests WRFT and WRFTPLT:FOPN.  The former generates RFT
output when the well opens if this event does not happen earlier in
the simulation schedule than the output request.  Otherwise no RFT
data is emitted.  The latter outputs RFT data at request time if
well opens no later than the request; otherwise at well-open time.

To this end, switch the well_open_rft_name data member from an
unordered_set of well names into an unordered_map from well names to
RFT output request times.  With this additional information we can
use well_open_rft_time to infer the appropriate response to whether
or not to activate RFT output at well open time.  Moreover, we now
guarantee that no RFT output is ever activated before the first RFT
output request.

Switching the type of the well_open_rft_name data member also begets
an API update to the serialization related RFTConfig constructor and
to the return type of RFTConfig::wellOpenRftName().

We furthermore switch to caching the first RFT output event in a new
scalar data member, first_rft_event.  This caching, coupled with the
additional calling context mentioned earlier, means we are now able
to report a high-fidelity, constant time answer to the

    RFTConfig::firstRFTOutput()

request.  This, in turn, is very useful for the RFT output code.
Finally, we also add a couple of new, private member functions to
simplify updating first_rft_event depending on context.

As part of this update, member function

    RFTConfig::setWellOpenRFT(report_step)

will now use the minimum of all 'report_step' values to support the
WRFT keyword being specified more than once.

Finally, add a set of unit tests to exercise the various RFT output
request combinations.

While here, also switch to using unordered_map::find() and emplace()
where possible to limit repeated look-up of the same keys.
2020-01-14 15:58:34 +01:00
Joakim Hove
a6ddce5d92 Add basic Python exec of PYACTION 2020-01-13 15:15:21 +01:00
Joakim Hove
5fb03ec44f Make POD class RestartIO::Header which internalizes restart header 2020-01-11 06:54:01 +01:00
Trine S. Mykkeltvedt
b85871c4e8 renamed saltwater-->brine and edited BDENSITY 2020-01-08 15:31:35 +01:00
Trine S. Mykkeltvedt
aa19f38a54 Added keywords PVTWSALT and modified SALTVD, WSALT and BDENSITY for a simple salt/brine implementation 2020-01-08 15:31:35 +01:00
Joakim Hove
d2392c4ea4 Add PyAction skeleton code 2020-01-06 10:28:19 +01:00
Joakim Hove
3c29d4c410 Merge pull request #1385 from akva2/noecl_flush
More serialization preparation
2020-01-03 20:15:31 +01:00
Bård Skaflestad
5fb4d355ec Merge pull request #1383 from joakim-hove/fp-section
Fp section
2020-01-03 11:33:54 +01:00
Arne Morten Kvarving
9c187ad0c1 changed: make ASTNode part of public API
required for serialization
2020-01-03 08:34:28 +01:00
Joakim Hove
b7fcded7ef Merge pull request #1378 from joakim-hove/wrap-summarystate
python wrapper for summarystate
2020-01-02 20:54:48 +01:00
Joakim Hove
90d30e3bc9 Rename class Section -> DeckSection 2020-01-02 15:27:22 +01:00
Arne Morten Kvarving
9c991241c0 changed: make UDQASTNode part of public API
needed for serialization
2020-01-02 12:06:34 +01:00
Joakim Hove
20c5a2b50e python wrapper for summarystate 2019-12-27 10:08:46 +01:00
Steinar Foss
d6c1d64ba0 Python: added class FieldProperties.
test_props.py: added check for 3d_properties/field_props extraction.

cxx/eclipse_state.cpp: adding function field_props.

added python class FieldProperties.

python FieldProps: added __contains__.

python FieldProps: added __getitem__.

python field_props: images all 3dprops tests.
2019-12-22 15:25:16 +01:00
Kai Bao
80159c4374 adding support for WSEGVALV 2019-12-11 13:00:34 +01:00
Markus Blatt
a1471c80b5 Use ActiveGridCells when filtering connections. 2019-12-10 13:49:04 +01:00
Markus Blatt
36e1ef69ef Added utility for querying (only) active cells.
This will relieve us from building up a full EclipseGrid
just for filtering well connections.
2019-12-10 13:49:04 +01:00
Kai Bao
fea4c4c8fa adding support for WSEGSICD 2019-12-05 11:48:59 +01:00
Bård Skaflestad
7b3de57e92 Load Restart: Support Basic Quantities from Analytic Aquifers
This adds a basic protocol for retrieving simple scalar data for
each analytic aquifer, specifically from XAAQ.  At the moment we
only support retrieving the aquifer pressure and the total produced
liquid volume from the aquifer and into the reservoir model.
2019-12-04 17:43:27 +01:00
Joakim Hove
3156448f99 Add enum value::status to handle the set/unset status of items 2019-11-17 11:18:05 +01:00
Joakim Hove
613ec70dab Rename Well2 -> Well and Group2 -> Group 2019-11-13 23:19:26 +01:00
Joakim Hove
6a01e4af35 Merge pull request #1201 from stefoss23/gconsump
Schedule handles keyword GCONSUMP.
2019-11-07 12:07:31 +01:00
Joakim Hove
a3090fd88f Merge pull request #1181 from joakim-hove/tskille_pybind_eclio
Tskille pybind eclio
2019-11-06 16:39:30 +01:00
Steinar Foss
f75c3921e5 Schedule handles keyword GCONSUMP.
GConSump: added and linked soruce files.

gconsump added to dynamicstate.

added handleGCONSUMP.

GConSump: add.

GConSump: has.

GConSump: get.

GConSump: added UDA values.

GConSump: added network_node.
2019-11-06 15:12:25 +01:00
Joakim Hove
d66852d8de Rewrite EclFile wrapping
- Include the eclipse_io.cpp file in existing extension library - do not create
   a new library.

 - Remove Python class EclFile - just expose the C++ through Pybind1, include
   some monkey-patching of the class to ensure proper Python strings for CHAR
   keywords.

 - Remove string based keyword lookup.

 - Use standard Python methods __len__, __getitem__ and __contains__; get() is
   an equivalent alternative to __getitem__().

 - Add property arrays in addition to getListOfArrays()
2019-11-06 09:59:07 +01:00
Joakim Hove
179be0d519 Add converter to convert CHAR arrays 2019-11-06 09:59:07 +01:00
Atgeirr Flø Rasmussen
d6cd0ff871 Merge pull request #1197 from atgeirr/add-regula-falsi-bisection
Add combined regula falsi + bisection method, and test.
2019-11-05 13:00:36 +01:00
Atgeirr Flø Rasmussen
2951df2bfb Add combined regula falsi + bisection method, and test. 2019-11-05 10:33:02 +01:00
Joakim Hove
8c6768cc89 Merge pull request #1193 from stefoss23/gconsale
Adding keyword GCONSALE to Schedule.
2019-11-04 15:02:19 +01:00
Steinar Foss
ec07dca68b Added GConSale.hpp to CMakeLists_files.cmake. 2019-11-04 09:31:45 +01:00
Steinar Foss
d2dce88411 Adding keyword GCONSALE to Schedule.
added files GConSale cpp/hpp.

Schedule: adde GConSale as DynamicState.

Shcedule: added function gConSale.

added function handleGCONSALE.

GConsale: added substruct GCONSALEGroup.

GConSale: empty records added.

GConSale: all values set to zero.

GCONSALE: values stored as UDA.

GConSale: UDAValues to SI.

GConSale: max_proc parsed.
2019-11-03 11:37:28 +01:00
Joakim Hove
a7187abc17 Initial implementation of 3D properties 2019-10-31 11:18:55 +01:00
Joakim Hove
9d1b7a83d9 Changes in Python build:
- Use python/install.py to copy from source tree to build tree
- List Cxx source files in CMakeLists_files.cmake
2019-10-28 21:42:57 +01:00
Joakim Hove
ccb3ddced9 Extracted OPERATE function to separate file 2019-10-23 07:25:41 +02:00
Joakim Hove
781ced7294 Use struct Location to record file position for keywords 2019-10-17 23:57:01 +02:00
Joakim Hove
e815194e21 Merge pull request #1112 from stefoss23/remove_common_state
Remove common state
2019-10-17 06:58:25 +02:00
Bård Skaflestad
eea51a12b4 Add Simple Time-Service Protocol
Mostly for converting between std::time_t and broken-down time
stamps.  Uses UTC and std::chrono::system_clock.  May wrap in as
little as 292 years, depending on the period of system_clock.

Intended to replace various timestamping utility functions from
libecl.  A comprehensive time-service protocol for Flow is much more
work than this, and will likely not be easily realized before we
have C++17 and its much expanded time/calendar library.
2019-10-16 20:03:08 -05:00
Steinar Foss
0e5c14568e removed common_state. 2019-10-16 13:59:00 +02:00
Joakim Hove
1ff41de3eb Avoid use of include/ directory in test data 2019-10-14 15:46:02 +02:00
Jostein Alvestad
7973585db0 Initial work to add Actionx data to Eclipse compatible restart file
further changes to Actionx - restart

further changes for Actionx data to Restart file

additional changes to output Actionx data to Restart file

add test data for UDQ-ACTIONX

changes to add unit tests for InteHead - Actionx

Added changes to allow for output of IACT, SACT and ZACT to the E100 compatible restart file

changes to add ZLACT to restart output

Further changes - add ZACN - prelim

further changes to add ZACN to restart file

Additional changes to output IACN and SACN to restart

further changes to add IACN and SACN to the restart file

further changes to make unit tests for Actionx data / keywords

further changes to actionx restart and unit tests therefore

Added code for unit tests - not finished

some changes to correct for changes in upstream/master

changes correct errors in IACN and SACN

Initial work to add Actionx data to Eclipse compatible restart file

further changes to Actionx - restart

further changes for Actionx data to Restart file

additional changes to output Actionx data to Restart file

add test data for UDQ-ACTIONX

changes to add unit tests for InteHead - Actionx

Added changes to allow for output of IACT, SACT and ZACT to the E100 compatible restart file

changes to add ZLACT to restart output

Further changes - add ZACN - prelim

further changes to add ZACN to restart file

Additional changes to output IACN and SACN to restart

further changes to add IACN and SACN to the restart file

further changes to make unit tests for Actionx data / keywords

further changes to actionx restart and unit tests therefore

Added code for unit tests - not finished

some changes to correct for changes in upstream/master

changes correct errors in IACN and SACN

changes to avoid change in output data for restart file

further changes to avoid change in RESTART data

minor change to avoid data change in Restart file
2019-10-14 15:45:24 +02:00
Steinar Foss
a089f9ff47 CMakeLists_files.cmake added unit_system to EMBEDDED_PYTHON. 2019-10-14 12:54:17 +02:00
Joakim Hove
16a8f4040c Renamed UDQInput -> UDQCOnfig
UDQConfig object has merged DEFINE & ASSIGN

Log use of UDA for output purposes

Output UDQ keywords to restart file

Add size() method to UDQConfig

Add UDQVarTYpe member to UDQInput class

Add UDQIndex type to keep track of sequence number of variable types

Add unit to UDQInput class

use maps

Add operator[] to UDQConfig class

Use UDQInput class when creating restart file

UDQInput: use correct input index

Add UDQActive::get() method

Make sure UDQ DEFINE overwrite correctly

WIP

WIP - further code to output IGPH vector

WIP

Fix IUAD input index

Output use_index for IUAD

Fix bug with size of IUAD array

UAD usage hashing based on udqstring and controltype

Add UDQ test and input file

Refactor UDQActive - handles vanishing UDA

minor correction for iuad[1] and for test_UDQ_x.cpp

Further work for making unit tests for UDQ restart data

WIP Further work unit tests

WIP some minor corrections

WIP changes to add first version of BOOST test for IUDQ

WIP Added code to write InteHead and DoubHead data as well as IGPH to restart file,

Further added unit tests to the writing of UDQ data

add code to output IUAP array

Fixed group-group2 transition, disable Restart output

WIP Initial changes to add DUDW array to restart output

WIP further work on DUDW data

WIP - further work to output and test DUDW vector data to restart file

Further changes to write DUDW array to Restartfile
2019-10-07 09:54:34 +02:00
Steinar Foss
7199e1ede4 DeckValueTests: added test for DeckKeyword constructor taking DeckValue vectors.
DeckKeyword: new constructor takes recordlist.

DeckKeyword: invalid arg for wrong nr. of records.

DeckValue: type_tag replaces DeckValueEnum.

DeckValue: added as source for genkw.

DeckValue: default is unknown type.

DeckKeyword cosntr w/ record-lists works, but not for defaults.

DeckKeyword: added function add_deckvalue.

.. xx --

...

...

...

...

...

...

...

DeckValue: is<double> true also if integer.

...

...

last commit .m
2019-10-04 10:13:56 +02:00
Bård Skaflestad
c01dae67f9 Decouple Table Linearisation from LibECL
This commit makes the table linearisation code independent of
LibECL's "ecl_kw_magic.h" header.  In particular, we add a new set
of vector items (tabdims.hpp) that describe the items we currently
define and reimplement the member functions of the 'Tables' class in
terms of these items.

Update the unit test accordingly.
2019-10-02 23:11:56 +02:00
Steinar Foss
af878ba229 introduced new class DeckValue.
added DeckValue.cpp.

completed DeckValue.
2019-09-26 14:12:05 +02:00
Joakim Hove
69ddffc966 Expose C++ objects to Python runtime 2019-09-23 21:31:45 +02:00
Torbjørn Skille
34410cbe41 ERT/libecl routines used in the EclipseGrid class has been replace by new member functions. Grid properties are
calculated and stored as private data members in EclipseGrid.

The API for the class is unchanged except for some minor changes for exportACTNUM, exportZCORN and exportCOORD.

These changes have triggered some very few modifications in the opm-grid and opm-simulators repo.
2019-09-20 14:21:23 +02:00
Bård Skaflestad
6c47cdb22f Add New RFT File Writer
This commit implements a new file writing function

    void Opm::RftIO::write()

that is intended to replace the current RFT output functionality
defined in terms of private class 'RFT' in EclipseIO.cpp.  We
support the basic RFT output consisting of

    - Timestamp (elapsed and date)
    - WELLETC metadata including all unit conventions
    - Connection cell (I,J,K), connection cell hostgrid (blank for
      main grid only), connection cell centre depth, connection cell
      pressure, and connection cell water and gas saturations

Connections in inactive cells are omitted.  Note that unit of
measure strings aren't implemented in terms of UnitSystem::name()
due to the strings being padded on the left for centering effect.

Add unit tests to exercise the new writer.
2019-09-18 16:48:53 +02:00