Commit Graph

172 Commits

Author SHA1 Message Date
Bård Skaflestad
1111f87aa7 *Properties(): Rename control mode (enum) variable
Four characters (cmod) is less readable than "cmode".

Suggested by: [at] joakim-hove
2014-07-08 13:22:45 +02:00
Bård Skaflestad
cb3a196446 *Properties(): Switch to vector<string> for control modes
Update mode iteration accordingly.

Suggested by: [at]joakim-hove
2014-07-08 13:22:45 +02:00
Bård Skaflestad
3242976bf1 Refine semantics of WCONHIST implementation
This commit splits Schedule::handleWCONProducer() into those parts
that are specific to the individual keywords (WCONHIST/matching and
WCONPROD/prediction) and those that are common to both.

In particular we introduce two new helper functions

    matchingProperties() and predictionProperties()

of which the first constructs a WellProductionProperties object
specific to matching semantics and the latter constructs a similar
object specifc to prediction.  In the case of WCONHIST, the well
always supports component rates at surface conditions ({O,W,G}RAT)
as well as liquid rate (LRAT) and (total) reservoir volume rate
(RESV).  The prediction mode keeps the existing semantics of not
supporting control modes for which the values have been defaulted.

The final helper, function producerProperties(), dispatches to
matchingProperties() or predictionProperties() depending on
handleWCONProducer()'s 'isPredictionMode' flag and handles the
record properties that are common to both WCONHIST and WCONPROD,
including whether or not to assign a new active control mode.

The end result is that handleWCONProducer() becomes a loop of
keyword data records that

  1) Determines the wells affected by a given record
  2) Determines whether or not the wells are OPEN
  3) Computes control mode properties (producerProperties())
  4) Assigns status and those properties to all affected wells

This approach reorders the well loop compared to the previous
implementation which computed separate WellProductionProperties for
each well.
2014-07-08 13:22:45 +02:00
Andreas Lauser
ad1dfab8d7 fix spurious GCC warnings
The root cause are pretty (too?) strict flags w.r.t. compiler
warnings. In this case, the offenders are "-Wmissing-declarations" and
"-Wtype-limits".
2014-06-02 13:01:56 +02:00
Andreas Lauser
03860714c8 fix build
from the error, it seems a bit like the well container was recently changed
from std::map to std::vector...
2014-05-16 12:36:13 +02:00
Kristian Flikka
82a38c1cc8 Merge pull request #208 from AtleH/wellnamewithwildcard
Added wildcard support in WCONINJE and WCONPROD
2014-05-16 12:28:39 +02:00
Arne Morten Kvarving
3827ddca64 fixed: mark static symbols as such to quell warnings 2014-05-15 14:46:16 +02:00
Arne Morten Kvarving
670e8b692b changed: don't use parameter names that conflicts with member function names
quells warnings (with gcc 4.8)
2014-05-15 14:46:16 +02:00
Atle Haugan
20380ca7c8 Changed name for (some) iterators in Schedule 2014-05-14 15:36:42 +02:00
Atle Haugan
0f4590a2f3 Removed obsolete include statements 2014-05-14 15:26:54 +02:00
Atle Haugan
47ef4ed0e6 Simplified implementation and (slightly) changed behaviour of Schedule::getWells(wellNamePattern)
Improved performance by checking for wildcard before entering the loop. Logic slightly changed since method now only supports wildcards at the end of the string.
2014-05-14 15:10:17 +02:00
Atle Haugan
344d02ad1c Add support for wildcard in WCONPROD and WCONINJE keywords. 2014-05-06 09:54:37 +02:00
Joakim Hove
142255268d Using OrderedMap to hold wells in Schedule object - thereby preserving
well insert order.
2014-05-02 17:02:10 +02:00
Joakim Hove
4c477b6f70 Added class OrderedMap which is insert-order preserving map. 2014-05-02 17:02:09 +02:00
Atgeirr Flø Rasmussen
6b4ad26a9a Renamed function arguments to avoid shadowing. 2014-04-15 09:49:23 +02:00
Atgeirr Flø Rasmussen
5a1c345e3f Add preferred phase to Well class.
This entails:
 - Adding a new data member of type Opm::Phase::PhaseEnum.
 - Adding method getPreferredPhase().
 - Adding extra constructor argument.
 - Modifying constructor call in Schedule::addWell().
 - Adding unit test for the new preferredPhase property.
 - Modifying constructor call in all the well unit tests.
2014-04-06 23:11:38 +02:00
Andreas Lauser
2a9111b9d2 Schedule: trim strings which are received from the deck
for SPE-9 only the well/group names contain spurious white space, but
I suppose that other decks also feature them in control modes, status,
etc. so it's probably a good idea to trim these as well...
2014-04-03 14:55:38 +02:00
Joakim Hove
5785d088ea Added functionality in Completion class to adjust I and J to wellHead value if they have been defaulted (i.e. have value -1). This is unfortunate because we loose quite a lot of const correctness. 2014-03-28 18:56:21 +01:00
atleh
ec22c39f5c Minor adjustments in Section[Tests], Schedule and KeywordContainerTests 2014-03-25 09:26:43 +01:00
Joakim Hove
5b51d306be Merge pull request #143 from AtleH/OPM-68
Opm 68
2014-03-21 00:46:21 +01:00
Joakim Hove
f84ec0bb3f Made injection and production control variables into property variables. 2014-03-21 00:07:23 +01:00
Joakim Hove
011eb8a2c6 camelCased property attributes in the production and injection properties structures. 2014-03-20 23:27:18 +01:00
Atle Haugan
62f2a16496 Fixed unit tests after rebase/merge 2014-03-20 10:56:28 +01:00
Atle Haugan
eae65c3da3 Added unit tests 2014-03-20 10:43:21 +01:00
Atle Haugan
cfea44d264 Fixed implementation of getXyzProperties() - now returning correct reference to original object. Unit test still missing. 2014-03-20 10:43:21 +01:00
Atle Haugan
3daaf827c9 Renamed getXyzProperties to getXyzPropertiesCopy. Added new getXyzProperties which currently does not work... 2014-03-20 10:36:57 +01:00
Atle Haugan
af784c6734 Enabled the remaining tests. 2014-03-20 10:31:21 +01:00
Atle Haugan
2058bb5789 Re-activated the old tests. 2014-03-20 10:26:44 +01:00
Atle Haugan
7358ac5d5a Added addProductionControl() method to the WellProductionProperties struct. Same for WellInjectionProperties. 2014-03-20 10:19:20 +01:00
Atle Haugan
87599c9841 Moved has/drop/addProductionControl to WellProductionProperties. The same for WellInjectionProperties. 2014-03-20 10:11:56 +01:00
Andreas Lauser
674d380006 fix a few pedantic GCC warnings due to superfluous semicolons
these warnings are only only produced by GCC in its pedantic mode (and
possibly with -O3 in addition, but I haven't checked this...)
2014-03-19 16:24:28 +01:00
Atle Haugan
fb5c83086a Moved (duplicated) m_isInPredictionMode to WellProductionProperties and WellInjectionProperties. 2014-03-19 10:51:13 +01:00
Atle Haugan
d9772b83eb Removed unused Well::m_injectionControls, moved m_injectorType to WellInjectionProperties. 2014-03-19 10:42:22 +01:00
Atle Haugan
9c64af0b6b Moved BHPLimits and THPLimits to WellProductionProperties and WellInjectionProperties (duplicated). Several unit tests are still commented out - will fix. 2014-03-19 10:42:21 +01:00
Atle Haugan
3040697ccc Added WellInjectionProperties.InjectionControls. Adjusted som unit tests. Removed some dead code. 2014-03-19 10:40:48 +01:00
Atle Haugan
8aee879dc5 Added WellInjectionProperties, modified Well class to use it 2014-03-19 10:40:07 +01:00
Atle Haugan
df40a0aa21 Replaced single-item calls with call to get/setProductionProperties() 2014-03-19 10:13:58 +01:00
Atle Haugan
9650fce19a Using pointers for WellProductionProperties 2014-03-19 10:13:58 +01:00
Atle Haugan
cd549467b9 Well refactoring - fixed minor bug 2014-03-19 10:13:57 +01:00
Atle Haugan
32c2ef9060 Refactoring the Well class - intermediate step 1 2014-03-19 10:13:57 +01:00
Joakim Hove
77bed42742 Added method at() to the dynamicstate object to return a const reference. 2014-03-19 07:18:09 +01:00
Andreas Lauser
189b671930 ScheduleEnums: strip whitespace around the control mode strings
for some reason, the Norne deck included whitespace for some control
modes of some wells which lead to an exception. Since Eclipse seems to
eat this, and Eclipse is correct by defintion, let's adapt our
digestion system a bit...
2014-03-17 18:13:49 +01:00
Joakim Hove
b4bbbb7c8e Merge pull request #137 from joakim-hove/Norne-Schedule
Small changes to support loading of Norne Schedule file
2014-03-11 20:08:15 +01:00
Andreas Lauser
08331914bd TimeMap: extend unit tests for the time levels
I forgot, sorry...
2014-03-11 19:01:23 +01:00
Andreas Lauser
30a16410aa TimeMap: fix the timePassedUntil() method
whoever wrote the original code must have his brain left in the bed
that day ;)...
2014-03-11 15:01:14 +01:00
Joakim Hove
8598fa279e Added throw() in Schedule if trying to control well on an item which has been defaulted. 2014-03-03 15:06:26 +01:00
Joakim Hove
7dc8767c80 Made sure that groups were added when reading the GRUPTREE keyword. 2014-03-03 15:06:26 +01:00
Joakim Hove
ceb4a8df8d Added check on Well->status before reading controlmode. 2014-03-03 15:06:25 +01:00
Joakim Hove
f91229218e Moved the implementation of two micro functions from .hpp to .cpp file + changed one int -> size_t. 2014-02-26 23:24:31 +01:00
Joakim Hove
1907a8e467 Merge pull request #129 from andlaus/refactor_timemap
Refactor timemap
2014-02-26 23:09:50 +01:00