Commit Graph

130 Commits

Author SHA1 Message Date
Kristian Flikka
720cd21b0e Merged from upstream/master 2014-02-12 10:13:49 +01:00
Andreas Lauser
03d6e9a20b correct the context dependent rates in the schedule code 2014-02-11 12:45:44 +01:00
Andreas Lauser
849bc7df93 units: introduce a "ContextDependent" dimension
this is meant for those nasty keywords where the dimension of an entry
depends on a user-defined value of some field of a (potentially
different) keyword. One example for this are the surface rates of the
produced fluids for the .CON(INJ|PROD).* keywords which exhibit
different units depending on whether the user choses to control for
the surface gas or the liquid rate.

the approach taken in this patch is to convert all numbers to NaN if
the unit is queried in SI (via item->getSIDouble()). It might be more
desireable to throw an exception in this case, but this approach would
be more elaborate and NaNs should be quickly noticeable by the users
of this code.

I tried to adapt all implemented keywords, but it's quite likely that
I missed some...
2014-02-11 12:45:44 +01:00
Kristian Flikka
08ec94e15c Added setting of the injection/production status of group 2014-02-10 15:43:37 +01:00
Kristian Flikka
15682a71df Merge pull request #114 from joakim-hove/valgrind
Valgrind
2014-02-06 16:39:30 +01:00
Joakim Hove
e17f03b8a0 Merge remote-tracking branch 'akva2/run_tests_through_valgrind' into valgrind 2014-02-06 14:30:01 +01:00
Kristian Flikka
9db42f6eb3 Added support for WELOPEN in the Schedule class, NOT support specific completions, only the well 2014-02-04 16:12:49 +01:00
Joakim Hove
0d35b7d3f6 Merge pull request #101 from AtleH/specialkeywords
Specialkeywords
2014-01-31 05:33:25 -08:00
Joakim Hove
bb444b5139 Added flag injectionControls to keep track of available injection controls. 2014-01-30 16:44:21 +01:00
Joakim Hove
49ee4ed1ed Added addProductionControl() and dropproductioncontrol() to Schedule. 2014-01-30 16:44:21 +01:00
Joakim Hove
e42234b17a Added Well::Producercontrolmode 2014-01-30 16:44:21 +01:00
Joakim Hove
5dd6865838 Added RESV target to Well. 2014-01-30 16:44:20 +01:00
Joakim Hove
7f58de5b3e Have added liquidRate setting from Schedule.cpp 2014-01-30 16:44:20 +01:00
Joakim Hove
a83d994494 Added well->liquidRate() from WCONPROD. 2014-01-30 16:44:20 +01:00
Atle Haugan
c20c3baf6f Fixed algorithm for concatenating strings 2014-01-30 15:18:34 +01:00
Atle Haugan
1dd448b178 Merge branch 'master' into specialkeywords
Conflicts:
	opm/parser/eclipse/EclipseState/EclipseState.hpp
2014-01-30 15:05:01 +01:00
Atle Haugan
825e976566 New version based on feedback from code review 2014-01-29 19:39:33 +01:00
Joakim Hove
0f707b7498 Keeping track of well OPEN|SHUT|STOP status from WCONxxxx keywords. 2014-01-29 15:55:02 +01:00
Joakim Hove
49604cf631 Added injectorControlMode to Well class. 2014-01-29 13:33:28 +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
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
Atle Haugan
1530425598 Fixed bug in ParseTITLE.cpp 2014-01-28 10:06:58 +01:00
Atle Haugan
cd3d4f9337 First cut: TITLE keyword now being parsed correctly. 2014-01-28 10:01:11 +01:00
Joakim Hove
a464429388 Added namespace Phase around the PhaseEnum enum. 2014-01-28 08:18:03 +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
Arne Morten Kvarving
4a9c18ac9f run tests through valgrind 2014-01-27 15:16:34 +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
Atle Haugan
51ac683ef2 OPM-17: Fixed bug in END[INC] logic. 2014-01-24 13:16:37 +01:00
Joakim Hove
1cc38786dc Renamed well->InjectionRate to SurfaceInjectionRate. 2014-01-24 12:36:45 +01:00
Atle Haugan
620774c3a4 Added missing files 2014-01-24 12:05:03 +01:00
Atle Haugan
f2c451e07a OPM-17: Minor change to END[INC] parsing + started to parse TITLE keyword 2014-01-24 11:18:07 +01:00
Atle Haugan
ef11a2331f OPM-17: First attempt to handle END and ENDINC keywords 2014-01-24 10:01:17 +01:00
Joakim Hove
581bf74e9a Changed int -> size_t many places. 2014-01-24 09:41:32 +01:00
Kristian Flikka
a7d51c387e Merged upstream/master 2014-01-21 10:14:16 +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
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
6bf3e3ef8d add unit test for SGOF 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
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
Andreas Lauser
9a09fa29af rename Parser::parse to Parser::parseFile and add Parser::parseData
Parser::parseData is quite useful for unit tests to prevent them
spilling files to everything. Also, what was formerly
Parser::parseFile has been renamed to Parser::parseStream and slightly
modified to not be specific for std::ifstream.
2014-01-10 14:51:56 +01:00
Joakim Hove
ae2260aa43 Table collection keywords PVTO and PVTG now have individual items: settings. 2013-12-19 13:54:51 +01:00
Joakim Hove
1d80ffaed8 Added test example for parsing DENSITY keyword. 2013-12-18 12:32:02 +01:00