Commit Graph

5420 Commits

Author SHA1 Message Date
Bård Skaflestad
b4915e7b55 Tables: Add Structurally Correct Oil PVT Output from PVDO
This commit expands the private member function

    Tables::addOilPVTTables(const EclipseState&)

to create structurally correct TAB vector entries from the PVDO
(dead oil) input table data when oil is an active phase in a
simulation run.  Specifically, the result array has the columns

    [ Po, 1/Bo, 1/(Bo*mu_o), d(1/Bo)/dPo, d(1/(Bo*mu_o))/dPo ]

The number of table rows is equal to number of PVT regions times the
number of pressure nodes declared in input keyword TABDIMS (NPPVT,
Item 4).  In other words, the result array is expanded to fill NPPVT
rows per PVT region.  Fill value +2.0e+20.  We have verified the
results with ECLIPSE 100.

As an OPM extension, we will use the maximum number of active
pressure nodes across all PVDO tables if the declared maximum
pressure nodes in TABDIMS is too small.  This will create a TAB
vector that is not compatible with ECLIPSE, but which will
nevertheless be useful in the context of ResInsight's flux
calculation.
2019-04-04 14:11:07 +02:00
Bård Skaflestad
b2a37d1e54 Tables: Add Structurally Correct Oil PVT Output from PVCDO
This commit expands the public member function

    Tables::addPVTTables(const EclipseState&)

to call into a new private member function

    Tables::addOilPVTTables(const EclipseState&)

which will create structurally correct TAB vector entries from the
PVCDO input table data when oil is an active phase in a simulation
run.  Specifically, the result array has the columns

    [ Po, Bo, Co, mu_o, Cv ]

in which 'Co' denotes the oil compressibility and 'Cv' denotes the
oil viscosibility.  The number of table rows is equal to number of
PVT regions times the number of pressure nodes declared in input
keyword TABDIMS (NPPVT, Item 4).  In other words, the result array
is a copy of the input table but expanded to fill NPPVT rows per PVT
region.  Fill value -1.0e+20.  We have verified the results with
ECLIPSE 100.

At present the function is not called by Flow's INIT file writer.
2019-04-04 14:11:07 +02:00
Bård Skaflestad
466341fa0f Tables: Add Structurally Correct Water PVT Output
This commit adds a new public member function

    Tables::addPVTTables(const EclipseState&)

that calls into a new private member function

    Tables::addWaterPVTTables(const EclipseState&)

to create structurally correct TAB vector entries from the PVTW
input table data when water is an active phase in a simulation run.
Specifically, the result array has the columns

    [ Pw, 1/Bw, Cw, 1/(Bw * mu_w), Cw - Cv ]

in which 'Cw' denotes the water compressibility and 'Cv' denotes the
water viscosibility.  Column 4 and 5 follow ECLIPSE 100 conventions.
Number of table rows equal to number of PVT regions.  This result
array differs from the existing Tables::addPVTW() member function in
the treatment of viscosity and viscosibility data.  We have verified
the results with ECLIPSE 100.

At present the function is not called by Flow's INIT file writer.

Add a unit test to exercise the new member function.
2019-04-04 14:11:07 +02:00
Bård Skaflestad
c279184229 Tables: Make Table Constructor More Generally Callable
In particular, expose the internals of

    SatFunc::detail::createSatfuncTable()

as a new free function, createPropfuncTable().  The latter knows
about sub-tables as present in live oil (PVTO) and wet gas (PVTG)
input data and will loop over all primary keys of a single table
(i.e., region) before advancing to the next table.

The primary purpose of createPropfuncTable() is to support creating
the normalised (ECLIPSE 100 style) INIT file tables for PVT data.
2019-04-04 14:11:07 +02:00
Bård Skaflestad
bd73bb6c55 Linearised Table: Add Constructor with User-Defined Fill Value
Reimplement original constructor in terms of the new constructor.
The main purpose of the new constructor is to support PVT tables
which use a fill/padding value different from 1.0e+20.
2019-04-04 14:11:07 +02:00
Joakim Hove
78170ccfce
Merge pull request #704 from joakim-hove/rft_config
Add class RFTConfig
2019-04-04 14:05:07 +02:00
Joakim Hove
7852e584f9 Slight reorganisation to avoid possible memory leak 2019-04-03 19:46:08 +02:00
Joakim Hove
a9bb73559d Use RFTConfig instead of per well RFT configuration 2019-04-03 19:46:08 +02:00
Joakim Hove
be36439600 Add class RFTConfig to manage when RFTs should be created 2019-04-03 19:46:07 +02:00
Joakim Hove
9e40f3be4f Add DynamicState::find_if() 2019-04-03 19:46:07 +02:00
Joakim Hove
0d172c9a1c
Merge pull request #705 from totto82/fix_well_event2
update well event also for WCONINJH
2019-04-02 17:51:00 +02:00
Joakim Hove
ad6c98e0da
Merge pull request #706 from totto82/fix_overburd
Fix the unit of the overburden pressure
2019-04-02 17:50:17 +02:00
Tor Harald Sandve
8fb0e1e222 Fix overburden units 2019-04-02 13:42:38 +02:00
Tor Harald Sandve
d7bd8d25cd update well event also for WCONINJH 2019-04-02 13:40:47 +02:00
Bård Skaflestad
d0d6d57472
Merge pull request #695 from joakim-hove/data-type-UDA
Input Data type uda
2019-04-01 19:53:22 +02:00
Joakim Hove
0923ffeef2 Replace std::endl with \n in code generator 2019-04-01 18:32:06 +02:00
Joakim Hove
7a158fc45c Use UDA datatype in the keyword configuration 2019-04-01 18:32:06 +02:00
Joakim Hove
fdac0f576c Add input type UDA -> double 2019-04-01 18:32:06 +02:00
Joakim Hove
e6aecbd7ac ParserItem: differentiate between input type and internal data type
Differentiate between the input type, as specified in the json configuration
file, and the internal native type used to store data. This is a many-to-one
mapping, where e.g. both the input types STRING and RAW_STRING map to the
internal datatype std::string.

Additional changes:

 - Have removed several ParserItem() constructors.
 - The size_type::SINGLE is default for a ParserItem, and not set explicitly in
   the generated ParserKeywords.cpp file.
 - Have removed a call to boost::lexical_cast<> - just use std::to_string()
2019-04-01 18:32:06 +02:00
Joakim Hove
810aa6970b
Merge pull request #702 from joakim-hove/udq-summary-bug
Section keyword 'SUMMARY' was incorrectly identified as UDQ a keyword
2019-03-29 17:12:36 +01:00
Joakim Hove
598b5b1ff4 Section keyword 'SUMMARY' was incorrectly identified as UDQ a keyword 2019-03-29 15:40:37 +01:00
Joakim Hove
5734923b1e Add size() method to SummaryConfig class 2019-03-29 15:40:37 +01:00
Joakim Hove
4eb41c569e
Merge pull request #692 from andlaus/add_SWLPC_et_all
add the S[WG]LPC and IS[WG]LPC keywords
2019-03-28 14:32:51 +01:00
Arne Morten Kvarving
85f13c3e64
Merge pull request #698 from akva2/extra_cmake_params_jenkins
added: array of extra cmake parameters for each module
2019-03-28 14:22:38 +01:00
Joakim Hove
01090a8722
Merge pull request #693 from andlaus/add_THPRESFT
add the THPRESFT keyword
2019-03-28 12:57:43 +01:00
Andreas Lauser
2b4212bac0 add comment about the value of the SWLPC keywords being sometimes wrong
This is a corner case that I don't think will matter in practice.
2019-03-28 12:01:41 +01:00
Arne Morten Kvarving
4bee03be6f added: array of extra cmake parameters for each module
use this to enable ebos extensions in opm-simulators
2019-03-28 11:45:40 +01:00
Andreas Lauser
7360755c63 fix detection of mixed satfunc family usage
We now simply complain if the deck features keywords from more than
one family.
2019-03-28 09:37:25 +01:00
Andreas Lauser
f7cf50830d add the THPRESFT keyword
it is like THPRES, but for faults instead of PVT regions.
2019-03-28 09:37:00 +01:00
Joakim Hove
21dbd82bb9
Merge pull request #697 from jalvestad/restart_msw_fix
Added a fix for an index error in writing of RSEG data to ECL Restart file
2019-03-27 20:24:18 +01:00
Jostein Alvestad
0a730d949f Added correction to segment number index for RSEG
Added correction to segment number index
for writing of RSEG data to eclipse compatible
restart file. AggregateMSWData.cpp
2019-03-27 16:59:35 +01:00
Jostein Alvestad
ba1f9e882b Back to master equal to upstream 2019-03-27 16:56:57 +01:00
Jostein Alvestad
745720ef99 Added correction to writing MSW data to restart file
Corrected segment number index for writing of
RSEG data to eclipse compatible restart file
in AggregateMSWData.cpp
2019-03-27 16:52:49 +01:00
Tor Harald Sandve
3595eb7c82
Merge pull request #685 from totto82/refactorBC
Combine BCRATE and FREEBC to BC
2019-03-27 10:21:46 +01:00
Joakim Hove
75d28fc6ce
Merge pull request #691 from joakim-hove/wellproperties-constructor
Wellproperties constructor
2019-03-26 21:07:51 +01:00
Andreas Lauser
ade0cd059e add the S[WG]LPC and IS[WG]LPC keywords
they are just like their non-PC postfixed counterparts, except that
they only apply to capillary pressures, not to the relperms and they
seem to overwrite the values specified via S[WG]L for the capillary
pressures but not for relperms.
2019-03-25 11:36:02 +01:00
Joakim Hove
daf9337599 Extract phase dependent SI conversion to separate file 2019-03-25 10:36:40 +01:00
Joakim Hove
9bff0094f1 Extract WellInjectionProperties from Schedule.cpp 2019-03-25 10:36:16 +01:00
Joakim Hove
c3e992f996 Use constructor for WellProductionProperties 2019-03-25 10:23:13 +01:00
Joakim Hove
d9c81da18c
Merge pull request #690 from joakim-hove/use-wellnames
Use wellnames
2019-03-25 10:20:06 +01:00
Joakim Hove
94fae0da30 Remove Schedule::getWells(pattern) 2019-03-24 07:54:39 +01:00
Joakim Hove
6cd420ed9b All Schedule::handleWxxxx() functions go via well name 2019-03-24 07:54:33 +01:00
Joakim Hove
19dde5e6d3 Add Schedule::wellNames() overloads 2019-03-24 07:54:33 +01:00
Joakim Hove
5b1065df45 For a connection set with 0 connections is "OPEN" 2019-03-23 16:13:11 +01:00
Joakim Hove
e452058b4e
Merge pull request #686 from totto82/fix_units_fip
Output FIP as surface volumes
2019-03-21 17:54:14 +01:00
Joakim Hove
e84edae209
Merge pull request #688 from joakim-hove/remove-well-events
Remove well events
2019-03-21 14:51:58 +01:00
Joakim Hove
a3f08ca6ea Disable POLYMER related events 2019-03-21 13:08:25 +01:00
Joakim Hove
858e06044e Move well specific event logging from Well to Schedule 2019-03-21 13:08:25 +01:00
Joakim Hove
1812acccec
Merge pull request #684 from joakim-hove/update-testdata
Add PERM values to testdata
2019-03-20 15:38:43 +01:00
Joakim Hove
1d402bdca3 Add PERM values to testdata 2019-03-20 15:10:08 +01:00