Commit Graph
110 Commits
Author SHA1 Message Date
Tor Harald Sandve 60f59cd6e6 Potentially reduce gaslift when under well is under group control
Current implemention only support ORAT and GRAT controlled groups
2021-06-30 09:59:09 +02:00
Tor Harald Sandve 5368343512 handle GRUP in wellState from target 2021-06-23 14:46:35 +02:00
Atgeirr Flø Rasmussen 8c5a6b12d5 Merge pull request #3158 from totto82/operability_solve
shut/stop unsolvable wells
2021-06-18 10:13:14 +02:00
Tor Harald Sandve 161c6cb1f8 Merge pull request #3385 from totto82/fixMSWtarget
Change wellStateFromTarget to virtual to make sure the MSW part is run
2021-06-17 13:03:33 +02:00
Tor Harald Sandve b5e29684f2 shut/stop unsolvable wells 2021-06-17 11:50:31 +02:00
Håkon Hægland 860cfd9fb5 Fix some sign compare warnings. 2021-06-17 10:44:32 +02:00
Tor Harald Sandve eb4e25c3f6 Change wellStateFromTarget to virtual to make sure the MSW part is run 2021-06-16 15:53:34 +02:00
Håkon Hægland fbb24e2a5a Check group limits in gas lift stage 1.
Check group limits in gas lift stage 1 to avoid adding too much ALQ which must
anyway later be removed in stage 2. This should make the optimization
more efficient for small ALQ increment values. Also adds MPI support.
2021-06-16 12:00:54 +02:00
Tor Harald Sandve 5686d90c61 Merge pull request #3350 from totto82/maxNiWi
Change the inner iterations logic
2021-06-10 19:49:23 +02:00
Joakim Hove 023edc67e5 Remove first perf member from Well classes 2021-06-08 14:24:26 +02:00
Arne Morten Kvarving 4c09b5dde3 add WellInterfaceEval 2021-06-07 08:26:43 +02:00
Arne Morten Kvarving 29842ff9a2 add WellInterfaceIndices
while not a lot of class in this layer, having it helps
in downstream well code.
2021-06-07 08:26:43 +02:00
Arne Morten Kvarving 1fb68c59e2 changed: move fluidsystem-only dependent method to WellInterfaceFluidSystem 2021-06-07 08:25:59 +02:00
Joakim Hove 32a6f32660 Use WellContainer to manage perf phase rate 2021-06-05 07:50:56 +02:00
Tor Harald Sandve 3ca6e215dc Change the inner iterations logic
This replace the Boolean switch to enable inner iterations with a
int that controls for which maximum number of newton iterations
inner iterations applies.

Default is set to 3
2021-06-04 10:51:15 +02:00
Arne Morten Kvarving 0f7967f86a cosmetics: do not indent for namespace 2021-05-27 14:22:14 +02:00
Arne Morten Kvarving 3aa2b38832 changed: split out FluidSystem only dependent code from WellInterface
this allows using explicit template instantation to only build
this code once for each FluidSystem
2021-05-27 14:22:14 +02:00
Joakim Hove 23180e06d2 Rename WellStateFullyImplicitBlackoil -> WellState 2021-05-21 15:07:21 +02:00
Joakim Hove 506a349085 Use wellcontainer2 (#3255)
Use WellContainer<> to manage members in WellState
2021-05-20 16:16:12 +02:00
Joakim Hove 3de4213c8c Merge pull request #3236 from akva2/wellinterface_generic_split
changed: split out non-typetag dependent code from WellInterface
2021-05-19 14:46:56 +02:00
Arne Morten Kvarving 0f4bb49ed9 changed: split out non-typetag dependent code from WellInterface 2021-05-19 09:25:03 +02:00
Arne Morten Kvarving db668e8d80 make has_energy constexpr and use if constexpr to eliminate code 2021-05-18 15:04:47 +02:00
Arne Morten Kvarving 268201eeb1 make has_polymermw constexpr and use if constexpr to eliminate code 2021-05-18 15:04:47 +02:00
Arne Morten Kvarving 1568479d3d fix function name
Frations -> Fractions
2021-05-12 10:50:46 +02:00
Arne Morten Kvarving 9758cd4f92 replace typedefs with using statements 2021-05-12 09:06:37 +02:00
Arne Morten Kvarving ab4772aba8 fixed: use Scalar type from TypeTag 2021-05-12 09:02:29 +02:00
Arne Morten Kvarving d5cdbf38d6 remove Opm:: prefix for symbols
we are already in the Opm:: namespace
2021-05-12 08:57:07 +02:00
Arne Morten Kvarving 9de5d077f6 remove unused modestring array 2021-05-12 08:47:49 +02:00
Arne Morten Kvarving 539c83687c changed: (re)move unnecessary includes 2021-05-12 08:47:22 +02:00
Arne Morten Kvarving ceb9bb4311 changed: make has_brine contexpr
and use if constexpr to eliminate some code
2021-05-11 12:52:44 +02:00
Arne Morten Kvarving f48ee17d59 changed: make has_foam contexpr
and use if constexpr to eliminate some code
2021-05-11 12:46:54 +02:00
Arne Morten Kvarving 73ccb42634 changed: make has_polymer contexpr
and use if constexpr to eliminate some code
2021-05-11 12:33:54 +02:00
Arne Morten Kvarving a78c7e598d changed: make has_solvent and has_zFraction constexpr
and use if constexpr to eliminate some code
2021-05-11 12:28:10 +02:00
Bård Skaflestad 38292aca72 Merge pull request #3225 from totto82/refactorAssembleWellEq
Avoid code duplication
2021-05-10 12:27:52 +02:00
Tor Harald Sandve 80413e0794 add useInnerIteration method and move assembleWellEq to the well interface to avoid code duplication 2021-05-10 09:41:18 +02:00
Tor Harald Sandve 687a2ca977 Improve initialization of the well rates for trivial rates
This also applies for rates with opposite direction.
2021-05-06 08:48:30 +02:00
Tor Harald Sandve 70150ab212 Remove code duplication between STW and MSW 2021-04-30 09:27:35 +02:00
Joakim Hove e1d117c59f Extract group state and create WGState to manage well & group state 2021-04-27 10:55:38 +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
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
Joakim Hove 9662d4019e Use enum Well::Status to indicate well status instead of bool 2021-03-20 20:33:28 +01:00
Tor Harald Sandve 58fa3eaf31 replace asserts with OPM_DEFLOG_THROW 2021-03-18 11:58:05 +01:00
Tor Harald Sandve 4f55c25607 add support for POTN in WECON 2021-03-03 10:31:57 +01:00
Arne Morten Kvarving 77692c1f99 quell unused parameter warning 2021-01-28 12:52:19 +01:00
Kai Bao d8f8b9f0cc Merge pull request #3028 from totto82/quarryPerfLengthAndRadius
get connection length and radius from the connection object
2021-01-28 11:21:21 +01:00
Bård Skaflestad 7684f22073 Merge pull request #3000 from totto82/substituteSolveWellEq
substitute solveWellEq with inner iterations and initial solve
2021-01-26 09:59:37 +01:00
Tor Harald Sandve 9277b2edee get connection length and radius from the connection object 2021-01-25 14:08:59 +01:00
Tor Harald Sandve 036a021c63 fix well model for gasoil thermal 2021-01-21 11:37:25 +01:00
Tor Harald Sandve 27bea2fa4f Solve well equation for the first iteration 2021-01-18 15:12:17 +01:00
Tor Harald Sandve fbcd230eb2 substitute solveWellEq with one inner solve for newly opened wells 2021-01-18 15:12:17 +01:00