Commit Graph

48 Commits

Author SHA1 Message Date
Joakim Hove
e1d117c59f Extract group state and create WGState to manage well & group state 2021-04-27 10:55:38 +02:00
Tor Harald Sandve
58fa3eaf31 replace asserts with OPM_DEFLOG_THROW 2021-03-18 11:58:05 +01:00
Tor Harald Sandve
6bac5da27c adapt to changes in the guiderate interface 2021-03-16 15:56:31 +01:00
Tor Harald Sandve
f4ac7f555b Add support for explicit guiderate for injection groups
With this commit the guiderate logic used for the production groups is also used for injectors
This allows for setting guiderates explicit at different group levels
Only RATE, NETV and VOID guiderate type is suppored.
2021-03-16 15:56:31 +01:00
Markus Blatt
6e8b1e8d2e Honor gefac of topmost group in WellHelpers::updateGuideRateForGroups 2021-03-01 11:16:29 +01:00
Markus Blatt
b97385c963 Fix and move changes to commented code to code to WellGroupHlper.hpp 2020-12-09 12:29:56 +01:00
Atgeirr Flø Rasmussen
8716dbfcfd Add the option to include gas lift for network calculations. 2020-11-19 14:19:26 +01:00
Atgeirr Flø Rasmussen
52c695937b Implement extended network model. 2020-10-15 10:54:03 +02:00
Bård Skaflestad
e8582ce476 Include All Pertinent EFACs In Guiderate Potential Updates
This commit switches the helper function

    WellGroupHelpers::updateGuideRateForGroups<>()

to include efficiency factors in the potential rates at grouptree
levels below a particular group.  We furthermore switch the helper
function

    WellGroupHelpers::updateGuideRatesForWells<>()

to not include efficiency factors at all.

The motivation for this change is that efficiency factors always
apply to the level we're accumulating rate values into rather than
to the rate values themselves.
2020-09-15 09:44:52 +02:00
Bård Skaflestad
e1ce1c9124 Centralize Rate Vector Derivation for Guide Rates
This commit creates a single implementation function for deriving
'RateVector' objects that go into the guiderate calculation.  In
particular, we now use the same implementation function for both the
well and the group levels.  While here, also expose the group level
derivation as a free function and reimplement the FractionCalculator
version in terms of this free function.  Finally, remove the
previous attempt at such a free function taking only the group name.
This function no longer exists in isolation and is only accessible
through the FractionCalculator.

This is in preparation of reporting guiderate values to the output
layer (summary and restart files).
2020-09-02 17:22:04 +02:00
Tor Harald Sandve
3b479af9c4 Fix the fix on how the group reduction works 2020-04-23 09:45:16 +02:00
Atgeirr Flø Rasmussen
0df3a96fa6 Fix how group rate reductions work. 2020-04-23 09:39:03 +02:00
Tor Harald Sandve
97876530e3 include wells under individual control when accumulating guiderates 2020-04-03 10:03:05 +02:00
Atgeirr Flø Rasmussen
f30ddffdb7 Split WellGroupHelpers to cpp/hpp.
Also changed namespace name.
2020-04-02 13:57:38 +02:00
Tor Harald Sandve
21b98b5573 Avoid negative targets and currentWellRates 2020-04-02 13:57:38 +02:00
Tor Harald Sandve
66931b9cb7 Various fixes and refactoring.
- Communicate all well rates.
 - When changing controls, modify rates to satisfy failed constraint.
 - Ensure targets are positive.
 - Always solve for potentials for MSW (temporary fix).
2020-04-02 13:57:05 +02:00
Tor Harald Sandve
92ee56c3b3 scale guiderate by current well rate 2020-04-02 13:54:47 +02:00
Atgeirr Flø Rasmussen
27f62399f5 Handle guide-rate based well constraints from groups. 2020-04-02 10:41:57 +02:00
Jostein Alvestad
4006319ff7 further changes to report currentStatusGroupControls to Summary 2020-03-16 10:39:52 +01:00
Jostein Alvestad
0dcacb41d4 intial changes to add current group controls to summary 2020-03-16 10:39:51 +01:00
Joakim Hove
9268bcb2ac InjectorType enum is moved out from Well class 2020-03-03 09:08:02 +01:00
Tor Harald Sandve
052f25636c adding blank lines 2020-02-11 09:33:58 +01:00
Tor Harald Sandve
2d2ec82640 fix MPI 2020-02-11 09:33:58 +01:00
Tor Harald Sandve
e39e327451 fix 2p 2020-02-11 09:33:58 +01:00
Tor Harald Sandve
469ffa2cbe allow for multiple group injection phases 2020-02-11 09:30:19 +01:00
Tor Harald Sandve
6e0f26f488 fix typos 2020-01-20 09:14:19 +01:00
Tor Harald Sandve
c1748604f0 Fix REIN for multi level groups by passing the top phase 2020-01-13 11:32:13 +01:00
Tor Harald Sandve
18c8cc6119 fix vrep and rein for more then one level of groups 2020-01-08 14:26:25 +01:00
Tor Harald Sandve
77d52e5b53 communicate group rates and add test 2020-01-02 13:57:12 +01:00
Tor Harald Sandve
df6774c45c froze wellState at nupcol iterations 2019-12-18 14:37:16 +01:00
Tor Harald Sandve
29c2a3da3f only count group under group control when accumulating the group potentials 2019-12-18 11:40:06 +01:00
Tor Harald Sandve
ad21da87ca fix after rebase 2019-12-05 13:08:17 +01:00
Tor Harald Sandve
876f5587e5 Add GCONSALE and fix conversion from UDA 2019-12-05 13:08:17 +01:00
Tor Harald Sandve
5dbf0927d3 Add support for GCONSUMP 2019-12-05 13:08:17 +01:00
Tor Harald Sandve
cab2f4b41f use common WellGroupEvent map 2019-11-27 13:12:53 +01:00
Tor Harald Sandve
2c84970314 honor group event 2019-11-27 13:08:25 +01:00
Joakim Hove
fce5d2f369 Rename Well2 -> Well and Group2 -> Group 2019-11-13 23:18:01 +01:00
Tor Harald Sandve
95f013bd96 fixup review comments. including bug in updateGroupTargetReduction 2019-11-08 14:07:12 +01:00
Tor Harald Sandve
1ab99d07c7 Support VREP with combined gas and water injectors 2019-11-07 11:31:47 +01:00
Tor Harald Sandve
04701580d8 keep current injection and production control 2019-11-06 13:27:47 +01:00
Tor Harald Sandve
008eb17693 Support nupcol
Only update groupTargetReduction, group REIN rates and group VREP rates when iteration < nupcol
2019-11-06 10:23:30 +01:00
Tor Harald Sandve
3c89e4ba75 fix group fraction bug 2019-11-05 15:13:47 +01:00
Tor Harald Sandve
5e1ec249cd don't count wells not under group controll when computing guiderates 2019-10-18 16:08:07 +02:00
Tor Harald Sandve
614025b28b clean up the logging message 2019-10-18 16:08:07 +02:00
Tor Harald Sandve
c21428419a support REIN for solvent 2019-10-18 16:08:07 +02:00
Tor Harald Sandve
0b96b31d8c add some safaguards for trivial guiderates 2019-10-18 16:08:07 +02:00
Tor Harald Sandve
f71d6c8623 implement proper guiderate support
Tested on simple problems including GUIDERAT
2019-10-18 16:08:07 +02:00
Tor Harald Sandve
53896ffca8 Use well and group controls from opm-common.
This PR remove the usage of well_control_ from opm-core
and instead uses the control classes for wells and groups
from opm-common.
This PR also removes the usage of the group classes from
opm-core.
2019-10-18 16:08:07 +02:00