Commit Graph

53 Commits

Author SHA1 Message Date
Arne Morten Kvarving
ebc92fb92e fixed: proper initializer list order 2020-03-30 12:38:47 +02:00
Joakim Hove
50fb51d56e Add Python arg to Schedule constructor 2020-03-27 12:43:18 +01:00
Torbjørn Skille
d258ce5a57 Updates of C++ class ERft to be used with python bindings
-> Support for extracting data based on report index
  -> adding extra float (time) to RftReportList
2020-03-23 10:57:49 +01:00
Arne Morten Kvarving
fb75bcd4e2 changed: use std::filesystem instead of boost::filesystem
since we still support g++-7, where filesystem is marked experimental,
we introduce a wrapper header and expose the namespace to use
as Opm::filesystem.

for gcc we unconditionally link with libstdc++fs in the python bindings.
the setup.py stuff links as c code, not c++ code, so it is not
automatically added on any gcc version. this might prove unportable
later.
2020-02-13 12:34:19 +01:00
Bård Skaflestad
38f458a672 Add Restart Infrastructure for Well's Active Control
This commit introduces a new protocol for communicating a well's
active constraint (i.e., its current target control mode) between
the running simulator and the restart file.  In particular, we add a
new type

    Opm::data::CurrentControl

whose data members indicate if the well is a producer or injector
and, depending on that state, carries information about the
pertinent active control mode.  The 'prod' member should be defined
for producing wells and the 'inj' member should be defined for
injectors.  Default-constructed objects of this type are 'invalid'
and not output to the restart file.  Add a CurrentControl member to
the Opm::data::Well type to enable communicating this information
using existing restart interfaces.

Expand existing unit tests to exercise the new data member.
2020-02-06 12:01:41 +01:00
Joakim Hove
ff69737b99 Add start_time argument to SummaryState 2019-09-19 22:09:15 +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
Bård Skaflestad
38b6451c73 RFT Unit Test: Use Actual 'BOOST_FAIL' Macro
BOOST_TEST_FAIL was a figment of my imagination.
2019-08-30 09:39:15 +02:00
Bård Skaflestad
f0adb01941 Reimplement RFT Unit Test in Terms of 'ERft' Class
This commit switches the `test_RFT` unit test to using the `ERft`
class introduced in commit 24a8efb2 (PR #699).  This is the first
step towards reimplementing the RFT file output in terms of class
EclOutput.  The downside to doing this is that we can no longer use
the node-based queries of libecl and have to implement a wrapper on
top of the raw vectors to be able to ask for the pressure in a given
connection's cell.
2019-08-29 09:24:31 +02:00
Joakim Hove
5748d06914 Remove unused arguments from EclipseIO::writeTimestep() 2019-06-14 14:38:25 +02:00
Joakim Hove
08305b6e30 Extract Summary::eval() out from Summary::add_timestep() 2019-06-07 14:45:18 +02:00
Joakim Hove
94b160258e Remove old well implementation 2019-05-22 21:44:50 +02:00
Joakim Hove
04d42c2f4e Move well and well related files to Well/ subfolder 2019-03-08 07:15:49 +01:00
Joakim Hove
2cd6fa2f49 Add overloads without ParseContext and ErrorGuard - update all tests 2019-01-04 13:59:28 +01:00
Bård Skaflestad
3ea522d7ba Restore Build on GCC 4.9
Commit 334dbe4e broke GCC 4.9 (invoking explicit constructor with an
empty initializer_list).  Restore build by using the actual type.
2018-12-11 17:30:43 +01:00
Atgeirr Flø Rasmussen
334dbe4e1f Initialize all struct elements. 2018-12-10 16:10:25 +01:00
Joakim Hove
967e3ad3af
Merge pull request #526 from totto82/addDRSDTR
Add DRSDTR and DRVDTR
2018-11-06 08:21:32 +01:00
Tor Harald Sandve
95179f393c Fix vappars and dr[sv]dt logic
The simulator should either use VAPPERS or dr[sv]dt, both the
combination drsdt and drvdt is allowed.
2018-11-05 13:38:42 +01:00
Bård Skaflestad
4348438044 Summary: Ensure that we don't step backwards during simulation
This commit, a preparation for restoring cumulative quantities from
a restart file, reinitialises Summary::prev_time_elapsed in the case
of simulation restart and adds a check to

    Summary::write_timestep()

which throws if the input argument 'secs_elapsed' is prior to the
previously recorded elapsed time.  The latter is a change in the
behaviour of write_timestep(), but ensures that we don't integrate
rate quantities across a very large timestep in the case of
simulation restart and also prevents double accumulation.

Update impacted unit tests accordingly, and move FIRST_SIM's START
date into the RUNSPEC section where it belongs.
2018-11-04 21:48:35 +01:00
Joakim Hove
45e81a02fa Use plain C api for temporary testarea 2018-09-07 05:53:20 +02:00
Bård Skaflestad
0be3f2c76f Unit Tests: Supply Enough Parameters for data::Connection
We must provide cell_pressure, cell_saturation_water,
cell_saturation_gas, and effective_Kh.

Forgotten in commit 687f108.
2018-07-12 00:46:46 +02:00
Joakim Hove
3975db2ff3 Rename CompletionSet -> ConnectionSet 2018-06-11 14:03:32 +02:00
Joakim Hove
d078a96eae Use RestartValue container for Eclipse output 2018-05-14 16:12:52 +02:00
Atgeirr Flø Rasmussen
05c904a04e Merge pull request #250 from totto82/MoveWell
Some more cleaning in the output code  in opm-output, ewoms and opm-simulator
2018-02-19 15:05:24 +01:00
Arne Morten Kvarving
7f79101fb2 changed: let the build system handle the dynamic boost test defines 2018-02-14 16:03:57 +01:00
Arne Morten Kvarving
e81784c9eb fixed: libecl recently enforced stricter filename rules
in particular, no mixed case. either all upper or all lower
2018-02-12 15:06:13 +01:00
Tor Harald Sandve
206241c9ae Store global index instead of active index in well completions
Fix bug in output of completion related stuff when run on mulitiple
cores.
2018-02-08 14:11:04 +01:00
Tor Harald Sandve
55ed844438 Add cell data in perforation cells to data::well::completion
With this no cell data is needed in opm-output
2018-02-07 14:32:01 +01:00
Tor Harald Sandve
8a5062ae27 Pass pointers of region and block data to eclIO 2018-02-05 14:23:19 +01:00
Tor Harald Sandve
ba29cfa81e Remove unused stuff 2018-02-05 14:23:19 +01:00
Joakim Hove
21a2944885 Extract Schedule and SummaryConfig. 2017-10-03 09:29:25 +02:00
Joakim Hove
896f806492 Make sure RFT file is opened in correct mode. 2017-09-10 22:56:40 +02:00
Joakim Hove
9120c67cf8 Ability to pass misc values to summary writer. 2017-06-06 15:40:34 +02:00
Joakim Hove
4d1693d027 Changes in the loading of restart files.
The main content of this commit is that the loading of restart files is
based on map of keys passed in from calling scope. This way the
selection of keywords to save and load is fully under control of calling
scope, but in addition there are many small refactorings:

 - The EclipseWriter class and implementation has been renamed
   EclipseIO.

 - The loading and saving of restart files has been moved to file and
   namespace RestartIO, which contains two loose functions load( ) and
   save( ).

 - The Summary() and RFT( ) data get their own copies of the data::Cells
   vector.

 - Removed some abstractions and wrrappers around C / ert
   datastructures. Using ecl_file_view when loading restart files,
   instead of bare ecl_file. Simplified opening of unified restart
   files.

 - Removed the ability to save restart keywords in double precision.
2017-01-17 16:58:56 +01:00
Joakim Hove
08d89858af Extended data::Wells to inherit from std::map. 2016-10-26 19:50:17 +02:00
Jørgen Kvalsvik
ac9ed4ec5c OPM_IWEL Restart support 2016-10-21 12:50:17 +02:00
Jørgen Kvalsvik
b43461cb49 Prefer named data members over vectors in OPM_XWEL
Change the structure used to populate OPM_XWEL to use a plain map of
data::Wells objects rather than dumping a series of vectors to
data::Wells. Tests are added for serialising and restoring wells.
2016-10-21 12:50:17 +02:00
Jørgen Kvalsvik
c07fe44d5e Update to shared_ptr-less parser interface. 2016-10-19 13:44:33 +02:00
Joakim Hove
79e7ce643d Using data::Solution for simulator <-> output.
Will use one common container for both the solution data required for the
restart, e.g. PRESSURE and SWAT and also the auxillary data like KRG and
FIP which is intended as extra information in the restart file, or
alternatively the summary file.
2016-10-17 07:04:06 +02:00
Joakim Hove
eb929077a2 Moved Cells.hpp and Wells.hpp opm/output/data/ 2016-10-06 16:29:20 +02:00
Joakim Hove
fc1a11af70 Use ecl_util_make_date() to create time_t value. 2016-09-19 19:28:06 +02:00
Joakim Hove
204ca5932b Outputwriter: use EclipseGrid
- The outputwriter will now take a a separate EclipseGrid instance as
  input argument, it is assumed that calling scope has already made sure
  ACTNUM and ZCORN are correct.

- All active/inactive cell mappings are based on the grid argument, the
  naked int* with global / active cell mappings has been completely
  removed.
2016-09-08 08:38:39 +02:00
Joakim Hove
4bfacb144d Moved argument 'sub_step' to 2. in argument list. 2016-08-20 19:26:35 +02:00
Joakim Hove
2333191908 Unrelated: Using C++ TestArea. 2016-06-29 13:10:35 +02:00
Joakim Hove
031306735a Unrelated: using EclipseGrid.getCartesianSize() 2016-06-29 13:10:35 +02:00
Joakim Hove
c0b56afb13 Removed NNC argument to EclipseWriter constructor. 2016-06-29 13:10:35 +02:00
Joakim Hove
791da336fe Removed unchecked calls to writeInit(). 2016-06-29 13:10:35 +02:00
Jørgen Kvalsvik
7c82e69a00 Copy and save a Grid copy in Writer; apply actnum
Simulators might modify the grid post EclipseState creation, so the Grid
fetched from there is unreliable. Copy the Deck-provided grid and apply
the manipulations at EclipseWriter construction time to ensure it uses
the same dimensions and has the same properties as the simulator.
2016-06-16 14:30:27 +02:00
Jørgen Kvalsvik
0f1a1d7ede NNC variable not defaulted in writeInit 2016-06-07 08:40:41 +02:00
Jørgen Kvalsvik
e2a5c01a8b Read sim start time from EclipseState
Reading the start time from EclipseState means it's no longer required
as a parameter to every method, and that the current time can be
calculated as start time + time elapsed.
2016-06-07 08:40:41 +02:00