Commit Graph

214 Commits

Author SHA1 Message Date
Joakim Hove
579890177e Remove prod_index member from Well class 2021-02-11 15:57:42 +01:00
Joakim Hove
35761f31c1 Store target_wellpi in simple map member of ScheduleState 2021-02-10 21:03:26 +01:00
Joakim Hove
7a40f31823 Add operator[] to NameOrder class 2021-02-10 09:45:01 +01:00
Joakim Hove
b45d40e722 Add Schedule::getWell( well_index, report_step) method 2021-02-10 09:09:53 +01:00
Joakim Hove
aea7de2c29 Add size() method to NameOrder class 2021-02-10 09:09:53 +01:00
Joakim Hove
bcffaefa7a Use ScheduleState for wells++
Use SchedueleState for wells, in addition to the members UDQConfig, GasLiftOpt
and GuideRateConfig.
2021-02-10 07:22:46 +01:00
Joakim Hove
e571aca93b Apply WELPI is based on newWellPI and not scaling factor 2021-02-05 13:02:47 +01:00
Joakim Hove
3bc82e7a96 Add Schedule::unique<T>() 2021-02-04 11:11:40 +01:00
Joakim Hove
e7f72ddb8a Remove unsused argument report_step in Well::updateConnections() 2021-02-03 11:27:10 +01:00
Joakim Hove
a47cdc1b6b Require Well::updateConnections() force argument 2021-02-03 11:20:09 +01:00
Joakim Hove
f308817d5c Use scalar well Status 2021-02-02 18:06:03 +01:00
Joakim Hove
e016d357d8 Use ScheduleState to manage groups 2021-02-02 07:25:16 +01:00
Joakim Hove
efa08f123f Implement GroupOrder as standalone class and to ScheduleState 2021-01-30 10:19:49 +01:00
Joakim Hove
acb1284efd Use small wrapper to manage shared pointers in ScheduleState 2021-01-29 11:42:36 +01:00
Joakim Hove
8da208c0c0 Add derived class GroupNames 2021-01-28 20:04:29 +01:00
Joakim Hove
a4ca61dc4e Renamed WellOrder -> NameOrder 2021-01-28 19:49:05 +01:00
Joakim Hove
3f204ae6df Merge pull request #2244 from totto82/addConnectionRadiusAndLength
Adding connection length and effective radius to the connection
2021-01-26 07:03:49 +01:00
Tor Harald Sandve
434b791442 Adding connection length and effective radius to the connection 2021-01-25 14:10:06 +01:00
Joakim Hove
56c7e89bbd Use WellOrder to construct WellMatcher 2021-01-25 10:20:57 +01:00
Joakim Hove
15bd99b44c Add class WellOrder to keep track of well insert order 2021-01-25 06:50:08 +01:00
Joakim Hove
ecce98a307 Revert "Use std::map for groups" 2021-01-19 12:40:01 +01:00
Joakim Hove
55cec7dd4d Use std::map for groups 2021-01-18 09:13:35 +01:00
Joakim Hove
d3a1f6521f Change test to check for existence 2021-01-15 12:29:01 +01:00
Joakim Hove
8cd442e5b2 Use full well objects instead of well names 2021-01-15 12:25:27 +01:00
Joakim Hove
d7345edc95 Use ScheduleState to manage VFP tables 2021-01-14 21:28:19 +01:00
Joakim Hove
c20417d69b Handle well test configuration with ScheduleState 2021-01-12 14:02:15 +01:00
Joakim Hove
aebbc56b07 Make sure ScheduleState time_points are clamped to std::time_t 2021-01-12 13:06:04 +01:00
Joakim Hove
e445bf738c Manage events with the ScheduleState machinery 2021-01-11 20:05:46 +01:00
Joakim Hove
5f78173afb Use ScheduleState for oil vaporization properties 2021-01-08 07:39:23 +01:00
Joakim Hove
f424aba75d Internalize nupcol in ScheduleState 2021-01-07 11:57:52 +01:00
Joakim Hove
aaacdd6c57 Add class ScheduleTStep 2021-01-06 19:08:00 +01:00
Joakim Hove
8cd9065b61 Add class ScheduleDeck 2021-01-05 19:36:00 +01:00
Joakim Hove
7a4bdd4ab5 Update report number in comment 2021-01-04 11:28:16 +01:00
Joakim Hove
8bc16ab7fe Rewrite TimeMap::operator[]
- Access to the historical period for a restarted run will not be caught.
- Access to underlying timepoint will be based on at()
2021-01-04 11:28:08 +01:00
Joakim Hove
cc772aa1df Use raw string deck input strings 2021-01-01 21:22:12 +01:00
Joakim Hove
cf244a293e Add time range to WellStatus 2020-12-08 20:01:55 +01:00
Joakim Hove
2e832f0fbe Changes to Well status implementation
o The status of a well is maintened as a small object which is managed by a new
   std::shared_ptr member in the well objects. The consequence of this is that
   several well objects can share the same underlying status object. The
   advantage of this is that runtime (i.e. ACTIONX) updates of well status will
   affect the correct set of wells.

 o The general Schedule::updateWell() will use the DynamicState::upadte_equal()
2020-12-08 09:36:45 +01:00
Joakim Hove
53cd73c2d7 PAvgCalculator to calculate WBP? pressures 2020-11-30 10:42:15 +01:00
Joakim Hove
d4513d214f Internalize WPAVE and WWPAVE keywords 2020-11-12 23:59:10 +01:00
Joakim Hove
2b24fba2c5 Merge pull request #2078 from joakim-hove/gliftopt-has
Add methods GasLiftOpt::has_well() and GasLiftOpt::has_group()
2020-11-05 12:41:21 +01:00
Joakim Hove
6c449a48b1 Merge pull request #2069 from joakim-hove/udq-wlist
Udq wlist
2020-11-03 11:22:02 +01:00
Joakim Hove
19090c2827 Add methods GasLiftOpt::has_well() and GasLiftOpt::has_group() 2020-11-03 08:47:15 +01:00
Joakim Hove
9844b73bdb Add functions to get/query connections from global index 2020-11-02 07:57:19 +01:00
Joakim Hove
7ef7e3017e Add class WellMatcher and use it UDQ evaluation 2020-10-30 22:17:59 +01:00
Bård Skaflestad
94af88c3a1 Switch Back to Consuming Strictly SI Convention PI Values
Heed advice from [at]joakim-hove to keep client code as close to
strictly SI as possible.  We must nevertheless continue to store the
raw (input/output units) requested PI value internally as this is
the only way to ensure that both the client and implementation has
consistent view of the well's preferred phase.  This means pushing
the unit conversion into Well::getWellPIScalingFactor().

Thanks to [at]joakim-hove for pointing out that the Well already
maintains an internal UnitSystem data member which makes the process
of converting the PI units trivial.
2020-10-30 15:16:31 +01:00
Bård Skaflestad
354351daee Record General Event When Processing WELPI
This commit ensures that we record a general, Schedule-level

    WELL_PRODUCTIVITY_INDEX

event in addition to the well-specific event already recorded when
we encounter a WELPI keyword.  We need this information in order to
trigger a PI calculation across all MPI processes in opm-simulators.
2020-10-30 15:16:31 +01:00
Bård Skaflestad
54e2eb5597 Store Raw WELPI in Well::productivity_index
This makes the interface less convenient to use, but it is the only
way to guarantee that we have a consistent notion of preferred phase
for injectors.  The downside is that the users of

    Well::getWellPIScalingFactor()

must convert the argument to raw/input units before calling the
function.
2020-10-30 15:16:31 +01:00
Joakim Hove
ed5d20d90e Add utility functions to query/get completion data 2020-10-28 16:00:56 +01:00
Bård Skaflestad
5b4a1c0bad Remove WELL_CONNECTIONS_UPDATED Event
With the introduction of Schedule::applyWellProdIndexScaling(), this
special-purpose event type is no longer needed and only causes
confusion.
2020-10-19 19:16:17 +02:00
Bård Skaflestad
26ef5d01a2 Apply WELPI CTF Scaling at Schedule Level
This commit adds a new member function

  applyWellProdIndexScaling(well_name, report_step, scalingFactor)

which applies WELPI-based CTF scaling (by scalingFactor) for all
pertinent report steps from 'report_step' and until the end of the
simulation run.  We use the 'scalingApplicable' array to communicate
connection eligibility between report steps and only apply the
scaling if the internal connections pointers differ between report
steps.
2020-10-19 19:16:16 +02:00