Stein Krogstad
44e17fa615
cleanup thp-solve
2023-12-07 13:09:00 +01:00
Stein Krogstad
b287981e5e
testing
2023-12-07 13:09:00 +01:00
Stein Krogstad
7aa50f149f
updates
2023-12-07 13:09:00 +01:00
Stein Krogstad
94c0b49cf7
revert changes
2023-12-07 13:09:00 +01:00
Tor Harald Sandve
e1aa233026
Adapt wdfac to wpimult
2023-11-23 15:22:51 +01:00
Stein Krogstad
b08bc029e6
Fix shut-in logic for wells with shut-intructions
2023-11-22 16:53:48 +01:00
Tor Harald Sandve
be06132702
remove trans multiplier from dake
2023-11-22 13:59:06 +01:00
Tor Harald Sandve
4879896789
adapt to refactoring of getDFactor
2023-11-22 09:17:28 +01:00
Tor Harald Sandve
ecd9930225
dont scale d factor from wdfaccor
2023-11-21 17:51:36 +01:00
Markus Blatt
de50fe5702
Fixed typo: control model -> control mode.
2023-11-20 08:29:24 +01:00
Tor Harald Sandve
82cb3c3b53
Fix connection and well dfactor
...
The well dfactor is scaled by the well index
If postive the connection dfactor is threated as a well factor
and also scaled. If negative the connection dfactor is not scaled
2023-11-16 14:50:59 +01:00
Tor Harald Sandve
0f12977b17
only use d factor for gas wells
2023-11-14 12:45:25 +01:00
Bård Skaflestad
bf72698310
Merge pull request #4832 from totto82/wdaccor_refactor
...
Implement Forchheimer term in wellIndex
2023-10-31 17:46:49 +01:00
Kai Bao
beda7a0b35
checking LIFTOPT active before trying to optimizing alq
...
in gliftBeginTimeStepWellTestIterateWellEquations.
otherwise, if the increment is 0 (inactive), the function
gliftBeginTimeStepWellTestIterateWellEquations
might return undesired results or enter endless loop.
2023-10-25 23:00:54 +02:00
Kai Bao
2b97c3fe1d
checking LIFTOPT active before gliftBeginTimeStepWellTestUpdateALQ
...
to avoid meaningless message output related to GLIFT and WTEST
2023-10-25 21:45:19 +02:00
Tor Harald Sandve
90e791877c
Implement Forchheimer term in wellIndex
...
Add output of CDFAC
Add effect of compaction on CTFAC
2023-10-23 08:55:21 +02:00
Kai Bao
a525f0865f
removing white spaces in the wells folder
2023-10-09 11:14:48 +02:00
Kai Bao
b1974bbe45
recovering the SHUT during iteration beahvoir in prepareWellBeforeAssembling
...
when local_well_solver_control_switching_ is off
and incoporating commenst regarding resetting wellStatus_ in StandardWell within
the function iterateWellEqWithSwitching.
2023-09-29 10:55:19 +02:00
Kai Bao
e38e557bbc
cleaning up to preapre for pull request
2023-09-29 10:55:19 +02:00
Stein Krogstad
035d216641
adding function iterateWellEqWithSwitching
...
when we do the local solve for well equations, control/status will be
updated during the iteration process, such that the converged well gets
correct control/status regarding to the current reservoir state.
various change in the other parts of the code were made to make the
function work as intended.
2023-09-29 10:51:04 +02:00
Bård Skaflestad
bb04054d2c
Merge pull request #4842 from totto82/wellPressGW
...
use gas pressure for gas-water system in the well model
2023-09-07 12:47:05 +02:00
Kai Bao
529af98ce9
setting uninitialized bhp to be bhp_limit in updateWellStateWithTarget
...
to avoid uninitialized bhp 0. to be used.
2023-09-07 08:50:37 +02:00
Tor Harald Sandve
8796fa1ccc
use gas pressure for gas-water system in the well model
2023-09-06 13:46:18 +02:00
Arne Morten Kvarving
92fa9577da
consistently use std::size_t
2023-08-15 09:32:10 +02:00
Arne Morten Kvarving
60b92d02eb
WellFilterCake: make stateful
2023-07-07 16:08:42 +02:00
Kai Bao
1981a3bf4d
switching to scale the mobility instead of the well index
...
mostly to make the calculation of productivity easier.
2023-07-06 15:58:30 +02:00
Kai Bao
eb08e2e863
cleaning up implementation related to filter cake
2023-07-05 13:25:03 +02:00
Kai Bao
7e5f1a1642
slightly different way to calculate the skin factor
...
for the radial model of the filter cake.
not tested yet.
2023-07-05 13:25:03 +02:00
Kai Bao
4cb3574e0f
incoporate keyword WINJCLN
...
still in draft state.
2023-07-05 13:25:03 +02:00
Kai Bao
43196800b6
a draft version for for RADIAL model for WINJDAM
2023-07-05 13:25:03 +02:00
Kai Bao
aa5062683d
a draft version for the linear geomery WINJDAM
2023-07-05 13:25:03 +02:00
Kai Bao
5e4cb8aeed
WIP in using the filter cake to generate the skin factor
2023-07-05 13:25:03 +02:00
Kai Bao
49774186ab
calculating the accumulative water injection volume
...
for each connection
2023-07-05 13:25:03 +02:00
Arne Morten Kvarving
7b33cc6d62
move computeConnLevel(Inj|Prod)Ind to WellInterface
...
now code is shared between STW and MSW
2023-06-22 09:58:58 +02:00
Arne Morten Kvarving
01c4aa1927
move updateWellStateWithTHPTargetProd to WellInterface
...
to share implementation between STW and MSW
2023-06-22 09:10:38 +02:00
Kai Bao
5f344eef26
avoid dividing by zero in updateWellStateRates()
2023-06-20 23:14:50 +02:00
Arne Morten Kvarving
2630522d7f
avoid unused variable warning with NDEBUG
2023-05-24 12:39:24 +02:00
Arne Morten Kvarving
0406a033a2
introduce getMobility in WellInterface
...
we now share implementation between StandardWell and MultisegmentWell
2023-05-15 21:39:59 +02:00
Kai Bao
1542f2c087
refactor the network update
...
moving the well controls and network update out of assembleImpl to avoid
call assmebleImpl in a recursive manner
2023-04-20 14:59:50 +02:00
Håkon Hægland
e241fccbca
Only iterate wells activated for gaslift
2023-04-13 11:08:30 +02:00
Håkon Hægland
4ba5e3efad
Iterate ALQ when testing gaslift well
...
When testing a gaslift well under THP control, if the
well does not converge with maximum alq, try to reduce alq
in increments until well equations converge.
2023-04-13 10:40:29 +02:00
Kai Bao
9304542dbe
combining wellIsStopped and wellUnderZeroRateTaget
...
for better readability.
2023-03-29 14:40:50 +02:00
Kai Bao
b6eecf5c55
not updating the THP for zero rate controlled wells
2023-03-29 13:48:34 +02:00
Kai Bao
f4e0a996b9
wells under zero injection target are also treated as stopped well
...
when formulating the well control equations
2023-03-29 13:48:34 +02:00
Bård Skaflestad
9524348401
Merge pull request #4549 from totto82/resv_undersat
...
fix RESV for undersaturated wells
2023-03-29 10:35:33 +02:00
Tor Harald Sandve
42527ac829
fix RESV for undersaturated wells
2023-03-27 16:03:40 +02:00
Kai Bao
2c5a4398c9
make sure zero production rates are obtained for the following wells
...
1. stopped production wells
2. production wells under zero rate control
We guarantee the objective through enforce zero values for the WQTotal
primary variable during the initialization and update process during the
Newton solution.
2023-03-27 13:24:08 +02:00
hnil
aa40d2f0f3
-- prepared for possibliy of not using cached intentensive quantities
2023-03-24 19:57:31 +01:00
Kai Bao
57bf959efd
update well state when switching to THP control for producers
...
hopefully, it begins at a reasonably good initial point. When the Newton
iteration begins with certian solution region, the nonlinear solution
might fail.
2023-02-07 14:50:07 +01:00
Markus Blatt
d2f55c59fc
Merge pull request #4359 from totto82/fixGPMAINT2
...
Fix GPMAINT for groups without control
2023-01-23 14:12:00 +01:00
Arne Morten Kvarving
7b2b18045e
adjust to upstream enum changes
2023-01-18 11:24:25 +01:00
Arne Morten Kvarving
c0e9193e50
WellInterface: move code using WellMICPProperties to compile unit
2023-01-13 14:11:46 +01:00
Arne Morten Kvarving
f74f2ded8e
add missing WellMICPProperties.hpp includes
2023-01-13 14:01:56 +01:00
Arne Morten Kvarving
d011bb29ae
StandardWell: move code using WellPolymerProperties to compile unit
2023-01-13 13:02:37 +01:00
Arne Morten Kvarving
f860490c9f
WellInterface: move code using WellPolymerProperties to compile unit
2023-01-13 13:02:37 +01:00
Arne Morten Kvarving
97f76412ae
add missing WellPolymerProperties.hpp includes
2023-01-13 13:02:37 +01:00
Arne Morten Kvarving
71bf868ddb
WellInterface: move code using WellBrineProperties to compile unit
2023-01-13 11:14:18 +01:00
Arne Morten Kvarving
131f52773f
add missing WellBrineProperties.hpp includes
2023-01-13 11:14:18 +01:00
Arne Morten Kvarving
a29d5f81b6
WellInterface: move code using WellFoamProperties to compile unit
2023-01-13 10:18:26 +01:00
Arne Morten Kvarving
a0f85c8a93
add missing WellFoamProperties.hpp includes
2023-01-13 10:18:26 +01:00
Tor Harald Sandve
ceb8d996aa
Fix GPMAINT for groups without control
...
If GPMAINT is used the group does not need a valid control object
2023-01-10 15:59:21 +01:00
Arne Morten Kvarving
a020a993b5
WellInterface: use {fmt} to format error messages
2022-12-23 09:39:29 +01:00
Arne Morten Kvarving
f17a90170d
use exception classes from opm-common
2022-12-13 12:56:13 +01:00
Håkon Hægland
bc566e3981
Also check LRAT group target in stage2
...
Also account for a group LRAT limit when removing surplus ALQ in gaslift
optimization stage 2.
2022-11-21 08:58:49 +01:00
Arne Morten Kvarving
26d9f18687
changed: move isPressureControlled to WellInterfaceGeneric
...
no typetag dependence. also no need for this to be virtual
2022-11-04 14:24:19 +01:00
Arne Morten Kvarving
796aa51e79
changed: move calculateBhpFromThp to WellBhpThpCalculator
2022-10-31 13:16:51 +01:00
Arne Morten Kvarving
b9ee7eae6f
use if constexpr
2022-10-26 11:23:55 +02:00
Tor Harald Sandve
7b90d35f21
fixup from PR comments
2022-10-18 12:58:07 +02:00
Tor Harald Sandve
e1d36f32b8
add missing wellGroupTargetsViolated in ++ operator
2022-10-18 10:55:17 +02:00
Tor Harald Sandve
756c9bad21
set ws.thp = thp_limit for wells under THP control
2022-10-18 10:55:17 +02:00
Tor Harald Sandve
d25dc4e795
check controls in getWellConvergence
2022-10-18 10:55:17 +02:00
Bård Skaflestad
36ca7d11e9
Merge pull request #4149 from totto82/improve_conv_thp
...
Improve convergence for newly opened wells with thp control
2022-10-18 10:26:55 +02:00
Tor Harald Sandve
74eb0d048f
Improve convergence for newly opened wells with thp control
2022-10-17 15:32:27 +02:00
Tor Harald Sandve
2ca3c25f4f
set alq before trying to solve the equation during well testing
2022-10-10 08:14:42 +02:00
Kai Bao
d3d8e11e00
limiting the smallest injection rate to 1.e-7
...
for the injection phase.
2022-09-20 11:40:34 +02:00
Tor Harald Sandve
0f969dd7a5
check ipr for wells prevented to change to thp
2022-08-19 10:48:56 +02:00
Tor Harald Sandve
96222f8afb
dont use explicit vfp lookup for newly opened wells
2022-08-19 10:33:19 +02:00
Tor Harald Sandve
9364d4c54b
Add option for wvfpexp item 2 plus minor fixes
2022-08-19 10:33:19 +02:00
Tor Harald Sandve
b1b23a57de
Add option for explicit vfp lookup for problmatic wells
2022-08-19 10:33:19 +02:00
Atgeirr Flø Rasmussen
ffb09ee53e
Merge pull request #3937 from atgeirr/pressure-bhp-cpr
...
Pressure bhp cpr
2022-06-16 17:15:49 +02:00
hnil
541edeaf67
- add default for CPRW
...
- cleanded code
2022-06-08 17:03:27 +02:00
hnil
6c407506a9
cleaning code
2022-06-08 17:03:27 +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
4b5a53eaeb
Merge pull request #3887 from totto82/init_alt_eps
...
use alternative init for wells with all rates less than eps
2022-04-26 10:46:19 +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
Atgeirr Flø Rasmussen
75ccd88f4f
Merge pull request #3888 from totto82/stop_tgr2
...
fix trivial group target
2022-04-26 08:34:06 +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
Håkon Hægland
11907495c1
Well testing of gas lift wells
...
Assign a maximum ALQ value to each GLIFT producer when doing well testing
in beginTimeStep(). This allows the well to be considered open. Then,
later in the timestep, when assemble() is called, the full gas lift
optimization procedure can adjust the ALQ to its correct value.
It is also observed that in some cases when gas lift is switched off by
setting ALQ to zero, and later in the schedule is switched back on again,
it might not be possible to determine bhp from thp for low small ALQ values.
Instead of aborting the gas lift optimization, we should try increasing
ALQ until we get convergence or until the maximum ALQ for the well is
reached.
2022-04-20 10:51:34 +02:00
Markus Blatt
ff410d268a
Merge pull request #3863 from totto82/unsolvable_fix
...
fix to --shut-unsolvable-wells=true option
2022-04-11 07:33:46 +02:00
Tor Harald Sandve
6f29bf715c
Merge pull request #3778 from GitPaean/always_inner
...
[testing] always using inner iterations for testing purpose.
2022-04-08 15:44:33 +02:00
Tor Harald Sandve
e2e0ec9dd9
fix to --shut-unsolvable-wells=true option
2022-04-05 14:42:27 +02:00
Bård Skaflestad
0cd2ce6589
Merge pull request #3824 from totto82/notswitchthp
...
Avoid switching to thp control if production is decreasing or injection is increasing
2022-03-25 14:34:30 +01: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
Håkon Hægland
438a712e54
Gas lift optimization for two-phase oil-water.
...
Add gas lift optimization support for two-phase oil-water flow.
2022-03-07 15:19: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
Kai Bao
086b8aab7d
only multisegment wells will alway inner iteration
2022-01-21 10:43:36 +01:00
Kai Bao
0000df18a4
always using inner iterations for testing purpose.
2022-01-21 10:43:36 +01:00
Joakim Hove
6b92443cb4
Downstream filesystem reorganisation in opm-common
2022-01-02 14:33:34 +01:00