Commit Graph

298 Commits

Author SHA1 Message Date
Kai Bao
e09b0a2de4 addressing reviewing comments from OPM/opm-common#1695 2020-04-17 01:06:22 +02:00
Kai Bao
34ca02c253 adding summary keywords for MSW
SPRD, SPRDH, SPRDF, SPRDA
2020-04-17 00:38:21 +02:00
Williham Williham Totland
9a69c49ca9 Start to create WELSPECS reports 2020-04-11 07:52:32 +02:00
Bård Skaflestad
bc28de3372 Don't Output Dynamic Data to Restart File for SEQNUM=0
This commit introduces a special case for the restart file writing
code.  In particular we no longer write dynamic data vectors (e.g.,
*WEL, *GRP, *CON) to the restart file if we're being asked to output
the initial condition (i.e., report step/sequence number 0).

Add the report step as a new explicit parameter to createInteHEAD()
instead of inferring this value from the "sim_step" and output
dynamic sizes as zero for report_step=0.  While here, also correct
an omission from earlier commit 7986e99e.  We must ensure that the
maximum number of wells in the field (intehead[163]) is at least as
large as the current number of active wells (intehead[16]).

Update "intehead" test to account for report_step being passed
directly as an argument to InteHEAD::stepParam().
2020-03-30 14:39:04 +02:00
Bård Skaflestad
1113c25eb1 Restart: Save/Restore Cumulative Injected Reservoir Volume
This commit adds support for persisting the *VIT cumulative summary
vector at the well, group, and field levels in the simulation
restart files.  Connection level currently not supported.
2020-03-27 14:59:29 +01:00
Joakim Hove
02a5501c0b Add method out::Well::find_connection(std::size_t global_index) 2020-03-23 13:43:50 +01:00
Jostein Alvestad
a4d3ec33f1 correction to buffer.write in opm/data/Groups 2020-03-18 14:13:05 +01:00
Jostein Alvestad
68ac742f17 further changes for opm-data Groups 2020-03-16 13:51:05 +01:00
Jostein Alvestad
a18439bbcc intital changes for adding opm/output/data/Groups 2020-03-16 13:35:25 +01:00
Joakim Hove
b9b7cdc801 Merge pull request #1544 from joakim-hove/restart-items
Restart items
2020-03-09 16:55:57 +01:00
Joakim Hove
2edb1f4621 Add Well::DrainageRadius and Well::EfficiencyFactor to restart file 2020-03-09 16:52:03 +01:00
Joakim Hove
0bb822b9b5 Use WellType when reading and writing restart file 2020-03-09 13:30:18 +01:00
Joakim Hove
ff3949a6ce Output Connection::SkinFactor to restart file 2020-03-09 12:18:41 +01:00
Joakim Hove
75b8c12090 Publish indices required to look up Tuning parameters from DOUBHEAD 2020-03-06 15:52:28 +01:00
Joakim Hove
6af2bcdb6f Use named public item for CFInDeck functionality 2020-03-03 08:34:47 +01:00
Joakim Hove
0f41c73c8e Remove opm specific well type WTUnk 2020-02-27 11:01:15 +01:00
Atgeirr Flø Rasmussen
74129a2866 Silence a few warnings, remove some end-of-line whitespace. 2020-02-13 09:13:29 +01:00
Joakim Hove
9bed25f035 Use common ICDStatus class for both Valve and SpiralICD 2020-02-12 15:09:26 +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
Bård Skaflestad
8225ea87d4 Merge pull request #1450 from joakim-hove/unitsystem-ecl-id
Add UnitSystem functionality to handle eclipse integer id
2020-02-05 20:42:51 +01:00
Joakim Hove
35a580f610 Add UnitSystem functionality to handle eclipse integer id
Writing of INTEHEAD keyword uses UnitSystem class instead of intermediate enum
UnitSystem.
2020-02-05 07:38:00 +01:00
Arne Morten Kvarving
dab3ba807a changed: simpify Tuning handling
make Tuning a simple struct, and store as a DynamicState<Tuning>.

in the process the unused setTuningInitialValue is removed. it was
only used in unit tests and seem like a leftover
2020-02-04 10:42:43 +01:00
Joakim Hove
69822e880f Add POD struct for state with wells and groups from restart file 2020-01-22 12:23:26 +01:00
Joakim Hove
16f0869bc0 Expose more indices in the INTEHEAD vector publicly 2020-01-11 06:54:01 +01:00
Jostein Alvestad
cf82a90815 Add changes for WHISTCTL data in ECL restart 2019-12-17 12:30:48 +01:00
Jostein Alvestad
0c9a2cbbf6 initial changes to test output of UDQ and ACTIONX data to ecl-restart
change to avoid zero-size windows in Actionx

changes to improve Restart output content

change to correct IUDQ for DEFINE

corrections to IACN and SACN

initial changes to add item to ZWEL

further changes to add Action to well

further changes to allow for action name in ZWEL

more changes

further changes to output action name to ZWEL

changes to test/debug Restart write

turn on writing of ZWEL again

First running version of udq-actionx-rst

use Action::Result direkte

first working! version

some corrections

changes to allow for output of SACN [4.6.8]

added debug print

changes to improve IACN and IACT

further corrections to Actionx IACN pluss error messages

changes to adapt to well2 converted to well class

further changes to enable restart with group control

changes to adapt to newly merged code in master

changes to include Intehead [51] - group control

test

changes to iGrp[nwgmax +7]

initial changes for GUIDERATE

changes to add guiderate parameters to the restart file

add comment

correction to guiderate - test if exist

correction to DoubHead - test if GR exist

correction to ISEG[8]

correction for eclipse version Restart-file

Cosmetic change

corrections to igrp

correction to segment type in iseg
2019-12-17 12:30:40 +01:00
Bård Skaflestad
5629098503 Output SICD Characteristics to Restart File
This commit identifies well segments that correspond to SICDs
(input keyword WSEGSICD) and captures those in the ISEG vector.
Furthermore, we output characteristic properties of such SICD
segments (e.g, the length, the base strength, calibration fluid
properties) in the RSEG vector.
2019-12-10 15:15:10 +01:00
Joakim Hove
27da0024af Merge pull request #1288 from joakim-hove/flowing
Determine that wells are flowing from nonzero rates
2019-12-05 10:09:39 +01:00
Bård Skaflestad
25931145e0 Aquifer Restart: Load Values Pertinent to Fetkovich Model
This commit expands the basic aquifer restart support to also
include essential values for the Fetkovich analtic model.  In
particular, we now also load the initial aquifer pressure and the
initial aquifer volume directly from the SAAQ restart vector, but
only if we know that the aquifer in question is of Fetkovich type.
2019-12-04 19:57:14 +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
3deef64d19 Use numerical flow rates to determine Well::flowing() 2019-12-04 17:15:30 +01:00
Arne Morten Kvarving
ef9bc3cf3f Merge pull request #1265 from akva2/comparison_operators_output_structures
added: comparison operators for various output structures
2019-11-28 15:19:23 +01:00
Arne Morten Kvarving
6600994104 added: comparison operators for various output structures 2019-11-28 13:30:48 +01:00
Bård Skaflestad
c333b21c90 Prepare Restart File Support for Valves and ICDs
This commit identifies certain items in restart vectors ISEG and
RSEG that pertain to valves (keyword WSEGVALV) and spiral ICDs
(keyword WSEGSICD).  In particular, we identify segment type flag
and a couple of relevant values for this flag.  Also, relevant
parameters that describe the geometry and pressure drops of these
devices.
2019-11-27 22:12:43 +01:00
Arne Morten Kvarving
a34bc76b46 added: serialize the whole connection struct to OPM_XWEL 2019-11-27 14:13:31 +01:00
Joakim Hove
8bd9aeaf9d Change RegionCache constructor to accept std::vector<int> fipnum 2019-11-20 08:36:03 +01:00
Joakim Hove
613ec70dab Rename Well2 -> Well and Group2 -> Group 2019-11-13 23:19:26 +01:00
Bård Skaflestad
d19f9d6899 INTEHEAD: Promote Day, Month, Year to Public Indices
This commit makes the (Day, Month, Year) indices of the restart
file's INTEHEAD vector to the publicly available VectorItems.  This,
in turn, makes the entries more readily accessible outside of
InteHEAD.cpp.
2019-10-28 23:27:39 -05:00
Joakim Hove
8c417a51e6 Merge pull request #1098 from joakim-hove/actionx-rst
Actionx rst
2019-10-14 18:00:21 +02:00
Joakim Hove
583ac5a756 Merge pull request #1094 from blattms/default-constructable-restartkey
Make RestartKey default contructable.
2019-10-14 17:29:31 +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
Markus Blatt
c379e7e3b0 Make RestartKey default contructable.
Otherwise we cannot even resize a vector of it and this will be needed
for restart when getting rid off the global grid on all processes.
2019-10-14 15:17:57 +02:00
Bård Skaflestad
2eb3a06024 Replace Writer for Summary/SMSPEC Files
This commit replaces the existing system for writing summary and
specification (SMSPEC) files with a new implementation based on
class EclOutput.  We package the evaluators of individual parameters
in a set of classes determined by the parameter's category which
each implement a virtual 'update()' function.  This update function
ultimately writes new values into a SummaryState object.

Add a factory-like system for instantiating the appropriate class
depending on a SummaryNode's 'category()'.  Also, add a helper class
for managing the parameters that a configured in a simulation
model's SUMMARY section in order to distinguish these from those
parameters that are merely needed for restart purposes.  The summary
class's 'eval()' function then becomes a loop over the evaluators
for parameters in SUMMARY followed by a loop over the evaluators for
restart vectors.

We reimplement the 'internal_store()' function in terms of an
std::vector of a helper structure 'MiniStep' which holds a ministep
ID (contiguous counter started at zero), a report step ID, and all
the evaluated parameters of this ministep.  The final write function
then consists of outputting those ministep structures that have
accumulated since the previous call to write().  If a simulation
does not call write at all, then this will accumulate all parameters
for all ministeps throughout the simulation history.

We create the SMSPEC file at most once, and write to it at most each
report step.  We create the summary file once (if unified) or at
each report step (if separate).
2019-10-12 20:21:17 -05:00
Jostein Alvestad
967954fc4b corrections and changes according to comments from maintainer 2019-10-07 09:54:42 +02:00
Jostein Alvestad
20523b46cc additions and corrections for restart export DUDF, DUDG andn DUDW 2019-10-07 09:54:38 +02:00
Jostein Alvestad
202651c34d corrections after complex rebase to write DUDW data to ECL-compatible restart file 2019-10-07 09:54:36 +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
Bård Skaflestad
aa9471dff1 Forward Declare 'out::Summary' Class in EclipseIO
Mostly to reduce build coupling.  Include Summary.hpp where needed.
2019-10-05 14:27:51 +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
Bård Skaflestad
3db106dd5c Table Linearisation: Remove Original PVT Functions
This commit removes the original member functions

    void Tables::addPVTO()
    void Tables::addPVTW()
    void Tables::addPVTG()

since these are no longer needed.  The PVT tables are now defined in
terms of the 'addPVTTables()' member function

While here, also remove the fwrite() free function which was defined
in terms of LibECL types.

Update the unit test accordingly.
2019-10-02 00:47:35 +02:00