Håkon Hægland
231f5374d7
Fixed some typos introduced in previous commit.
...
Some conflicts in the previous rebase was unfortunately not resolved
correctly. This commit corrects those errors.
2021-03-30 15:42:33 +02:00
Håkon Hægland
60c5fab82d
Fix unused variable warnings.
2021-03-30 15:41:46 +02:00
Håkon Hægland
cd85943352
Fix some warnings.
2021-03-30 15:41:46 +02:00
Håkon Hægland
434640fdf5
Implements gas lift optimization for groups.
...
Extends PR #2824 to include support for GLIFTOPT (item 2, maximum lift
gas supply for a group) and group production constraints.
The optimization is split into two phases. First the wells are optimized
separately (as in PR #2824 ). In this phase LIFTOPT and WLIFTOPT constraints
(e.g. maxmimum lift gas injection for a well, minimum economic gradient) are
considered together with well production constraints.
Then, in the next phase the wells are optimized in groups. Here, the ALQ
distribution from the first phase is used as a starting point. If a group
has any production rate constraints, and/or a limit on its total rate of
lift gas supply, lift gas is redistributed to the wells that gain the most
benefit from it by considering which wells that currently has the largest
weighted incremental gradient (i.e. increase in oil rate compared to
increase in ALQ).
2021-03-30 15:41:46 +02:00
Joakim Hove
98f6a9a7ac
Update collection of wells after ACTIONX
2021-03-29 16:20:10 +02:00
Joakim Hove
5fe43c09cb
Implement updateEclWell() as an internal function in wellPI code
2021-03-29 16:20:10 +02:00
Joakim Hove
90a9ed49a2
Add function WellState::updateStatus()
2021-03-29 16:20:10 +02:00
Joakim Hove
43925ae4f2
Explicily assign CMODE_UNDEFINED when controls vector is resized
2021-03-29 16:20:10 +02:00
Joakim Hove
405b9d2244
Add accessor functions to maintain WellState objects in well model
2021-03-29 15:30:32 +02:00
Bård Skaflestad
c23ce16879
Merge pull request #3120 from totto82/refactorBAVG
...
only compute Bavg once pr timestep
2021-03-24 11:34:13 +01:00
Bård Skaflestad
f980ff5f77
Merge pull request #3128 from totto82/fixTarget
...
reset target from wconprod and wconinje
2021-03-23 23:59:27 +01:00
Tor Harald Sandve
8283b53f3b
only compute Bavg once pr timestep and use the stored variable instead of passing it around
2021-03-23 15:30:36 +01:00
Tor Harald Sandve
3a65a7ba22
reset target from wconprod and wconinje
2021-03-23 09:23:35 +01:00
Tor Harald Sandve
8882b8027a
Merge pull request #3115 from totto82/onlyComputeGuideRateOnce
...
only compute guiderates at the beginning of a timestep
2021-03-23 08:43:47 +01:00
Joakim Hove
44eb07e621
Don't Initialize Well State for Shut Wells
2021-03-20 20:33:28 +01:00
Joakim Hove
4fd5d52f2f
Retrieve Number of Connections from Well Map
2021-03-20 20:33:28 +01:00
Joakim Hove
f0c738ea34
Reflect Well Object's Status Flag in Well State
2021-03-20 20:33:28 +01:00
Joakim Hove
e2d75b608b
Rename well filter -> not_on_process_()
2021-03-20 20:33:28 +01:00
Joakim Hove
9662d4019e
Use enum Well::Status to indicate well status instead of bool
2021-03-20 20:33:28 +01:00
Joakim Hove
634f0d61d8
Deferred logger will throw "correct" exception
2021-03-19 14:05:55 +01:00
Tor Harald Sandve
78d351676f
only update guide rates at the beginning of a timestep
2021-03-19 11:09:14 +01:00
Bård Skaflestad
b982ad0fd2
Record Dynamic Well Status in 'wellData()' Output
...
This commit sets the 'data::Well::dynamicStatus' based on the
dynamically updated 'Schedule' object (i.e., from ACTIONX and
similar) and the results of well/operability testing (WECON and/or
WTEST). If a well is closed due to economic limits (WECON) we still
provide summary-style data at the timestep that closed the well, but
omit this data at later steps until the well reopens.
We add a new parameter to WellState::report() to distinguish these
situations.
This is in preparation of making the 'BlackoilWellModel' manage both
open and shut wells alike.
2021-03-18 17:28:28 +01:00
Bård Skaflestad
65edfb702c
Preparations for Recording Dynamic Well State
...
Coalesce blocks with same conditions, split long lines, and apply
'const' where appropriate. While here, also tighten the "rate = 0"
criterion to include denormalised numbers.
2021-03-18 17:28:28 +01:00
Joakim Hove
cd7c4d9927
Merge pull request #3112 from totto82/refact_ginj
...
Add support for explicit guiderate for injection groups
2021-03-18 17:03:53 +01:00
Tor Harald Sandve
61de5689bd
cleanup: add and remove comments
2021-03-18 14:56:45 +01: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
Tor Harald Sandve
c29b61ff99
Merge pull request #3074 from plgbrts/thermaloutput
...
Temperature output for producers
2021-03-15 13:54:18 +01:00
Joakim Hove
8adea8c68a
Merge pull request #3102 from totto82/validControls2
...
make sure wells has valid controls
2021-03-15 09:43:22 +01:00
Tor Harald Sandve
8ad00e60f9
Merge pull request #3096 from totto82/weconPOTN
...
add support for POTN in WECON
2021-03-09 13:51:14 +01:00
Tor Harald Sandve
858856adec
update solution for WAG injectors
2021-03-09 13:37:03 +01:00
Kai Bao
0ad848658e
Merge pull request #3099 from atgeirr/revive-using_porevolume_average
...
Fix hydrocarbon volume issue with no oil or gas
2021-03-09 12:15:06 +01:00
Paul Egberts
646dafe78f
introduced computeWellTemperature() to be called at each timestep
2021-03-08 15:11:50 +01:00
Tor Harald Sandve
a098d76c19
fix issue when switching from injection to/from production
2021-03-08 11:13:34 +01:00
Tor Harald Sandve
f861188d60
make sure wells has valid controls
2021-03-08 08:44:55 +01:00
Joakim Hove
9ad5d69744
Utilize private restartconfig
2021-03-07 09:31:10 +01:00
Kai Bao
f9ead85435
Use pore volume to do the average when hydrocarbon is missing.
2021-03-05 14:49:15 +01:00
Tor Harald Sandve
4f55c25607
add support for POTN in WECON
2021-03-03 10:31:57 +01:00
Tor Harald Sandve
00e65e88b2
Merge pull request #3095 from blattms/apply-gefac-also-on-topmost-group
...
Apply gefac also on topmost VREP controlled group
2021-03-03 10:03:31 +01:00
Bård Skaflestad
d78f5dc259
Merge pull request #3083 from totto82/fixMPIThrow
...
Fix MPI issues in the well model
2021-03-02 12:04:39 +01:00
Markus Blatt
d1f65451f1
Honor top most group efficiency factor in checkGroupConstraints{Inj,Prod}
2021-03-02 11:32:27 +01:00
Markus Blatt
0d2b9629b0
Document efficiencyFactor in checkGroupConstraints{Inj,Prod}
...
Reading recursion is quite hard and a comment might help others.
2021-03-02 11:31:04 +01:00
Markus Blatt
39546864ab
Honor GEFAC of topmost group when summing solvent rates.
2021-03-01 11:16:29 +01:00
Markus Blatt
6e8b1e8d2e
Honor gefac of topmost group in WellHelpers::updateGuideRateForGroups
2021-03-01 11:16:29 +01:00
Markus Blatt
1d9f13e310
Honor GEFAC for the top most group when calculating well phase rates.
...
Previously GEFAC was not applied here.
2021-03-01 11:15:57 +01:00
Markus Blatt
1ce5c59851
Honor GEFAC for top group in get{Injection,Production}Controls.
2021-03-01 10:26:40 +01:00
Tor Harald Sandve
09ff71ae31
only log changes of group controls on rank 0
2021-02-26 14:16:38 +01:00
Tor Harald Sandve
1627e421d7
communicate group data before well testing
2021-02-25 11:08:55 +01:00
Tor Harald Sandve
c23094b299
make another throw tread safe
2021-02-24 15:54:02 +01:00