Commit Graph
100 Commits
Author SHA1 Message Date
Tor Harald Sandve b3f62589f2 tune restart test to make it pass 2022-08-17 10:21:25 +02:00
Tor Harald Sandve 1f54e90f33 Restrict drift compensation by CNV tolerance 2022-08-17 10:21:25 +02:00
Tor Harald Sandve 4fd0c24661 output drsdtcon values to restart files 2022-07-21 15:41:30 +02:00
Tor Harald Sandve cf1abb086f remove msw(ms) from regulariztion parameter 2022-06-29 15:39:51 +02:00
Tor Harald Sandve eef455106d regularize equation for std wells 2022-06-29 12:47:44 +02:00
Tor Harald Sandve c910c8dbac add diffusion test case to ctest 2022-06-24 10:18:21 +02:00
Tor Harald Sandve 1f876d1800 implement rsrv item 10 WCONINJE
MSW not supported yet
2022-06-08 13:55:29 +02:00
Tor Harald Sandve 46c8aa3306 fix hydrostatic correction for branched wells in IPR 2022-06-08 12:29:05 +02:00
Tor Harald Sandve 3adaa1b987 fix component/phase mixup 2022-06-07 14:14:13 +02:00
Tor Harald Sandve e965dac3ee Only flag a bhp producer/injector operable if the sum of IPR are negative/positive 2022-06-07 10:47:22 +02:00
Tor Harald Sandve 6cc71375b4 stopped wells where cross flow is not allowed are not added to the container 2022-06-07 10:01:02 +02:00
Tor Harald Sandve 6f410e7b03 Steer bhp towards the solution with the highest production rate 2022-05-25 15:30:36 +02:00
Tor Harald Sandve dfe0982286 reset regularize_ before starting the inner iterations 2022-05-03 08:25:26 +02:00
Tor Harald Sandve 6bf90c9ebe change default reg factor for MSW to 100 2022-05-02 09:41:43 +02:00
Tor Harald Sandve 967c538da8 output pcow, pcog 2022-04-29 15:35:16 +02:00
Tor Harald Sandve 52fca6c91d use a relaxed (but not too relaxed) well tolerance when iter>6
also shut unsolvable wells during iterations as default

Note however that getWellConvergence return false if a well is unsolvable
i.e. it will cut the timestep and redo the iteration if the well is unsolvable
and only shut it completly if the time step is below the
MinTimeStepBeforeShuttingProblematicWellsInDays (default 0.01 days)
2022-04-26 10:55:22 +02:00
Tor Harald Sandve bd145913e8 use alternative init for wells with all rates less than eps 2022-04-26 09:32:18 +02:00
Tor Harald Sandve d00a2e2341 fix trivial group target 2022-04-25 08:10:19 +02:00
Tor Harald Sandve 92175cf094 Fix STOP in combination with inoperable/unsolvable 2022-04-22 09:15:09 +02:00
Tor Harald Sandve c8bef3bcd5 only check if wells has negative potentials if check_well_operabilty=true(default) 2022-04-22 08:19:33 +02:00
Tor Harald Sandve fd6cf1ccbd regularize MSW equation when iter > strict_inner_iter 2022-04-21 08:44:50 +02:00
Tor Harald Sandve 9d18f164db fix saturated density in DRSDTCON 2022-04-21 08:35:07 +02:00
Tor Harald Sandve a1d11540a6 tighten approximated solution bhpFromThpLimit from 3 to 0.1 bar 2022-04-19 14:21:20 +02:00
Tor Harald Sandve af95a3f22b fix density in initialization for case without DISGAS 2022-04-12 11:31:17 +02:00
Tor Harald Sandve edf8786a58 avoid throw for nan residuals instead return well as unconverged 2022-04-11 09:52:25 +02:00
Tor Harald Sandve e501a84958 support item 4 wvfpexp 2022-04-08 08:43:13 +02:00
Tor Harald Sandve e2e0ec9dd9 fix to --shut-unsolvable-wells=true option 2022-04-05 14:42:27 +02:00
Tor Harald Sandve fba9046201 Some more clean-up based on review 2022-04-04 11:37:31 +02:00
Tor Harald Sandve 69ffed06de Address comments from review
1) Add debug messages
2) Fix bug of missing else in the code
2022-04-04 08:24:32 +02:00
Tor Harald Sandve 5b53fcd8a6 guard against d = 0 2022-04-04 08:24:32 +02:00
Tor Harald Sandve 2e91d2f353 Do not throw when d = 0 instead continue with rs/rv = 0 2022-04-04 08:24:32 +02:00
Tor Harald Sandve 8909b259d0 don't shut wells due to ratio when rate is negative 2022-03-28 10:50:15 +02:00
Tor Harald Sandve 71acf4e056 Double check econ potential limits
Sometimes the potentials are inaccurate as a safty measure we
also check that the rates are violated.
The rates are supposed to be less or equal to the potentials.
2022-03-28 10:50:15 +02:00
Tor Harald Sandve f4d81e33f1 Avoid switching to thp control if it results in higher rates 2022-03-25 09:12:15 +01:00
Tor Harald Sandve 32dfdc6198 improve initialization msw new wells 2022-03-24 09:53:46 +01:00
Tor Harald Sandve 7d5a0a74eb Handle case where bhp target is violated 2022-03-21 09:52:41 +01:00
Tor Harald Sandve 82099705ac fix initialization EQUIL + water and gas 2022-03-11 12:38:38 +01:00
Tor Harald Sandve b931c5ef97 Check if guiderate is violated
If guiderate is violated change to group controll.
Note that a factor 1.01 is added to minimize oscilations.
Fix missing  multiplication with group efficiency when accumulating guiderates
2022-02-17 10:41:43 +01:00
Tor Harald Sandve d8934ea7a9 Set well control to thp or bhp in well testing 2022-02-17 09:01:32 +01:00
Tor Harald Sandve 418880730e cleanup2 2022-02-15 12:43:58 +01:00
Tor Harald Sandve cb99a2fc74 check also the validity of the iterated solution 2022-02-15 12:39:42 +01:00
Tor Harald Sandve 650416c647 cleanup 2022-02-15 12:39:42 +01:00
Tor Harald Sandve e0573e99b1 iterate in computeBhpAtThpLimitProdWithAlq if no solution or potentials are negative 2022-02-15 12:39:42 +01:00
Tor Harald Sandve ec08f80405 Refactor out the solving algorithm of bhp from thp via VFP to make it usable for injectors 2022-02-15 12:39:42 +01:00
Tor Harald Sandve 1001d35418 Move computeBhpAtThpLimitProd MSW code to common and apply it for both MSW and STW
The computeBhpAtThpLimitProd for MSW is faster and sufficiently robust and should also be used by STW
2022-02-15 12:39:42 +01:00
Tor Harald Sandve 0c8d0764d6 update well potensials in well state along with alq and update guide rates accordingly 2022-02-08 15:46:08 +01:00
Tor Harald Sandve ad799b3e80 Add more performance summary output
This commit ads: NEWTON, MLINEARS, MSUMLINS, MSUMNEWT, NLINEARS, NLINSMIN, NLINSMAX
2022-02-03 15:03:37 +01:00
Tor Harald Sandve bb99d1437b reduce alq when alq + gas production target is violated 2022-02-03 12:11:03 +01:00
Tor Harald Sandve 0b923e505a Add support for maximum total gas (alq + gas rate) in GLIFTOPT
Dont increase gaslift if the groups alq + gas production rate is above the given target
2022-02-02 10:54:32 +01:00
Tor Harald Sandve 009134d037 Limit well rates to honor group rates
If a well is under a group that is limited by a target, it should use as little gaslift as possible.
The reduction algorithm will reduce the gaslift of the well as long as the groups potential is above the groups target.
2022-02-02 10:30:48 +01:00
Tor Harald Sandve 6fee9173c0 Remove assert in ratio check for completions
Handle special cases with injection or trivial completion rates and all completions have ratio below the limit while the well has
above
2022-01-21 10:51:40 +01:00
Tor Harald Sandve d1c2032e73 Update guiderates after with new rates from newly opened wells 2022-01-21 09:15:00 +01:00
Tor Harald Sandve c3571c50a3 support none trivial item 3 in LIFTOPT. i.e. not optimize gaslift every timestep 2022-01-19 10:14:47 +01:00
Tor Harald Sandve 66425eb7c2 WIP fix when both well and group control restrict gasslift 2021-12-08 09:36:26 +00:00
Tor Harald Sandve 4184b4cbaf Fix DRSDTDYN
Add multiplication of missing reference oil density
2021-12-08 09:05:59 +00:00
Tor Harald Sandve 4f75d1ab8d Add gasoil + energy simulator
Useful when combining CO2STORE + THERMAL

This PR also fixes an issue with missing phases in computation of output temperature
2021-12-07 09:18:38 +01:00
Tor Harald Sandve e230174de6 Fix assert in relaxation factor in std well
If original sum ~ 1 and relaxed_update ~ 0 the factor could -> inf
and trigger the assert.
The 1 + epsilon factor will make sure this does not happen
2021-12-03 14:00:40 +00:00
Tor Harald Sandve 4d19ba7409 Only check operable wells for wecon 2021-12-03 11:37:51 +00:00
Tor Harald Sandve fac3ca3507 do not iterate when computing well potentials 2021-12-02 13:48:22 +00:00
Tor Harald Sandve 2c17b1942c Move getPerfCellPressure to wellInterface
The cell pressure is independent of well model and belongs to the interface
This should move the MSW model one step closer to supporting GasWater cases
2021-11-30 10:48:02 +00:00
Tor Harald Sandve c4b0a0d9e2 Fix in WTEST
If a well is shut due to physical or economical reason the wellstate status is shut
so we can not check the wellstate we instead check the well from the schedule to
make sure we don't test wells that are shut by the user.
2021-11-26 10:17:45 +00:00
Tor Harald Sandve 6277d12d16 fix return type for phaseIdx and compIdx 2021-11-25 14:56:27 +00:00
Tor Harald Sandve 2352d94c0e fix co2store + aqunum 2021-11-24 11:13:50 +00:00
Tor Harald Sandve 50ab26c330 cleanup 2021-11-23 14:01:07 +00:00
Tor Harald Sandve 43fd50e355 only mark negative potentials as not operable 2021-11-22 11:27:45 +00:00
Tor Harald Sandve b5cdb1048a Mark wells with negative and trivial potentials as not operable
The simulator will try to compute potentials at every iterations to
try to reopen the well.
2021-11-22 08:44:17 +00:00
Tor Harald Sandve cd9e742ad5 remove assert and handle opposite rates in wecon 2021-11-10 13:14:22 +01:00
Tor Harald Sandve a765ab213b fix WRAT GRAT reduction 2021-11-09 13:40:55 +01:00
Tor Harald Sandve 7728df33bb Fix LRAT reduction 2021-11-09 10:45:10 +01:00
Tor Harald Sandve d2fd5505ca Check group production LRAT and WRAT targets 2021-11-09 08:24:57 +01:00
Tor Harald Sandve 23225d24e5 Fix bug in runOptimize1_ 2021-11-09 08:21:42 +01:00
Tor Harald Sandve b9f16018ac remove unused inj_potentials 2021-10-28 14:17:33 +02:00
Tor Harald Sandve 93c7ba6b92 communicate inj_surface_rates 2021-10-28 08:55:50 +02:00
Tor Harald Sandve 5dcc584848 Add micp test case 2021-10-19 14:13:28 +02:00
Tor Harald Sandve 1cfe3e0aad remove cartesian to compressed vector 2021-10-19 11:03:46 +02:00
Tor Harald Sandve 160c80b574 check operability history wells 2021-10-18 09:21:04 +02:00
Tor Harald Sandve 1c9c5c484b check operability injectors 2021-10-15 12:32:02 +02:00
Tor Harald Sandve f6f5badfde Add brine and thermal simulator 2021-10-15 11:50:17 +02:00
Tor Harald Sandve 83ef3730b2 make multiple well control switching output more readable 2021-10-14 09:40:34 +02:00
Tor Harald Sandve d07aed204f Catch numerial issues due to problems with inner iterations wells 2021-10-08 15:26:53 +02:00
Tor Harald Sandve fdf6ce9c54 change assert with throw for isfinite primary variable 2021-10-08 15:26:52 +02:00
Tor Harald Sandve afdfe55bbc restrict maximum number of times a well can switch to the same control 2021-10-04 10:12:39 +02:00
Tor Harald Sandve 623ff2c3ce communicate before usage not after 2021-09-30 11:54:56 +02:00
Tor Harald Sandve dc8c9021b5 open completions after well event 2021-09-30 11:40:34 +02:00
Tor Harald Sandve cb9254636b rename and cleanup 2021-09-30 09:01:07 +02:00
Tor Harald Sandve bc8da79779 stop checking operability in the beginning of an timestep 2021-09-30 08:47:47 +02:00
Tor Harald Sandve c9e93e6155 stop updating operability during iterations 2021-09-30 08:47:47 +02:00
Tor Harald Sandve 06878a8ca8 fix date for large time steps 2021-09-29 15:43:20 +02:00
Tor Harald Sandve c790b14753 Make WTEST more robust
Only open wells that are solvable, operable and economical
2021-09-28 10:07:12 +02:00
Tor Harald Sandve 9381b0857b updateWsolvent only after well container is created 2021-09-24 12:09:02 +02:00
Tor Harald Sandve eb4997a011 update gpmain before not after timestep 2021-09-21 14:03:35 +02:00
Tor Harald Sandve 50cf80910b support aquct and co2store 2021-09-21 11:08:10 +02:00
Tor Harald Sandve a650b529d1 commit WGstate after shut well from outside 2021-09-21 11:05:03 +02:00
Tor Harald Sandve 30592c7593 update status after WTEST 2021-09-21 10:32:56 +02:00
Tor Harald Sandve 21942f0cc2 use getMobilityScalar in updateIPR 2021-09-21 09:50:20 +02:00
Tor Harald Sandve 6fa9c05985 add well_test_state to WGState to be able to access last valid wellTestState 2021-09-21 09:30:02 +02:00
Tor Harald Sandve c6660f0aa2 only update when control is changed 2021-09-21 08:53:25 +02:00
Tor Harald Sandve 9db6b2b946 handle unoperable wells
set potentials and rates to zero
2021-09-21 08:53:25 +02:00
Tor Harald Sandve dc4436961f update well rates from target 2021-09-21 08:53:25 +02:00
Tor Harald Sandve 10480b4f8f combine co2store and numerical aquifers 2021-09-17 16:05:26 +02:00