Commit Graph
7875 Commits
Author SHA1 Message Date
Håkon Hægland 61e67b143d Adds a simple test case for gas lift.
Adds a simple test case for gas lift optimization. Currently this is
very simplistic and only covers a fraction of the gas lift optimization
code. The plan is to use this as a building block to add more tests
in the future.
2021-04-01 16:41:46 +02:00
Håkon Hægland 24c419913a Update to use new API for accessing well state.
Use access function to get a handle to the well state object according
to PR #3140.
2021-03-30 17:10:09 +02:00
Håkon Hægland ff3c7f2afb Try to silence a warning about an unused variable.
Added some more debug code, and initialized some boolean variables.

The jenkins build gives a warning about that '"alq_is_limited" may be
used uninitialized', though the warning is generated in another file
(GasLiftWellState.hpp, line #44) it could be (?) caused by the fact that
"alq_is_limited" might not be initialized before calling the constructor
in GasLiftSingleWell_impl.hpp line #963..
2021-03-30 15:42:33 +02:00
Håkon Hægland a80ad54d7d Parallel runs not supported yet.
Gives a warning if gas lift optimization is attempted for more than one
process in the MPI communicator. The plan is to implement support for
muliple processes in a later commit.
2021-03-30 15:42:33 +02:00
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
Joakim Hove 3d226abd24 Remove references to RestartConfig 2021-03-26 08:03:07 +01:00
Bård Skaflestad 7503cfd76a Address PR Review Comments 2021-03-24 23:13:50 +01:00
Bård Skaflestad 578fa4b6c3 Report Dimensionless Time and Pressure for CT Aquifers
This commit adds support for calculating and reporting the
dimensionless time (simulator time divided by aquifer's time
constant) and pressure (influence function evaluated at
dimensionless time) values as part of the Carter-Tracy aquifer's
'aquiferData()' reporting function.

These values are useful in their own right, e.g., for summary output
through the keywords AAQTD and AAQPD, but they are also needed for
ECLIPSE restart purposes.
2021-03-24 23:13:50 +01: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
Bård Skaflestad 41fd301d16 Merge pull request #3131 from fgfuchs/global_time_fix
fix bug that sets global_time to 0
2021-03-23 15:51:47 +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
Franz Georg Fuchs b86d5e2ad0 fix bug that sets global_time to 0 2021-03-23 12:19:07 +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 2b34dc843c Merge pull request #3119 from totto82/mintimestep
Change minimum timestep size to 1e-12
2021-03-19 09:39:35 +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 1582d92d06 Change minimum timestep size to 1e-12
the unit is days for field and metric and hours for lab
the purpose is to shut down "dead" simulations
2021-03-18 10:45:26 +01:00
Bård Skaflestad 0667497108 Merge pull request #3039 from GitPaean/new_numerical_aquifer
New numerical aquifer
2021-03-16 16:30:53 +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
Kai Bao 1bd7d8775a Merge remote-tracking branch 'upstream/master' into new_numerical_aquifer 2021-03-15 12:16:09 +01:00
Kai Bao 116b77bd8a addressing the reviewing comments for PR OPM/opm-simulators#3039
putting the numerical aquifer related modification in a function and the
function is called after the equilibration calculation, so it will work
for different equilibration methods.
2021-03-15 10:21:40 +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
Kai Bao afac0fb485 changing the parameters for the numerical aquifer regression tests
cpr linear solver is used for better convergence.
2021-03-12 23:39:01 +01:00
Kai Bao 9ecdca75d9 Merge remote-tracking branch 'upstream/master' into new_numerical_aquifer 2021-03-11 14:08:42 +01:00
Franz Georg Fuchs d13cf3ee6a fix ordering of first line in *INFOSTEP files 2021-03-11 11:22:58 +01:00
Kai Bao 347ca3978a adding parameter to control the min time step
can be reduced to based on the newton iteration counts.

By default it is zero, so it should not change any running results.
2021-03-10 11:49:59 +01:00
Joakim Hove 7e59532944 Merge pull request #3104 from joakim-hove/summary-config-rm-tables
Remove TableManager argument when constructing SummaryConfig
2021-03-10 07:33:06 +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