Commit Graph

466 Commits

Author SHA1 Message Date
Joakim Hove
db26d6cf93 Added status flag as well property. 2014-01-29 15:34:33 +01:00
Joakim Hove
86e8cc3585 Added WellCommon namespace with StatusEnum. 2014-01-29 15:10:52 +01:00
Joakim Hove
49604cf631 Added injectorControlMode to Well class. 2014-01-29 13:33:28 +01:00
Joakim Hove
c60ce712ea Added ControlMode enum to the WellInjector namespace. 2014-01-29 13:21:04 +01:00
Joakim Hove
65e87189e4 Changed namespace InjectorType -> WellInjector. 2014-01-29 13:11:35 +01:00
Kristian Flikka
37084e991d Shifting WELSPECS and COMPDAT i,j,k indices down one, to go from 0 2014-01-29 11:48:02 +01:00
Joakim Hove
3f62b3c777 Updated numerical test values for connection factor; due to SI dimension. 2014-01-29 10:39:55 +01:00
Kristian Flikka
3c4f12f3c7 Added dimension to connection factor / well index in json config. Updated fetching to use SI value 2014-01-28 21:29:35 +01:00
Kristian Flikka
efcfad657e Merge pull request #102 from joakim-hove/well-injection-phase
Well injection phase
2014-01-28 11:37:49 -08:00
Joakim Hove
b0545fab0a Merge pull request #100 from flikka/add-to-completion
Added skinFactor and diameter to Completion
2014-01-28 07:04:40 -08:00
Kristian Flikka
e669e4110d Added CF, diameter and skinFactor check in integration test 2014-01-28 15:30:25 +01:00
Joakim Hove
7ce91cf504 Added well->Injectortype 2014-01-28 14:31:51 +01:00
Joakim Hove
eae4cbb889 Added InjectorType enum. 2014-01-28 08:35:12 +01:00
Joakim Hove
a464429388 Added namespace Phase around the PhaseEnum enum. 2014-01-28 08:18:03 +01:00
Kristian Flikka
fdee1d8b67 Added skinFactor and diameter to Completion 2014-01-27 19:32:00 +01:00
Joakim Hove
af00558ec7 Added THPLimit as well property. 2014-01-27 18:38:41 +01:00
Joakim Hove
3d2ddd70fc Setting Well->BHP limit from Schedule. 2014-01-27 18:31:22 +01:00
Joakim Hove
99ef84b438 Added BHPLimit as well property. 2014-01-27 18:30:05 +01:00
Kristian Flikka
3cbc7ea1a0 Made getCompletions const 2014-01-27 14:40:59 +01:00
Kristian Flikka
ca0956ec02 Merge pull request #96 from joakim-hove/well-reservoir-rate
Well injection: differentiate between surface rate and reservoir rate
2014-01-27 03:09:09 -08:00
Joakim Hove
1ba278022a Have added ReservoirRates to well injector. 2014-01-24 13:24:22 +01:00
Joakim Hove
1cc38786dc Renamed well->InjectionRate to SurfaceInjectionRate. 2014-01-24 12:36:45 +01:00
Joakim Hove
581bf74e9a Changed int -> size_t many places. 2014-01-24 09:41:32 +01:00
Kristian Flikka
6229fd1250 Added functionality to get vector containing active / all wells 2014-01-22 14:40:10 +01:00
Kristian Flikka
a7d51c387e Merged upstream/master 2014-01-21 10:14:16 +01:00
Kristian Flikka
bd74a32c89 Added dimension to WELSPECS REF_DEPT, updated usage to query for SI 2014-01-21 10:10:05 +01:00
Kristian Flikka
3537de2209 Removed unused includes 2014-01-20 15:02:21 +01:00
Kristian Flikka
d09975e142 Introducing WELSPECS data in constructor to Wells. Throws if WELSPECS with different data for an existing well occurs 2014-01-20 14:52:30 +01:00
Andreas Lauser
ab65990653 avoid coverting the data of a deck item to SI multiple times
This resulted in _quadratic_ complexity if data points where retrieved
one-by-one. For the Norne case, this had the consequence that
retrieving the data for ZCORN (-> about 1M data points) took hours...
2014-01-18 13:34:12 +01:00
Andreas Lauser
123353b03c add the missing header files to CMakeLists.txt 2014-01-17 10:54:38 +01:00
Joakim Hove
fe01d09427 Added GPL header, with CopyRight Andreas Lauser to three tests. 2014-01-17 08:15:35 +01:00
Joakim Hove
4b35f79a35 Changed integer type int -> size_t throughout. 2014-01-17 08:13:08 +01:00
Andreas Lauser
9332f0edd1 PVTO: Add unit test and make the function names of the table class consistent with PVTG 2014-01-16 15:22:33 +01:00
Andreas Lauser
1c39df2d57 improve unit test for PVTG
now the data is parsed from a string specified in the source file
instead of a separate file, the PvtgTable utility class is tested and
the order of the fields in the JSON definition of PVTG is the same as
for that of PVTO.
2014-01-16 13:23:13 +01:00
Andreas Lauser
27efd0d1fa implement multi-region full tables
detecting empty records is still pretty hacky: When calculating the
number of flat items, we stop at the first item for which the default
was applied.

Also, this patch corrects the names of the columes used by the PVTG
keyword. (the first column is pressure, then comes Rv.)
2014-01-16 13:12:40 +01:00
Andreas Lauser
8d2ea3e0cd add wrapper classes for more eclipse keywords
these are convenient to convert everything required to rip out the old
parser of sim_fibo_ad. the concrete keywords are:

 - COMPDAT
 - EQUIL
 - GCONINJE
 - GCONPROD
 - GRUPTREE
 - WCONINJE
 - WCONINJ
 - WCONPROD
 - WELOPEN
 - WELSPECS
 - WGRUPCON

in the medium term it would be nice if these wrapper classes could be
automatically generated from the JSON keyword descriptions.
2014-01-15 15:44:38 +01:00
Andreas Lauser
93523a9a54 add wrapper class for "WCONINJ" 2014-01-15 15:44:38 +01:00
Andreas Lauser
f38e09f450 add a wrapper class for the "SPECGRID" keyword 2014-01-15 15:44:38 +01:00
Andreas Lauser
032916c1bd fix more of the annoying sign comparison warnings
hopefully all of them.
2014-01-15 12:52:12 +01:00
Andreas Lauser
0ed659de10 add a wrapper for records of the WELSPECS keyword 2014-01-15 12:52:12 +01:00
Andreas Lauser
6bf3e3ef8d add unit test for SGOF 2014-01-15 12:52:12 +01:00
Andreas Lauser
024774b605 add wrapper class for the START keyword 2014-01-15 12:52:12 +01:00
Andreas Lauser
34e39d2f31 add utility class for the 'TSTEP' keyword 2014-01-15 12:52:12 +01:00
Andreas Lauser
7a3755926b Units: add 'Timestep' dimension
the motivation for this is the 'TSTEP' eclipse keyword.

the reason why this dimension is not simply called 'Time' is that in
eclipse, different keywords might use different units, e.g. one
keyword could use seconds, another could use years while a third uses
days. As an added bonus, the used time units may be different for
different scales but identical in others (e.g., for one keyword times
might be specified in 'days' for the metric as well as for the
labscale, but in 'days' and 'hours' for another second keyword.)
2014-01-15 12:52:12 +01:00
Andreas Lauser
d261fcfe98 also constify the getSIDoubleData() method in DeckKeyword
in the item and in the record it already was marked as const, the
DeckKeyword class was forgotten during that excercise.
2014-01-15 12:52:12 +01:00
Andreas Lauser
079aa1417b move the SimpleMultiRecordTable class into its own files. 2014-01-15 12:52:12 +01:00
Andreas Lauser
8c83f0d8c1 remove the emacs and vim modelines
as it was decided that having editor-specific stuff in files is not
wanted in OPM. for emacs, a .dir-locals.el file is added to the
module's root directory which should have the same effect.
2014-01-15 12:52:12 +01:00
Andreas Lauser
6f721581bd add utility classes for some common keywords
the idea is to create a lightweight wrapper objects around
DeckKeywords which allow more convenient and more readable access to
the data. E.g. instead of

  std::vector outerColumnNames{"RV", "P", "BG", "MUG"};
  std::vector innerColumnNames{"P", "BG", "MUG"};
  Opm::FullTable pvtgTable(deck->getKeyword("PVTG"),
                           outerColumnNames, innerColumnNames);
  pvtgTable->getOuterTable()->getColumn(1);

one now better uses

  Opm::PvtgTable pvtgTable(deck->getKeyword("PVTG"));
  pvtgTable->getOuterTable()->getPressureColumn();

the idea for the other keywords is similar.
2014-01-15 12:52:12 +01:00
Andreas Lauser
d96b69c9ea add support for full-fledged tables 2014-01-15 12:52:12 +01:00
Andreas Lauser
3a3336028a add class for simple tables
This is intended for keywords like SWOF which currently is a big
vector of doubles but one needs to use the data in a column oriented
way.

This class is intended to be used like this:

Opm::DeckKeywordConstPtr swofKeyword = newParserDeck->getKeyword("SWOF");
Opm::SimpleTable swofTable(swofKeyword,
                           /*columns=*/std::vector<std::string>{"SW", "KRW", "KROW", "PCOW"},
                           /*recordIdx=*/table_num);
const std::vector<double>& sw = swofTable.getColumn(0);
// ...

what might be useful is to move the column names into the JSON
description of the keywords, but I could not find a way to go back to
the parser from the deck/keyword. maybe this is not even desireable as
decks might also be created by other means...

Also, a multi-record variant of the class is available. That one is
intended for keywords like PVTO where the first few items of each
record form a table (in the case of PVTO: Rs, pressure, Bo, and
viscosity for staturated oil) and the next entries constitute another
table (in the case of PVTO: pressure, Bo and viscosity for
undersaturated oil with the same RS factor as the first entry).

The second kind of tables can be constructed using the item-based
variant of SimpleTable.
2014-01-15 12:52:12 +01:00