Commit Graph

278 Commits

Author SHA1 Message Date
Joakim Hove
9a53243bd9 Added support for block variables in Summary. 2016-11-22 15:17:43 +01:00
Joakim Hove
0badeb68c7 Merge pull request #140 from jokva/foe
FOE support
2016-11-22 13:00:04 +01:00
Jørgen Kvalsvik
84690ce6b6 RGIPL+RGIPG support. 2016-11-21 12:35:23 +01:00
Jørgen Kvalsvik
fc789d489a FOE support
Field efficiency: (OIP(initial) - OIP(now)) / OIP(initial). The initial
OIP is cached, and FOIP is reused for OIP(now). Adds the
operator-(double,quantity) to make the formula obvious from the FOE
function.
2016-11-18 11:40:45 +01:00
Jørgen Kvalsvik
0253d1675d WellSet uses strings, not Well pointers 2016-11-17 12:48:54 +01:00
Jørgen Kvalsvik
8b1ca9803f FPR support 2016-11-10 11:01:27 +01:00
Jørgen Kvalsvik
d16436913c RWIP support 2016-11-10 11:01:27 +01:00
Jørgen Kvalsvik
7866e38c19 Region injection rates and totals
Support for ROIR, RGIR, RWIR, ROIT, RGIT and RWIT. The oil injection
keywords exist for symmetry.
2016-11-10 11:01:27 +01:00
Jørgen Kvalsvik
6ae9535c37 GGLR+GGLRH support 2016-11-10 11:01:27 +01:00
Joakim Hove
ac4640effe Check that completion corresponds to active cell. 2016-11-04 15:24:59 +01:00
Joakim Hove
ec4d320959 Merge pull request #128 from jokva/fgmwin-fgmwpr
{F,G}MW{IN,PR} support and minor internal renaming
2016-11-02 14:06:05 +01:00
Jørgen Kvalsvik
8a907be17b Replace function aliases with names for parameters
Several functions were aliased to hide the fact that they shared the
same templated function, but with different specialisations. By
introducing aliases for producer and injector some readability is gained
and some (clumsy) aliases are removed, in favour of passing the
interesting aspect along with the general base name.
2016-11-02 12:35:11 +01:00
Jørgen Kvalsvik
c167dc4e62 {F,G}MW{IN,PR} support
Add support for the FMWIN, FMWPR, GMWIN and GMWPR keywords.
2016-11-02 12:18:39 +01:00
Joakim Hove
000c9b5479 Merge pull request #125 from jokva/phase-in-runspec
Read phase information from EclipseState.runspec
2016-11-02 11:52:19 +01:00
Joakim Hove
2032592d17 Fixup for completion rate units for inactive cell. 2016-11-02 09:59:09 +01:00
Jørgen Kvalsvik
e06d591dd3 Read phase information from EclipseState.runspec 2016-11-01 11:19:59 +01:00
Joakim Hove
8656268f3c Pass NUM == 1 in when determining units. 2016-11-01 10:19:00 +01:00
Jørgen Kvalsvik
77d1c4464d Return zero when simulator does not provide FIP 2016-10-31 14:08:59 +01:00
Jørgen Kvalsvik
b338943962 FOIP+FGIP support 2016-10-28 15:45:22 +02:00
Jørgen Kvalsvik
06b2eb2cd3 Look up correct fluid-in-place keyword 2016-10-28 14:23:36 +02:00
Jørgen Kvalsvik
84b18faf49 RGIP support 2016-10-28 12:48:12 +02:00
Jørgen Kvalsvik
9181a260e8 GWCTH support 2016-10-28 12:19:07 +02:00
Jørgen Kvalsvik
cc73c9d95f GGORH support 2016-10-28 12:18:55 +02:00
Joakim Hove
1b3fd64924 Support for region production. 2016-10-28 11:36:31 +02:00
Joakim Hove
2def85a70c Fixed bug in summary output of completion rates. 2016-10-26 19:50:17 +02:00
Joakim Hove
776094aa2c Added ROIP / ROIPL / ROIPG summary keywords. 2016-10-26 19:50:17 +02:00
Joakim Hove
a8d82221a8 Added small class RegionCache. 2016-10-26 19:50:17 +02:00
Atgeirr Flø Rasmussen
72c09a80b9 Silence some false-positive warnings. 2016-10-25 14:20:49 +02:00
Jørgen Kvalsvik
30ef5a6099 data::Well::Completion is vector, not map
The data exchanged in data::Well::Completions is now a vector, more
closely matching the disk format and the order exposed by the simulator.
Zero'd wells and complations are still written for shut wells, or wells
the simulator does not provide any information for; however, all
non-closed wells (according to the schedule) will be restored. The
completions are written and restored in the same order as CompletionSet
from parser.
2016-10-24 16:52:26 +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
Jørgen Kvalsvik
8ac5dc553f Implement Solution via std::map 2016-10-17 07:06:23 +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
Jørgen Kvalsvik
f94ecc09a3 Schedule::getGroup returns reference, not pointer 2016-10-05 14:52:25 +02:00
Tor Harald Sandve
f3b9c88a53 Add support for output of solvent in summary file
The following keywords are implemented
[F,G,W,C]N[P,I][R,T]
FNPR, WNIR etc.
2016-09-28 15:03:15 +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
33ae96f2af Summary will output region pressure: RPR 2016-08-26 12:50:40 +02:00
Jørgen Kvalsvik
2158ea92bf FWCTH support 2016-07-19 14:44:35 +02:00
Jørgen Kvalsvik
9fc3fcfc38 Simplify DSL; unit conversion to quantity maths
By moving the unit conversion to the low-level arithmetic rather than
the high level functions, the DSL is simplified by inferring result
types rather than requiring explicit conversions. This means the
formulae are more lisp-like and more natural, since there is no more
need for liq_vol and fiends.

An added benefit is that multiplication now is commutative also with
respect to units, so the wonky left-hand-side-converts semantics are
gone.
2016-07-19 14:42:11 +02:00
Jørgen Kvalsvik
1ae6508f7f Write textual representation of unit in Summary
Write the corresponding unit type (as a string) to the values written in
the Summary file.

Accomplished by running every registered function as the ert entry is
created and obtaining the string representation of the result. The
computation is called with empty, dummy structures.
2016-07-19 14:39:40 +02:00
Jørgen Kvalsvik
ca5023c26f Completion rate function over unit, not list
There are no such thing as sum-over-completions or over multiple wells.
Treat them as such to communicate this, rather than sum-over-list.
2016-07-19 09:45:50 +02:00
Jørgen Kvalsvik
223d9e55c5 Rename ecl_wells -> schedule_wells 2016-07-19 09:39:14 +02:00
Jørgen Kvalsvik
fa7656bedf [Summary] Rate and rate-derived F-keyword
Support for rate or rate-derived keywords (i.e. sans pressure, sales
etc.) from the Field family of keywords.
2016-07-18 12:57:06 +02:00
Jørgen Kvalsvik
ef64026bce Cuts/ratios only apply to production
In line with Eclipse water cuts, gas-oil ratio etc. only applies to
production values, rather than all rates. This sparked some other
refactoring that moves the negative-else-zero logic into the rate
calculation.
2016-07-18 12:02:29 +02:00
Jørgen Kvalsvik
01ae50ba20 Completion production/injection rates/totals
A small set of the completion family of keywords, water/oil/gas
production and injection. The tests and example data file are updated
accordingly, with edge cases.
2016-07-15 15:20:56 +02:00
Jørgen Kvalsvik
0c0a548219 New private Summary implementation
A rewritten Summary.cpp with some minor header modifications. Synposis
of the new implementation:

* Uses unordered_map< string, std::function > for dispatch, instead of
  multiple functions and a switch
* Some poor man's function composition support has been added
  (privately) to avoid a lot of reptition in the post processing.
* Functions assume they work over lists of wells instead of single wells
  being special cased - this means groups of well etc. can share
  implementation with single wells and field keywords.
* Unsupported keywords are not written in the Summary file.

Furthermore, some comments on special cases and overall approach and
a generally more declarative implementation. This change is invisible to
downstream developers. Users will obviously see no more garbage
keywords.
2016-06-30 09:54:40 +02:00
Joakim Hove
66103cd2a0 Respect outputdir: using IOConfig::getOutputBase() 2016-06-27 11:57:49 +02:00
Jørgen Kvalsvik
04ea6c90a8 Well shared_ptr alias deprecated
The shared_ptr aliasing is deprecated, and in the Well case this has
been removed upstream.
2016-06-16 10:12:39 +02:00
Atgeirr Flø Rasmussen
6f531033be Use namespace rather than member syntax. 2016-06-15 09:42:02 +02:00
Jørgen Kvalsvik
d65cf1d657 Only write positive values to Summary file
Since production is seen as negative injection, and production rates
often are zero, negative zeros would be returned. Likewise, occasionally
numerical noise gives slightly-below-zero values which are now rounded
to be plain zeros.
2016-06-10 10:04:00 +02:00