Atgeirr Flø Rasmussen
a35f365e3e
Merge pull request #4143 from totto82/simplifyWellReport
...
only output final change of well control
2022-10-17 17:28:53 +02:00
Tor Harald Sandve
74eb0d048f
Improve convergence for newly opened wells with thp control
2022-10-17 15:32:27 +02:00
Atgeirr Flø Rasmussen
5a90ced52d
Merge pull request #4054 from totto82/gasliftthplim
...
Allow for gaslift for wells that violate thp limit but are not allowed to switch
2022-10-17 15:15:49 +02:00
Atgeirr Flø Rasmussen
6a13fe807a
Merge pull request #4155 from totto82/fixTestGlift
...
set alq before trying to solve the equation during well testing
2022-10-17 15:08:57 +02:00
Atgeirr Flø Rasmussen
31ac961834
Merge pull request #4157 from blattms/wellcontrib-available-always
...
Fix compilation with amgcl/vexcl and without CUDA/OpenCL.
2022-10-17 15:03:37 +02:00
Bård Skaflestad
7096343121
Merge pull request #4162 from akva2/use_range_generators
...
Use range generators for grid iterations
2022-10-13 23:42:10 +02:00
Arne Morten Kvarving
ff826aa939
RegionAverageCalculator: use elements range generator
2022-10-13 23:01:37 +02:00
Arne Morten Kvarving
5796396696
RateConverter: use elements range generator
2022-10-13 23:01:37 +02:00
Arne Morten Kvarving
15f1ec0c3a
BlackoilWellModel: use elements range generator
2022-10-13 23:01:37 +02:00
Kai Bao
9056bf3d98
removing the usage of GTotal
2022-10-13 22:13:45 +02:00
Markus Blatt
fcc3690832
Added missing include of config.h in cpp files.
2022-10-12 15:28:38 +02:00
Markus Blatt
c2963560d2
Fix compilationw with amgcl/vexcl and without CUDA/OpenCL.
...
There is no reason to omit WellContributions if neither CUDA nor
OpenCL is found as the implementations/functions only use C++-
To the contrary, the defines used for deactivating were not
consistent with usage elsewhere and resulted in compiler erorrs
for exotic configuration
2022-10-11 10:42:08 +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
9461bf1a99
only enforcing production economic limit to producers.
2022-10-06 15:27:33 +02:00
Tor Harald Sandve
12e4bb6e05
only output final change of well control
2022-10-04 09:09:46 +02:00
Tor Harald Sandve
941556ab4d
Merge pull request #4098 from totto82/extVFP
...
remove cutoff for extrapolation
2022-10-04 08:44:49 +02:00
Tor Harald Sandve
654f9e2c2d
Merge pull request #4135 from totto82/checkGroupConstrainsFromTop
...
check group constraints from top
2022-10-03 14:32:46 +02:00
Tor Harald Sandve
ebb9fd636c
remove cutoff for extrapolation of VFP
2022-10-03 10:26:08 +02:00
Bård Skaflestad
de66f3e519
Merge pull request #4139 from GitPaean/fixing_confusion_initializeWellPerfData
...
fixing (partly) confusion naming in function initializeWellPerfData()
2022-10-01 01:10:35 +02:00
Kai Bao
15fc19de32
fixing (partly) confusing naming in function initializeWellPerfData()
2022-09-30 23:31:21 +02:00
Kai Bao
f8d8bbb259
Merge pull request #3954 from atgeirr/iterate-network
...
Add iterations to the network model
2022-09-30 16:33:06 +02:00
Atgeirr Flø Rasmussen
67b95afdd9
Support NETBALAN (partially).
...
NETBALAN can be used to choose balancing frequency (limited: either start
of timestep, or first NUPCOL iterations), balancing tolerance, and maximum
balancing iterations. These correspond to items 1, 2 and 3 of NETBALAN.
2022-09-30 15:41:11 +02:00
Tor Harald Sandve
54e0496203
check group constraints from top
2022-09-30 13:09:42 +02:00
Tor Harald Sandve
d21921073b
avoid oscilation between ORAT and LRAT when they are equal
2022-09-29 11:10:43 +02:00
Atgeirr Flø Rasmussen
95fdea67a8
Do not re-solve network after NUPCOL Newton iterations.
2022-09-28 10:44:42 +02:00
Kai Bao
de4473bbd8
makre sure network_changed synchronized across the processes
2022-09-28 10:44:42 +02:00
Atgeirr Flø Rasmussen
cc15b29372
Add network model iterations.
...
Implemented by conditionally recursing in BlackoilWellModel::assembleImpl().
2022-09-28 10:44:42 +02:00
Atgeirr Flø Rasmussen
6104a01468
Add WellInterfaceGeneric::getDynamicThpLimit() method.
2022-09-28 10:44:42 +02:00
Kai Bao
6e0baad0c7
Merge pull request #4116 from GitPaean/not-setting-inj-rate-to-zero
...
limiting the smallest injection rate to 1.e-7 for the injection phase.
2022-09-23 15:17:31 +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
Bård Skaflestad
8432e4130c
Merge pull request #4101 from GitPaean/fix_wells_active
...
Fix wells active determination
2022-09-19 10:20:30 +02:00
Tor Harald Sandve
b072cc1d5d
Allow for gaslift for wells that violate thp limit but are not allowed to switch
2022-09-16 10:49:03 +02:00
Arne Morten Kvarving
c5fced81fa
fixed: remove default constructor declaration
...
a class with a reference member cannot be default initialized,
so constructor is implicitly deleted. quells a clang warning
2022-09-16 09:19:42 +02:00
Tor Harald Sandve
fe19d94b4e
Merge pull request #4110 from GitPaean/avoiding_overshoot_primary_variables
...
avoiding wrong sign for QTotal primary variable for top segment
2022-09-15 08:13:03 +02:00
Kai Bao
2f19d4586e
avoiding wrong sign for QTotal primary variable for top segment
...
for multisegment wells.
2022-09-14 14:21:03 +02:00
Kai Bao
734b9a792f
removing function localWellsActive()
2022-09-14 14:17:02 +02:00
Atgeirr Flø Rasmussen
f3b536889d
Merge pull request #4097 from totto82/cleanDBG
...
remove computeBhpAtThpLimitProd() output from .DBG file
2022-09-14 10:11:50 +02:00
Arne Morten Kvarving
57f2bb3ea7
fix build without MPI
2022-09-13 15:07:15 +02:00
Kai Bao
83529b22c7
removing one usage of wellsActive() in numComponents
2022-09-13 14:31:56 +02:00
Arne Morten Kvarving
6e83e349d6
changed: move variadic broadcast into EclMpiSerializer
2022-09-13 13:29:47 +02:00
Bård Skaflestad
7e44ddd2bd
Merge pull request #4100 from totto82/wvfpexp_user
...
remove WVFPEXP from unsupported keywords
2022-09-13 12:46:58 +02:00
Tor Harald Sandve
f8d1d040ab
Merge pull request #4033 from totto82/fix_grsw_output
...
cleanup group switching output to terminal
2022-09-13 12:25:40 +02:00
Kai Bao
4e1cc5bd5b
determining wells_active_ based on well_containers_ size
...
instead of the information in wells_ecl_, which might include shut wells
2022-09-13 11:36:23 +02:00
Bård Skaflestad
56c653235f
Merge pull request #4087 from akva2/rename_serialization
...
Rename serialization files
2022-09-13 10:48:33 +02:00
Kai Bao
b363138240
removing the function setWellsActive from BlackoilWellModelGeneric
2022-09-13 09:41:48 +02:00
Tor Harald Sandve
683ed0df1f
remove WVFPEXP from unsupported keywords
2022-09-13 09:30:04 +02:00
Tor Harald Sandve
7571215f44
some cleanup
2022-09-13 08:33:51 +02:00
Tor Harald Sandve
001d53858e
remove computeBhpAtThpLimitProd() output from .DBG file
2022-09-12 09:29:37 +02:00
Markus Blatt
a4360b4961
Merge pull request #4028 from akva2/reduce_dup
...
changed: get rid of duplicate MatrixBlock headers/classes
2022-09-09 15:30:30 +02:00
Tor Harald Sandve
d2fc8a3d5e
remove the logic that skips checking the group if it already changed
2022-09-09 10:58:36 +02:00
Tor Harald Sandve
702d824135
cleanup group switching output to terminal
2022-09-09 10:58:36 +02:00
Tor Harald Sandve
f36ac3eeed
Merge pull request #3837 from totto82/wvfpexp
...
Add option for explicit vfp lookup for problematic wells
2022-09-09 10:00:02 +02:00
Arne Morten Kvarving
c68d979d4b
remove unused variables
2022-09-09 08:38:17 +02:00
Arne Morten Kvarving
1838b39d2e
changed: split ParallelRestart.hpp/cpp in two bits
...
the mpi serialization bit is put in MPISerializer.hpp/cpp,
while the parallel restart bit stays in ParallelRestart
2022-09-08 13:36:51 +02:00
Kai Bao
4e4606c705
removing unused setupCartesianToCompressed_ function
...
for BlackoilWellModel
2022-09-08 13:33:39 +02:00
Atgeirr Flø Rasmussen
e9cba9e0c1
Use compressedIndexForInterior() for mapping cartesian indices.
2022-09-05 12:42:54 +02:00
Tor Harald Sandve
8075c1218b
Merge pull request #4029 from totto82/fix_group_multilevel
...
Simplify and fix check for violation of GRUP for multiple level of guiderates
2022-09-02 12:59:34 +02:00
Bård Skaflestad
93b059eca1
Merge pull request #4046 from akva2/mswellhelper_priv
...
make MSWellHelpers templates private
2022-09-01 16:44:15 +02:00
Bård Skaflestad
d1ba2ce5bc
Merge pull request #4045 from akva2/wellgrouphelper_priv
...
Make one more template private in WellGroupHelper
2022-09-01 16:33:43 +02:00
Arne Morten Kvarving
5052a09d6e
make MSWellHelpers templates private
2022-09-01 15:17:04 +02:00
Arne Morten Kvarving
5d9ee32853
WellGroupHelpers: simply template instantation
...
use types for ParallelCommunication.hpp
2022-09-01 14:55:19 +02:00
Arne Morten Kvarving
2135a4268d
WellGroupHelpers: make template private
2022-09-01 14:55:19 +02:00
Arne Morten Kvarving
5824af3f1b
use libfmt
...
also change from debug to error
2022-09-01 13:54:40 +02:00
Arne Morten Kvarving
6bd790fd16
avoid pointer semantics
2022-09-01 13:48:01 +02:00
Arne Morten Kvarving
a6517d6111
remove unused template
2022-09-01 13:37:54 +02:00
Arne Morten Kvarving
18d8914ef1
wellhelpers: remove indentation for namespaces
2022-09-01 13:37:11 +02:00
Arne Morten Kvarving
69db0dd175
wellhelpers: make templates private
...
to increase header encapsulation
2022-09-01 13:37:11 +02:00
Arne Morten Kvarving
2c0ff6f81e
consistently use ParallelCommunication.hpp for communication definition
2022-09-01 12:26:11 +02:00
Arne Morten Kvarving
004e7e55fb
avoid two communication calls
...
one less network latency cost
2022-08-31 12:54:47 +02:00
Arne Morten Kvarving
a9590215dc
changed: consistently use std::array
2022-08-26 08:28:46 +02:00
Tor Harald Sandve
9b7ba49495
Simplify and fix check for violation of GRUP for multiple level of guiderates
2022-08-25 16:09:53 +02:00
Arne Morten Kvarving
1a348c0d29
changed: get rid of duplicate MatrixBlock headers/classes
...
this has already led to some confusion. move some of the code
upstream to opm-models and remove the rest of the duplicated code.
the remainder of MatrixBlock.hpp is renamed to SmallDenseMatrixUtils.hpp
2022-08-25 12:48:53 +02:00
Bård Skaflestad
a56cd6752c
Revert "changed: reduce some code duplication"
2022-08-24 20:34:52 +02:00
Arne Morten Kvarving
447d77b579
changed: get rid of duplicate MatrixBlock headers/classes
...
this has already led to some confusion. move some of the code
upstream to opm-models and remove the rest of the duplicated code.
the remainder of MatrixBlock.hpp is renamed to SmallDenseMatrixUtils.hpp
2022-08-24 15:54:01 +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
7a8eed6a6c
adapt to renaming in opm-common
2022-08-19 10:33:19 +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
e875849497
Adapt test cases and vfpprint
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
Arne Morten Kvarving
371b2592f5
changed: put ParallelIstlInformation in separate compile unit
2022-08-18 09:15:28 +02:00
Atgeirr Flø Rasmussen
c94ff12e4c
Bugfix and simplification of cartesian mapping.
...
We already have the mapping available, and using the equilGrid() is only valid
on rank 0.
2022-08-17 14:13:13 +02:00
Arne Morten Kvarving
d2ba2e75e8
remove include of Well header
2022-08-11 11:49:42 +02:00
Atgeirr Flø Rasmussen
a5c8d40cfa
Remove unneeded timeIdx arguments, also silence other warnings.
2022-08-10 10:01:54 +02:00
Atgeirr Flø Rasmussen
cabe64cc58
Further reduction of modifications.
2022-08-09 11:11:36 +02:00
Atgeirr Flø Rasmussen
5fba14373b
Modification to reduce PR to minimal changes.
2022-08-09 11:11:36 +02:00
Atgeirr Flø Rasmussen
5042b02138
Rename method and move to impl file.
2022-08-09 11:11:36 +02:00
hnil
4f6755025c
-prototype on trueimpes in new system
...
-probably better threading
2022-08-09 11:09:48 +02:00
hnil
6d3b0a7c1f
tried to make openmp work
2022-08-09 11:09:48 +02:00
hnil
5a39724606
added functions for direct setting of well rates contribution to reservoir
2022-08-09 11:09:48 +02:00
hnil
8f5e0940fe
restructuring to be able to call without local indices
2022-08-09 11:09:48 +02:00
Atgeirr Flø Rasmussen
93ce28e9a2
Merge pull request #3972 from ElyesAhmed/alugrid2
...
Alugrid2
2022-08-04 15:43:24 +02:00
Elyes Ahmed
5c2b60bcd0
rebasing
2022-07-28 20:40:34 +02:00
Markus Blatt
941957c13e
Fix shadowed variable warning.
2022-07-28 19:50:24 +02:00
Markus Blatt
c22114af41
Handle injection/producer targets correctly for distributed wells.
...
We should never return in a function if there are no local
perforations for a distributed well, but that is what we did before
this fix.
2022-07-28 17:52:26 +02:00
Markus Blatt
f7dec58ee2
Fix deadlock for distributed wells when calculating densities/pressures
...
There was a check that is supposed that all rates are zero but for
distributed wells it only checked local perforations. Of course that
can lead to different outcome on processes for distributed wells.
2022-07-15 17:58:04 +02:00
Markus Blatt
412cf1d6cd
Merge pull request #3976 from blattms/well-fix-distributed-tw
...
[bugfix] Fix well transmissibility weights for distributed wells.
2022-07-15 10:39:48 +02:00
Markus Blatt
bfd1d3187a
[bugfix] Fix well transmissibility weights for distributed wells.
...
If we compute a sum over all perforations than we need to cater for the
case of distributed wells. That is we need to also sum up over all processes
involved after performing the local sum.
One of these global sums was missing in computeWellConnectionDensitesPressures
for producers when we compute the weights based on well transmissibilities.
2022-07-13 13:40:16 +02:00
Elyes Ahmed
cd169660e8
rewriting MaxWellConnections
2022-07-08 13:44:38 +02:00
Tor Harald Sandve
04b0c3515d
Merge pull request #3957 from totto82/regStw
...
regularize equation for problematic std wells
2022-06-30 11:24:20 +02:00
Tor Harald Sandve
cf1abb086f
remove msw(ms) from regulariztion parameter
2022-06-29 15:39:51 +02:00
Kai Bao
1b3cee8088
using C++17 style for to reduce nesting level of for loop
2022-06-29 14:20:35 +02:00
Tor Harald Sandve
eef455106d
regularize equation for std wells
2022-06-29 12:47:44 +02:00
Kai Bao
64143cd417
when a valve is shut, the rate and pressure drop will be zero
2022-06-29 11:54:36 +02:00
Arne Morten Kvarving
133856b943
changed: avoid lambda capture
...
clang warns it's not necessary to use a capture for this.
i opted to make it constexpr and avoid the capture with gcc as well.
2022-06-27 14:47:56 +02:00
Markus Blatt
25a92c2c2c
Merge pull request #3958 from Tongdongq/fix-gpu-well-apply
...
Fix stdwell apply on GPU
2022-06-24 16:02:34 +02:00
Tong Dong Qiu
1f1fa10927
Fix stdwell apply on GPU
2022-06-24 13:48:59 +02:00
Arne Morten Kvarving
da57e15271
fixed: fix build with dune 2.6
2022-06-20 14:16:43 +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
Tor Harald Sandve
60d0fe0f87
Merge pull request #3879 from totto82/rsrvinj2
...
WIP implement rsrv item 10 WCONINJE
2022-06-16 08:30:31 +02:00
Atgeirr Flø Rasmussen
7fe3839500
Use MatrixBlock consistently, also whitespace cleanup.
2022-06-10 11:08:24 +02:00
hnil
06a8b0ee3d
fixed bug after changing duneD to invDuneD
2022-06-08 17:03:27 +02:00
hnil
4ead854b69
- taking pullrequest information into account
...
- Moving transfere level to be template of OwningTwolevelPrecontitioner
2022-06-08 17:03:27 +02:00
hnil
8f4cf8a952
removed compiler warnings
2022-06-08 17:03:27 +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
hnil
5a917dd11e
changed diagonal elements for cprw on multiscale wells
2022-06-08 17:03:27 +02:00
hnil
a8acd40f4a
Changes to make ms wells work with cprw
2022-06-08 17:03:27 +02:00
hnil
12fba38d99
Added maximum sparsity pattern which made full reuse possible. May degrade som of the performance fore not full reuse(not tested).
2022-06-08 17:02:02 +02:00
hnil
aba1d5047d
working with no resue on norne
2022-06-08 17:02:02 +02:00
hnil
c697e70a69
changed definition of extra equations. made norne go to step 27. HACK
2022-06-08 17:02:02 +02:00
hnil
4975d5d9e7
- fixed extended communicator
...
- fixed scaling of well cpr
2022-06-08 17:02:02 +02:00
hnil
da572d1f60
-Fixed buges related to cpr with wells.
...
- change interfaces to have access to pressureVarIndex
- added option in cmake files to propagate checking in dune-istl
2022-06-08 17:02:02 +02:00
Atgeirr Flø Rasmussen
fef06a77af
Updated for upstream changes.
2022-06-08 17:02:02 +02:00
hnil
f3acfcde0b
Adding functions for pressure system manipulation to well models.
...
Also add well-aware operator and transfer policy.
This will be used for CPR with custom operators.
2022-06-08 17:01:33 +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
147fe77779
Merge pull request #3934 from totto82/stopnocross
...
stopped wells where cross flow is not allowed are not added to the container
2022-06-07 10:36:07 +02:00
Tor Harald Sandve
cec8e7c724
Merge pull request #3924 from totto82/steeringBHPtoHighestRate
...
Steer bhp towards the solution with the highest production rate
2022-06-07 10:35:53 +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
Bård Skaflestad
be4221ea92
Merge pull request #3869 from plgbrts/vapoilwat
...
adding three-phase simulator including water evaporation and salt precipitation
2022-05-25 15:33:53 +02:00
Tor Harald Sandve
6f410e7b03
Steer bhp towards the solution with the highest production rate
2022-05-25 15:30:36 +02:00
Kai Bao
15bf35ffe0
removing unused well_state0 in iterateWellEqWithControl
...
for MSW.
2022-05-18 10:18:35 +02:00
Paul Egberts
a255613452
Merge branch 'master' into vapoilwat
2022-05-11 11:55:54 +02:00
Paul Egberts
6fe10a3e23
add throw for case msw is true and vapwat is true
2022-05-11 11:50:54 +02:00
Tor Harald Sandve
ea82bebb3a
Merge pull request #3909 from totto82/fix_reg_msw
...
reset regularize_ before starting the inner iterations
2022-05-03 13:44:00 +02:00
Paul Egberts
5a23084846
restored MultisegmentWellEval.cpp
2022-05-03 11:54:41 +02:00
Tor Harald Sandve
dfe0982286
reset regularize_ before starting the inner iterations
2022-05-03 08:25:26 +02:00
Kai Bao
57d8f1aa24
update primary variables in prepareTimeStep
...
it should not change running results.
2022-05-02 13:47:16 +02:00
Kai Bao
7145ec32ee
renaming function updateWellState
...
to updatePrimaryVariablesNewton
this should be a fallout during the well code refactoring
2022-04-29 12:55:54 +02:00
Arne Morten Kvarving
7edca13df6
fixed: add missing config.h include
2022-04-28 11:38:02 +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
Atgeirr Flø Rasmussen
374b25639e
Merge pull request #3872 from totto82/fix_stop_inoperable
...
Fix STOP in combination with inoperable/unsolvable
2022-04-25 10:31:02 +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
969dff4ede
Merge pull request #3864 from totto82/regMSW
...
regularize MSW equation when iter > strict_inner_iter
2022-04-21 09:15:15 +02:00
Tor Harald Sandve
03c1884533
Merge pull request #3873 from totto82/aprox_thp
...
tighten approximated solution bhpFromThpLimit from 3 to 0.1 bar
2022-04-21 08:56:57 +02:00
Tor Harald Sandve
fd6cf1ccbd
regularize MSW equation when iter > strict_inner_iter
2022-04-21 08:44:50 +02:00
Håkon Hægland
9d04895ddb
Fix assertion error for 2p oil water
...
VFP calculations for two phase gas lift does not work unless the
rates are adpated to include a zero gas rate.
2022-04-20 21:47:15 +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
Tor Harald Sandve
a1d11540a6
tighten approximated solution bhpFromThpLimit from 3 to 0.1 bar
2022-04-19 14:21:20 +02:00
Paul Egberts
17f2365406
clean up comments
2022-04-11 22:15:35 +02:00
Paul Egberts
c2fa5fc5a8
adding three-phase simulator including water evaporation and saltpreciopitation
2022-04-11 21:56:44 +02:00
Tor Harald Sandve
edf8786a58
avoid throw for nan residuals instead return well as unconverged
2022-04-11 09:52:25 +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
Paul Egberts
ab3be6dce4
adjustments to account for vaporized water
2022-04-08 22:36:39 +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
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
Atgeirr Flø Rasmussen
245a87e296
Merge pull request #3851 from totto82/doublecheckecon
...
Avoid premature closing of wells due to econ limits
2022-04-01 10:01:47 +02:00
Kai Bao
aa633ff98f
reconstructing the if structure for has_energy
...
in StandardWell<TypeTag>::
calculateSinglePerf()
2022-03-31 22:38:55 +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
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
2d6794f077
Merge pull request #3849 from hakonhagland/glift_debug_rank
...
Cleanup gaslift debugging output code
2022-03-24 14:13:33 +01:00
Håkon Hægland
a3c131955f
Omit one redundant debugging message
2022-03-24 13:47:57 +01:00
Håkon Hægland
fbd6c03dd6
Cleanup glift debugging output code
2022-03-24 12:42:46 +01:00
Tor Harald Sandve
32dfdc6198
improve initialization msw new wells
2022-03-24 09:53:46 +01:00
Tor Harald Sandve
519b5dd8cc
Merge pull request #3810 from totto82/refactor_bhpFromThpLimit_1
...
Refactor bhp from thp limit
2022-03-22 13:57:52 +01:00
Tor Harald Sandve
c067e5fafd
Merge pull request #3834 from totto82/avoid_closing
...
Handle case where bhp target is violated
2022-03-22 11:56:21 +01:00
Tor Harald Sandve
7d5a0a74eb
Handle case where bhp target is violated
2022-03-21 09:52:41 +01:00
Kai Bao
e05a0b276e
fixing the scaling of segment rates
...
when initial segment rate is zero.
2022-03-14 14:01:24 +01:00
Kai Bao
ccfd4152d3
using addition to update segment pressure
...
when bhp is changed. It is much safer and more reasonable.
using multiplication is more likely to result in dramatic values.
2022-03-09 14:23:59 +01:00
Håkon Hægland
3cf181b2ee
Throw exception instead of using assert
...
Throw an exception if two-phase gas lift optimization is used for
other phases than oil and water.
2022-03-07 15:58:11 +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
8cfbe1d791
Merge pull request #3816 from totto82/control_well_testing
...
Set well control to thp or bhp in well testing
2022-02-23 10:36:17 +01:00
Markus Blatt
1d44a4beac
Merge pull request #3817 from bska/fix-pedantic-warning
...
Remove Extraneous Semicolon
2022-02-18 10:10:44 +01:00
Bård Skaflestad
e1d55d4017
Remove Extraneous Semicolon
...
This generates warnings when using GCC's "-Wpedantic" option.
2022-02-17 23:13:31 +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
Håkon Hægland
c7aa43a82b
Rename some methods and variables.
...
Renames some methods and variables to reflect that the well is no
longer necessarily a StandardWell. It can be either a MultisegmentWell
or a StandardWell. This should avoid confusion about the nature of
the variable.
2022-02-15 10:21:09 +01:00
Håkon Hægland
54160827de
Add gaslift optimization support for MSW.
...
Implements gas lift optimization support for multisegmented wells (MSW).
2022-02-14 21:38:50 +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
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
Håkon Hægland
65c323e1a4
Replace assert with warning.
...
Replace assert with warning when group rates exceeds target.
2022-01-31 01:52:36 +01:00
Håkon Hægland
8810fa65af
Cleanup code in GasLiftSingleWellGeneric
...
Introduces two new data types BasicRates and LimitedRates to capture
oil, gas, and water rates, and whether they have been limited by well
or group targets. This reduces the number of variables that are passed
to and returned from various methods and thus makes the code easier to
read.
2022-01-31 01:39:20 +01:00
Håkon Hægland
a14ed57921
Silence reorder warning in GasLiftCommon
2022-01-25 13:31:49 +01:00
Håkon Hægland
4970b0641e
Improve debugging tools in gaslift code.
...
Introduces a gaslift debugging variable in ALQState in WellState. This
variable will persist between timesteps in contrast to when debugging
variables are defined in GasLiftSingleWell, GasLiftGroupState, or GasLiftStage2.
Currently only an integer variable debug_counter is added to ALQState,
which can be used as follows: First debugging is switched on globally
for BlackOilWellModel, GasLiftSingleWell, GasLiftGroupState, and
GasLiftStage2 by setting glift_debug to a true value in BlackOilWellModelGeneric.
Then, the following debugging code can be added to e.g. one of
GasLiftSingleWell, GasLiftGroupState, or GasLiftStage2 :
auto count = debugUpdateGlobalCounter_();
if (count == some_integer) {
displayDebugMessage_("stop here");
}
Here, the integer "some_integer" is determined typically by looking at
the debugging output of a previous run. This can be done since the
call to debugUpdateGlobalCounter_() will print out the current value
of the counter and then increment the counter by one. And it will be
easy to recognize these values in the debug ouput. If you find a place
in the output that looks suspect, just take a note of the counter
value in the output around that point and insert the value for
"some_integer", then after recompiling the code with the desired value
for "some_integer", it is now easy to set a breakpoint in GDB at the
line
displayDebugMessage_("stop here").
shown in the above snippet. This should improve the ability to quickly
to set a breakpoint in GDB around at a given time and point in the simulation.
2022-01-23 20:37:26 +01:00
Tor Harald Sandve
2fdff5c1e4
Merge pull request #3758 from totto82/fixAssertInWECON
...
Handle case where no completions have ratio above the limit while the well has
2022-01-21 12:31:11 +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
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
Bård Skaflestad
9fc9f5421c
Merge pull request #3771 from totto82/fixUpdateGR
...
Update guiderates after with new rates from newly opened wells
2022-01-21 10:33:00 +01:00
Tor Harald Sandve
d1c2032e73
Update guiderates after with new rates from newly opened wells
2022-01-21 09:15:00 +01:00
Atgeirr Flø Rasmussen
357ba55de5
Merge pull request #3773 from GitPaean/return_zero_thp_zero_rate_inj
...
return zero thp value for extremely small injection rate
2022-01-20 14:49:25 +01:00
Tor Harald Sandve
a57f92527f
Merge pull request #3777 from totto82/support_min_wait_glift
...
support none trivial item 3 in LIFTOPT.
2022-01-19 14:58:50 +01:00
Atgeirr Flø Rasmussen
9f7d4f2fc2
Merge pull request #3760 from GitPaean/thp_fixing_model_2
...
fixing the failure that bhp could not be calculated with thp limit
2022-01-19 12:48:39 +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
Kai Bao
913ad21733
return zero thp value for extremely small injection rate
...
it is a finding from one of the test case.
2022-01-18 10:12:20 +01:00
Bård Skaflestad
3317f10c4a
Merge pull request #3729 from goncalvesmachadoc/gaswater_brine
...
allow for gas-water + brine
2022-01-12 12:31:34 +01:00
Bård Skaflestad
abf92eed52
Accumulate Dissolved Gas and Vaporized Oil Flow Rates Across Ranks
...
This is needed to get consistent estimates for the summary vectors
* {F,G,W}OP{R,T}{F,S} -- Free/Vaporized Oil Production
* {F,G,W}GP{R,T}{F,S} -- Free/Dissolved Gas Production
in the case of distributed wells.
Thanks to [at]blattms for the suggested fix.
2022-01-10 14:14:39 +01:00
Kai Bao
2b9b6e5155
addressing reviewing comments for PR#3760
2022-01-10 11:33:11 +01:00
Kai Bao
dec3100247
fixing a bug in funcion bisectBracket
2022-01-09 00:21:31 +01:00
Kai Bao
3b7e62979c
refactoring to shorten the function computeBhpAtThpLimitProd
...
better readibility hopefully.
2022-01-07 15:49:48 +01:00
Kai Bao
5824acbf92
making bruteforce bracket as a function
...
for better readbility.
2022-01-07 15:13:33 +01:00
Kai Bao
3273f310e3
prototyping the brute force for bracketing bhp
...
to fix the situation the existing approach fails.
2022-01-07 14:32:16 +01:00
Tor Harald Sandve
3e4e62bc4f
Merge pull request #3751 from hakonhagland/glift_swg_fx3
...
Refactor some methods in `GasLiftSingleWellGeneric.cpp` (part 2)
2022-01-03 14:14:15 +01:00
Joakim Hove
6b92443cb4
Downstream filesystem reorganisation in opm-common
2022-01-02 14:33:34 +01:00
Håkon Hægland
4bdf7c1b58
Refactor methods getXyzRateWithLimit_()
...
Refactors getOilRateWithLimit_(), getGasRateWithLimit_(), and
getWaterRateWithLimit_() in GasLiftSingleWellGeneric.cpp. The
common part of the methods is split out into a new method called
getRateWithLimit_(). The purpose of the refactorization is to reduce
reptetive code and make the code easier to maintain.
2021-12-22 10:45:31 +01:00
Håkon Hægland
f28b906782
Made some methods in GasLiftGroupInfo const
...
This is in agreement with C++ Core Guidelines. A member function should
be marked const unless it changes the object’s observable state. This
gives a more precise statement of design intent, better readability, more
errors caught by the compiler, and sometimes more optimization opportunities.
2021-12-21 23:24:58 +01:00
Håkon Hægland
11ad879472
Make parameters to getLiquidRateWithGroupLimit_() const
...
To improve readability, we make the parameters of
getLiquidRateWithGroupLimit_() const as discussed in
https://github.com/OPM/opm-simulators/pull/3748
2021-12-20 23:19:40 +01:00
Håkon Hægland
837f33e679
Refactor some methods in GasLiftSingleWellGeneric.
...
Refactor getOilRateWithGroupLimit_(), getGasRateWithGroupLimit_(),
getWaterRateWithGroupLimit_(), and getLiquidRateWithGroupLimit_() into
a single generic method called getRateWithGroupLimit_().
2021-12-20 23:08:31 +01:00
Håkon Hægland
e388827d81
Fixup in GasLiftSingleWellGeneric
...
Consider all groups when reducing oil rate to group limits.
The current code just checks the first group limit in the set.
But there might be groups later in the set with more restrictive
limits, causing the oil rate to be reduced more than the first
limit.
2021-12-15 19:15:35 +01:00
Tor Harald Sandve
51d9b7ee11
Merge pull request #3719 from totto82/noIterPot
...
Do not iterate when computing well potentials for standard wells
2021-12-10 16:20:10 +01:00
Tor Harald Sandve
1baee5ec9b
Merge pull request #3715 from goncalvesmachadoc/vapwat
...
update parameters BlackoilFluidSystem
2021-12-09 15:37:49 +01:00
Håkon Hægland
738b5c5f18
Small clean up in GasLiftSingleWellGeneric.cpp
...
As discussed in PR #3728 , it is better to move the two methods
reduceALQtoGroupTarget() and checkGroupTargetsViolated() from
OptimizeState to the parent class, then we do not have to abuse
OptimizeState in maybeAdjustALQbeforeOptimizeLoop_() just to call
reduceALQtoGroupTarget().
Also fixes a typo (as discussed in PR #3729 ) in reduceALQtoGrouptTarget()
where the water rate is updated with the gas flow rate instead of the
water flow rate. Should be like this:
water_rate = -potentials[this->parent.water_pos_];
instead of
water_rate = -potentials[this->parent.gas_pos_];
2021-12-09 11:58:43 +01:00
Tor Harald Sandve
bd9e13d4bd
Merge pull request #3728 from totto82/fixGasliftGroupWell
...
Fix when both well and group control restrict gaslift
2021-12-09 08:12:31 +01:00
Atgeirr Flø Rasmussen
e2cdab208b
Merge pull request #3730 from atgeirr/fix-efficiency-alq-network
...
Account for efficiency when adding lift gas to network flows.
2021-12-09 07:49:16 +01:00
goncalvesmachadoc
b15b893b3a
add Index Traits
2021-12-08 16:52:23 +01:00
Atgeirr Flø Rasmussen
819d88a1a7
Account for efficiency when adding lift gas to network flows.
2021-12-08 15:54:12 +01:00
Tor Harald Sandve
66425eb7c2
WIP fix when both well and group control restrict gasslift
2021-12-08 09:36:26 +00:00
Atgeirr Flø Rasmussen
69b81c4fbf
Merge pull request #3724 from totto82/CO2STORETHERMAL
...
Add gasoil + thermal simulator
2021-12-08 08:33:46 +01:00
Tor Harald Sandve
31954a487b
Merge pull request #3720 from totto82/operSolvEcon
...
Only check operable wells for wecon
2021-12-07 12:44:24 +01: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
Kai Bao
148fb4a282
Merge pull request #3712 from totto82/fixAssertInStw
...
Fix assert in relaxation factor in std well
2021-12-06 11:09:08 +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
goncalvesmachadoc
90380c35ad
update parameters BlackoilFluidSystem
...
fix
update parameters BlackoilFluidSystem
2021-11-29 16:38:43 +01: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
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
Bård Skaflestad
d163bebcdc
Merge pull request #3699 from blattms/man-page-spelling
...
Adds manpage and fixes several spelling issue found by lintian
2021-11-17 09:59:50 +01:00
Kai Bao
c2e18fd077
Merge pull request #3573 from totto82/crossFlowEcon
...
remove assert and handle opposite rates in wecon related fractions.
2021-11-15 15:31:05 +01:00
Markus Blatt
a2246d331b
Spelling fixes
...
Gbp-Pq: Name 0005-Spelling-fixes.patch
2021-11-15 12:06:05 +01:00
Tor Harald Sandve
ef439cd6d6
Merge pull request #3678 from totto82/fixGasliftX2
...
Fix gasslift reduction when under LRAT, GRAT or WRAT
2021-11-11 13:11:31 +01:00
Tor Harald Sandve
cd9e742ad5
remove assert and handle opposite rates in wecon
2021-11-10 13:14:22 +01:00
Bård Skaflestad
6f0b06715e
Merge pull request #3676 from akva2/use_single_sum_call
...
GasLiftGroupInfo: use a array to allow for one sum call
2021-11-10 10:16:39 +01:00
Arne Morten Kvarving
7bce64cde9
use multi-var broadcast for rates
2021-11-10 08:56:04 +01:00
Arne Morten Kvarving
09f61e0e6f
WellGroupHelpers: use an array to allow for one sum call
2021-11-10 08:50:39 +01:00
Arne Morten Kvarving
04ed31f800
GasLiftGroupInfo: use an array to allow for one sum call
2021-11-10 08:48:33 +01:00
Tor Harald Sandve
a765ab213b
fix WRAT GRAT reduction
2021-11-09 13:40:55 +01:00
Bård Skaflestad
c563f14aff
Merge pull request #3673 from totto82/fixGasliftX
...
Add check for group production control for LRAT and WRAT in the gasslift code
2021-11-09 13:32:02 +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
Joakim Hove
34260544eb
Merge pull request #3647 from joakim-hove/update-rates-after-actionx
...
Update rates after actionx
2021-11-05 12:01:22 +01:00
Joakim Hove
fd5640774b
Call SingleWellState::update_targets for ACTIONX affected wells
2021-11-05 09:48:27 +01:00
Bård Skaflestad
07d6de3bbc
Switch to Passing VFP Wrapper Tables as References
...
We don't need to copy those mapping tables on each call.
2021-11-04 21:28:55 +01:00
Tor Harald Sandve
f755cc3be1
Merge pull request #3645 from totto82/fixNoWellReduction
...
Adjust reduction rate when well control is considered for GRUP
2021-11-03 15:32:18 +01:00
Bård Skaflestad
2971a3f051
Merge pull request #3659 from joakim-hove/refactor-wellstate-init
...
Refactor wellstate init
2021-11-03 13:16:34 +01:00
Joakim Hove
44ad5ab190
Remove superfluos is injector or producer test
2021-11-03 12:35:28 +01:00
Joakim Hove
05317e1d72
Extract functionality to update target rates to SingleWellState
2021-11-03 12:30:40 +01:00
Joakim Hove
5a986ee430
Move updateStatus functionality to SingleWellState
2021-11-03 12:30:40 +01:00
Joakim Hove
53dba36513
Move resetConnectionFactor to SingleWellState
2021-11-03 12:30:40 +01:00
Tor Harald Sandve
a57374fae9
Adjust reduction rate when well control is considered for GRUP
...
The reduction rate is computed differently for cases without wells under GRUP
For a well to check whether to switch to GRUP it needed to use the reduction rate
that would have been computed if this particular well was under GRUP control
and thus recompute the reduction rate without entering the no-grup path
2021-11-03 11:42:18 +01:00
Bård Skaflestad
1e34d714bf
Report Well Level Production Guide Rates if Group Controlled
...
This commit extends the guide rate reporting to always extracting
and reporting pertinent production guide rates at the well level
(i.e., WxPGR) if at least one of the groups in the well's upline has
an entry in GCONPROD. This is for increased compatibility with
ECLIPSE.
2021-11-02 16:19:56 +01:00
Bård Skaflestad
0c70eac490
Report Well Level Injection Guide Rates if Group Controlled
...
This commit uses the new GroupTreeWalker helper class to ensure that
we always extract and report pertinent injection guide rates at the
well level (i.e., WxIGR) if at least one of the groups in the well's
upline has an entry for the corresponding phase in GCONINJE. This
is for increased compatibility with ECLIPSE.
Prior to this change we would report zero-valued WWIGR vectors on a
real field case which made analysing simulation results needlessly
difficult.
2021-11-02 16:19:56 +01:00
Bård Skaflestad
2b0aa379f5
Extract Group Tree Walk to Helper Class
...
This commit extracts a helper class, GroupTreeWalker, from the
current implementation of 'calculateAllGroupGuiderates()'. This is
in preparation of adding a similar approach to extracting WxIGR for
all wells for which at least one group in the upline has an entry in
GCONINJE.
The user can add visitor operations for wells and groups, typically
with side effects, and then choose whether to run a pre-order walk
(visit groups before their children) or a post-order walk (visit
children-i.e., wells, before their parents).
2021-11-02 16:19:56 +01:00
Joakim Hove
ec780676e2
Split initSinglewell for producer and injector
2021-11-01 16:02:34 +01:00
Joakim Hove
d213bc9d78
Initialize static perforation data in SingleWellState constructor
2021-11-01 16:02:34 +01:00
Joakim Hove
6c16b5dbb8
Move variable to local scope
2021-11-01 16:02:34 +01:00
Joakim Hove
93218b05c2
Use multiple returns in init single well
2021-11-01 16:02:34 +01:00
Joakim Hove
2527970d11
Replace two assert() with one throw
2021-11-01 16:02:34 +01:00
Joakim Hove
029d1794f8
Remove local variable
2021-11-01 16:02:34 +01:00
Joakim Hove
807ac101d8
Add name member to SingleWellState
2021-11-01 16:02:34 +01:00
Joakim Hove
03cf7b0327
Move updateStatus functionality to SingleWellState
2021-11-01 16:02:31 +01:00
Joakim Hove
129288b2bd
Add operator[] to WellState
2021-11-01 13:47:40 +01:00
Joakim Hove
ab63d14bcd
Remove debugging aid GroupState::dump
2021-11-01 13:47:36 +01:00
Joakim Hove
d150f400fe
Move code from WellState to SingleWellState
2021-11-01 13:23:17 +01:00
Bård Skaflestad
767b5ca58b
Switch Guide Rate Accumulation to Post-Order Traversal
...
This guarantees, under the assumption that the group tree does not
have cycles, that we do not accumulate group-level guide rate values
until all of its children are fully evaluated. We use an iterative
depth-first post-order tree traversal with an explicit stack instead
of a recursive implementation.
The previous implementation, which tried to do the same kind of
child-to-parent accumulation, might visit a parent group multiple
times which in turn might lead to losing updates. This is a more
formalised approach to the value accumulation than was originally
employed.
2021-10-29 21:21:49 +02: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
Bård Skaflestad
3cfec109db
Merge pull request #3620 from blattms/removeSetupCart-rebased
...
[refactor] Remove cartesianToCompressed Mapping from well model
2021-10-25 16:43:08 +02:00
Markus Blatt
fa9e93529b
Only consider perforation in the interior of the local grid.
...
This is needed for distributed wells to save most of the code
from checking whether a perforation is in the interior.
We add new methods compressedIndexForInterior that return -1
for non-interior cells and use that for the wells. This restores
the old behaviour before 1cfe3e0aad
2021-10-19 16:50:42 +02:00
Bård Skaflestad
67f4cf62f1
Report Group Level Injection Guide Rates if Present
...
We used to tie reporting these quantities to whether or not a group
had any guide rates for production (GuideRate::has()), but this is
clearly insufficient for injection guide rates.
2021-10-19 14:15:36 +02:00
Bård Skaflestad
a7c6203a73
Initialise Guide Rate Object From Restart File
...
This commit adds an overload set named
loadRestartGuideRates
which, collectively, initialises the contained GuideRate object
using guide rate values from the restart file. This is necessary,
but not quite sufficient, to restart models in prediction mode with
group-level constraints.
2021-10-19 13:22:31 +02:00
Bård Skaflestad
8014442a1d
Split Restart File Loading Into Multiple Stages
...
Mostly for readability in preparation of initialising the guide rate
object with values from the restart file. The new stages, each with
its own 'loadRestart*Data()' member function are
- Connection
- Segment
- Well
- Group
While here, also switch to using std::any_of() in place of a raw
loop.
2021-10-19 13:22:31 +02:00
Bård Skaflestad
37f589bff1
Merge pull request #3598 from bska/report-siunits-injgr-grouplevel
...
Report Group Level Inject Guiderate Values in Strict SI Units
2021-10-19 13:20:58 +02:00
Markus Blatt
23e0b06387
Allow communicators other than MPI_COMM_WORLD.
2021-10-19 12:44:41 +02:00
Bård Skaflestad
89adc1919b
Merge pull request #3611 from joakim-hove/broadcast-wtest-state
...
Broadcast wtest state
2021-10-19 12:01:17 +02:00
Joakim Hove
9a9ccb90b8
Make sure to filter out wells from other processes in WellTestState
2021-10-19 11:16:41 +02:00
Joakim Hove
c8cbd32f85
Add method WellContainer<T>::wells()
2021-10-19 11:16:41 +02:00
Tor Harald Sandve
1cfe3e0aad
remove cartesian to compressed vector
2021-10-19 11:03:46 +02:00
Bård Skaflestad
1d0ee3c005
Report Group Level Inject Guiderate Values in Strict SI Units
...
The output layer expects its input values to be strictly SI, but we
know that the GuideRate container's values are in output units.
Forgotten in PR #3467 (commit 517db198f8
).
2021-10-19 09:32:38 +02:00
Tor Harald Sandve
160c80b574
check operability history wells
2021-10-18 09:21:04 +02:00
Tor Harald Sandve
d925e74b76
Merge pull request #3569 from totto82/operInj
...
check operability injectors
2021-10-18 08:50:50 +02:00
Tor Harald Sandve
350875e7c5
Merge pull request #3583 from totto82/brinethermal
...
brine+thermal
2021-10-15 14:41:26 +02:00
Atgeirr Flø Rasmussen
4c213b25e0
Order of initialization should match order of definition.
2021-10-15 13:24:55 +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
70c9d2e237
Merge pull request #3590 from daavid00/micp-2021-10
...
micp
2021-10-14 22:28:28 +02:00
daavid00
48b175904a
first version of micp implementation in flow
2021-10-14 17:44:57 +02:00
Atgeirr Flø Rasmussen
5e1853b8e4
Merge pull request #3588 from totto82/improve_switch_output
...
make multiple well control switching output more readable
2021-10-14 10:56:53 +02:00
Tor Harald Sandve
83ef3730b2
make multiple well control switching output more readable
2021-10-14 09:40:34 +02:00
Joakim Hove
2c68f12769
Load WellTestState from restart file
2021-10-13 08:46:48 +02:00
Markus Blatt
cc1adf0b2a
Merge pull request #3586 from blattms/tracer-use-well-container
...
[refactor] Use well_container and PerforationData for tracers
2021-10-12 09:55:33 +02:00
Joakim Hove
b6d043c545
Merge pull request #3580 from joakim-hove/wtest-rename
...
Remove ecl wells argument to check wells for testing
2021-10-10 09:54:16 +02:00
Joakim Hove
4da52424c7
Add const
2021-10-08 20:58:49 +02:00
Markus Blatt
fc7609bfd2
[bugfix] Make sure all ranks participate in collective communication.
...
No need an early return if there are no local wells, anyway. The
algorithms can handle empty containers like a charm.
2021-10-08 16:01:18 +02:00
Markus Blatt
1520f9c85f
[bugfix] handle exception when linearizing the wells.
...
As multisegment wells may throw in applyUMFPack this is now needed and
the exception needs to communicated to all processes. We do this in
the linearize method of the well model.
Before this change this is what could happen:
- The process with the exception would have chopped the time step
- The others would have successfully setup the systems and entered the
linear solve
This poduced a deadlock. One processes was waiting in
OPM_END_PARALLEL_TRY during the setup of the shorter time step and in
collective communication during the setup of the linear solver for the
unchopped time step.
2021-10-08 16:01:07 +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
Joakim Hove
0ca1f7a8b2
WellTestState::updateWells -> WellTestState::test_wells
2021-10-08 15:23:03 +02:00
Joakim Hove
0e9d634397
Do not pass ecl wells to WellTestState::updateWells()
2021-10-08 15:17:43 +02:00
Joakim Hove
0e365abe36
WellTestState::dropCompletion -> WellTestState::open_completion
2021-10-08 10:40:38 +02:00
Joakim Hove
0648d6bf5d
WellTestState::openWell -> WellTestState::open_well
2021-10-08 10:17:14 +02:00
Joakim Hove
d806762f7a
WellTestState::hasWellClosed -> WellTestState::well_is_closed
2021-10-08 10:17:14 +02:00
Joakim Hove
52b2c096a2
WellTestState::closeWell -> WellTestState::close_well
2021-10-08 10:17:14 +02:00
Joakim Hove
feaaebf3fc
WellTestState::hasCompletion -> WellTestState::completion_is_closed
2021-10-08 09:06:21 +02:00
Markus Blatt
d4ab9ea4b1
[refactor] Use well_container and PerforationData for tracers
...
This saves some (expensive?) lookups that already have been done
in the well model. We had to make the well_container accessible from
the well model for this.
Using the perforation data will automatically make sure that the
perforations are not shut and reside on this process in a parallel run.
2021-10-07 21:55:41 +02:00
Joakim Hove
e0ea090960
WellTestState::addClosedCompletion - WellTestState::close_completion
2021-10-07 14:56:20 +02:00
Joakim Hove
ce78326ac1
WellTestState::openAllCompletions -> WellTestState::open_completions
2021-10-07 14:53:06 +02:00
Joakim Hove
0c40771c7a
Merge pull request #3579 from joakim-hove/template-on-content-type
...
WTEST: only count actually closed wells.
2021-10-07 09:27:41 +02:00
Markus Blatt
011fb1034e
Merge pull request #3571 from atgeirr/allow-non-world-comm
...
Replacing use of MPI_COMM_WORLD with a variable communicator.
2021-10-06 15:52:17 +02:00
Joakim Hove
4816762b66
Well testing: only count actually closed wells. Change in opm-common
2021-10-06 15:32:17 +02:00
Joakim Hove
f27a82ebc3
Use plain WellTestState::hasWellClosed() without reason
2021-10-05 16:52:16 +02:00
Elyes Ahmed
0202b00d59
clean up after review
2021-10-05 13:07:52 +02:00
Elyes Ahmed
f53c597f90
Replacing use of MPI_COMM_WORLD with a variable communicator.
2021-10-05 13:07: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
Joakim Hove
122678e5ea
Remove unused function argument
2021-10-01 08:34:58 +02:00
Joakim Hove
2f94f0436b
Remove irrelevant private functions
2021-10-01 08:34:27 +02:00
Joakim Hove
38d327b447
Add Some documentation to WellState
2021-10-01 08:26:41 +02:00
Joakim Hove
2168b8c296
Merge pull request #3563 from totto82/openComp
...
open completions after well event
2021-09-30 16:43:39 +02:00
Tor Harald Sandve
1e547ff714
Merge pull request #3564 from totto82/moveCom
...
communicate before usage not after
2021-09-30 14:34:15 +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
Joakim Hove
6e37b9ae05
Merge pull request #3559 from joakim-hove/wtest-config-empty
...
Use WellTestConfig.empty() instead of size()
2021-09-30 10:31:17 +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
Joakim Hove
21c2dd0c1d
Use WellTestConfig.empty() instead of size()
2021-09-29 15:05:23 +02:00
Joakim Hove
fc139e844e
Use const reference
2021-09-29 11:07:21 +02:00
Joakim Hove
a527dc7fdd
Remove stale TODO
2021-09-28 23:45:40 +02:00
Joakim Hove
3aaaa23ed1
Implement connection rate summation in SingleWellState
2021-09-28 23:45:40 +02:00
Joakim Hove
86a0662381
Use std::reference_wrapper<> for parallel well info
2021-09-28 21:42:57 +02:00
Joakim Hove
cf340644b2
Add ParallelWellInfo member to SingleWellState
2021-09-28 21:42:57 +02:00
Bård Skaflestad
0b8778e432
Merge pull request #3547 from totto82/makeWTESTrobust
...
Make wtest more robust
2021-09-28 12:06:10 +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
Joakim Hove
ef12186d78
Remove unused query/switch code for GLO - it is always on
2021-09-27 14:11:54 +02:00
Markus Blatt
88ae5b5963
Merge pull request #3545 from blattms/fix-parallel-try-catch
...
[bugfix] Fix deadlocks because of parallel try-catch for some CO2 storage cases
2021-09-27 13:02:34 +02:00
Tor Harald Sandve
9381b0857b
updateWsolvent only after well container is created
2021-09-24 12:09:02 +02:00
Markus Blatt
5be027348a
Fix buggy interplay of parallel exceptions and communication.
...
There cannot happen any collective blocking communication within a
parallel try-catch clause if exceptions might be thrown before the
communication. The communication has to either be reached by all
processes or no processes.
2021-09-24 10:17:13 +02:00
Markus Blatt
f64230e462
Remove parallel try-catch from prepareTimeStep because of nestedness.
...
Although not declared as such, prepareTimeStep seems to be an internal
function (despite usage in a test) and hence error control can be done
in code calling it.
There was the following problem with the try-catch approach taken:
The calling site `BlackoilWellModel::assemble` looked like this:
```
OPM_BEGIN_PARALLEL_TRY_CATCH();
{
if (iterationIdx == 0) {
calculateExplicitQuantities(local_deferredLogger); // no parallel try-catch
prepareTimeStep(local_deferredLogger); //includes parallel try-catch
}
updateWellControls(local_deferredLogger, /* check group controls */ true);
// Set the well primary variables based on the value of well solutions
initPrimaryVariablesEvaluation();
maybeDoGasLiftOptimize(local_deferredLogger);
assembleWellEq(dt, local_deferredLogger);
}
OPM_END_PARALLEL_TRY_CATCH_LOG(local_deferredLogger, "assemble() failed: ",
terminal_output_);
```
calculateExplicitQuantities had no parallel-try-catch clause inside,
but prepareTimeStep had one.
Unfortunately, calculateExplicitQuantities might throw (on some
processors). In that case non-throwing processors will try to trigger a
collective communication (to check for errors) in
prepareTimeStep. While the one throwing will move to the
OPM_END_PARALLEL_TRY_CATCH_LOG macro at the end and also trigger a different
collective communication. Booom, we have a deadlock.
With this patch there is no (nested parallel)-try-catch clause in the
functions called. (And if an exception is thrown in prepareTimeStep, it
will be logged as being an assemble failure).
The other option would have been to add parallel-try-catch clauses
to all functions called. That would have created a lot more
synchronization points limiting scalability even further.
2021-09-24 10:15:28 +02:00
Markus Blatt
3cda8a2fdb
Added missing parallel try-catch clause for updatePrimaryIntensities.
...
As Problem::updatePrimaryIntensities might throw we need to do this
to prevent dealocks in parallel run in case problem occurs.
2021-09-24 09:25:44 +02:00
Markus Blatt
a927f8e23b
Unify parallel try-catch clauses with Macros and catch everything.
...
Not a big fan of Macros but here at least they seem ot be the only
option. The problem is that the catch clauses must all catch the same
exceptions that have a entry in ExceptionType, because they might be
nested. In addition we did not have a catch all clause, which is added
now and is needed in case a called method throws an unexpected exception.
2021-09-24 09:25:44 +02:00
Joakim Hove
a11e3222bd
Merge pull request #3534 from joakim-hove/use-single-well-state
...
Use single well state
2021-09-22 12:35:15 +02:00
Tor Harald Sandve
b294ea5d8b
Merge pull request #3490 from totto82/targUpdate
...
Update well rates from target during well/group control update
2021-09-22 12:26:29 +02:00
Tor Harald Sandve
eb4997a011
update gpmain before not after timestep
2021-09-21 14:03:35 +02:00
Joakim Hove
b2ac3eaa59
Merge pull request #3535 from totto82/storePrevWellTestState
...
add well_test_state to WGState
2021-09-21 11:44:58 +02:00
Joakim Hove
30bd1d6314
Merge pull request #3537 from totto82/openWellWtest
...
update status after WTEST
2021-09-21 11:42:22 +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
Joakim Hove
0472bc3bf2
Remove unused argument
2021-09-20 11:45:24 +02:00
Joakim Hove
5531120411
Use SingleWellState argument instead of full WellState
2021-09-20 11:45:24 +02:00
Bård Skaflestad
a8078ed695
Merge pull request #3528 from blattms/parallel-throw-untabulated
...
bugfix: Detect exception during beginReportStep in parallel & abort
2021-09-15 22:41:04 +02:00
Bård Skaflestad
90520f248f
Merge pull request #3527 from totto82/fixNupcol
...
pass updated well rates totarget reduction not the nupcol ones
2021-09-15 21:44:14 +02:00
Markus Blatt
b056557f57
bugfix: Detect exception during beginReportStep in parallel a. abort
...
Previously, exceptions happening at this stage have deadlocked
flow. E.g. UniformTabulated2DFunction in opm-material throws
a NumericalIssue if the values passed are outside the tabulated
reason. This function is e.g. called in 2-phase CO2-storage cases
during BlackoilModel::initializeWellState
BTW: This is only the first step as it is not very user friendly that
a simulation aborts at this (late) stage.
2021-09-15 20:50:49 +02:00
Tor Harald Sandve
bd066d9300
Merge pull request #3524 from totto82/speedUpPot
...
Do not iterate inside computeBhpFromThp in MSW
2021-09-15 12:44:52 +02:00
Tor Harald Sandve
dd454063d4
pass updated well rates totarget reduction not the nupcol ones + cleanup
2021-09-15 09:47:31 +02:00
Tor Harald Sandve
81d9a8c178
add option for relaxed convergence for stw
2021-09-14 14:32:14 +02:00
Tor Harald Sandve
49dfe1006f
cleanup
2021-09-13 15:11:38 +02:00
Tor Harald Sandve
43a858ef25
rename computeBhpFromThpPotential to computeBhpFromThpIterations in std wells
2021-09-13 14:07:21 +02:00
Tor Harald Sandve
c8a59946e3
avoid iter in computeBhpFromThp
2021-09-13 14:01:56 +02:00
Tor Harald Sandve
a799c6fc8c
Merge pull request #3522 from totto82/scalarPerfRate
...
make scalar version of computePerfRate for MSW
2021-09-13 13:39:47 +02:00
Tor Harald Sandve
bc1bc90504
Merge pull request #3520 from totto82/fixAssertGaslift
...
oil target may be limited by LRAT as well
2021-09-13 11:32:43 +02:00
Tor Harald Sandve
972a832d65
make scalar version of computePerfRate
2021-09-13 09:36:16 +02:00
Tor Harald Sandve
f203c2106e
only compute fip avg pressure when gpmaint
2021-09-10 15:49:02 +02:00
Tor Harald Sandve
305de4016e
oil target may be limited by LRAT as well
2021-09-10 13:19:07 +02:00
Arne Morten Kvarving
ce4028b2f0
drop using statement for getAllowCrossFlow
...
rather qualify member function calls with this->
2021-09-09 11:53:48 +02:00
Arne Morten Kvarving
7609f7e1f7
drop using statement for ebosCompIdxToFlowCompIdx
...
rather qualify member function calls with this->
2021-09-09 11:53:35 +02:00
Arne Morten Kvarving
36cec80269
drop using statement for flowPhaseToEbosPhaseIdx
...
rather qualify member function calls with this->
2021-09-09 11:53:35 +02:00
Arne Morten Kvarving
d2fb4f3266
drop using statement for flowPhaseToEbosCompIdx
...
rather qualify member function calls with this->
2021-09-09 11:53:35 +02:00
Arne Morten Kvarving
fc882fbc29
drop using statement for name
...
rather qualify member function calls with this->
2021-09-09 11:53:35 +02:00
Arne Morten Kvarving
ddf621acdd
drop using statement for phaseUsage
...
rather qualify member function calls with this->
2021-09-09 11:53:35 +02:00
Arne Morten Kvarving
824232b7c9
drop using statement for ipr_b_
...
rather qualify member variable with this->
2021-09-09 11:53:35 +02:00
Arne Morten Kvarving
115cfe26df
drop using statement for ipr_a_
...
rather qualify member variable with this->
2021-09-09 11:53:35 +02:00
Arne Morten Kvarving
14273b8c2d
drop using statement for connectionRates_
...
rather qualify member variable with this->
2021-09-09 11:53:35 +02:00
Arne Morten Kvarving
15b4ea672f
drop using statement for num_components_
...
rather qualify member variable with this->
2021-09-09 11:53:35 +02:00
Arne Morten Kvarving
9970fb4ab4
drop using statement for perf_depth_
...
rather qualify member variable with this->
2021-09-09 11:53:35 +02:00
Arne Morten Kvarving
78a4aa3ede
drop using statement for gravity_
...
rather qualify member variable with this->
2021-09-09 11:53:34 +02:00
Arne Morten Kvarving
5c3e13abd5
drop using statement for well_efficiency_factor_
...
rather qualify member variable with this->
2021-09-09 11:53:34 +02:00
Arne Morten Kvarving
4a0aa788ee
drop using statement for saturation_table_number_
...
rather qualify member variable with this->
2021-09-09 11:53:34 +02:00
Arne Morten Kvarving
b34808895a
drop using statement for well_index_
...
rather qualify member variable with this->
2021-09-09 11:53:34 +02:00
Arne Morten Kvarving
bfb7d2a466
drop using statement for param_
...
rather qualify member variable with this->
2021-09-09 11:53:34 +02:00
Arne Morten Kvarving
6f4f41f080
drop using statement for well_cells_
...
rather qualify member variable with this->
2021-09-09 11:53:34 +02:00
Arne Morten Kvarving
d10fa061c3
drop using statement for number_of_phases_
...
rather qualify member variable with this->
2021-09-09 11:53:34 +02:00
Arne Morten Kvarving
72b14cf07e
drop using statement for number_of_perforations_
...
rather qualify member variable with this->
2021-09-09 11:53:34 +02:00
Arne Morten Kvarving
aa389ff4f8
drop using statement for ref_depth_
...
rather qualify member variable with this->
2021-09-09 11:53:34 +02:00
Arne Morten Kvarving
0f6e07676e
drop using statement for well_ecl_
...
rather qualify member variable with this->
2021-09-09 11:53:34 +02:00
Arne Morten Kvarving
af745f26ef
drop unused using statements
2021-09-09 11:53:33 +02:00
Tor Harald Sandve
ea392b58ce
Merge pull request #3514 from totto82/fixEmptyRegion
...
Handle empty region in average calculator
2021-09-09 09:06:00 +02:00
Tor Harald Sandve
a1e70711a6
Handle empty region in average calculator
2021-09-09 08:17:45 +02:00
Bård Skaflestad
42f86ce2c4
Merge pull request #3511 from akva2/drop_using_statements
...
Drop using statements
2021-09-08 20:59:09 +02:00
Tor Harald Sandve
3b7cf9a565
Merge pull request #3506 from totto82/relaxWell
...
relax well convergence for the last newton iterations
2021-09-08 10:46:14 +02:00
Tor Harald Sandve
f3513a31eb
add option for relaxed well convergence for the last netwon iterations
2021-09-08 09:58:14 +02:00
Tor Harald Sandve
3b5a040197
Merge pull request #3498 from totto82/gpmaint
...
Support for gpmaint
2021-09-07 12:38:48 +02:00
Arne Morten Kvarving
ae212ff883
drop using statement for ipr_b_
...
rather qualify member variable with this->
2021-09-07 11:26:33 +02:00
Arne Morten Kvarving
870cb04e68
drop using statement for ipr_a_
...
rather qualify member variable with this->
2021-09-07 11:26:33 +02:00
Arne Morten Kvarving
ad39dbdaf0
drop using statement for bore_diameters_
...
rather qualify member variable with this->
2021-09-07 11:26:33 +02:00
Arne Morten Kvarving
001d69c17b
drop using statement for perf_length_
...
rather qualify member variable with this->
2021-09-07 11:26:33 +02:00
Arne Morten Kvarving
475bea085c
drop using statement for perf_rep_radius_
...
rather qualify member variable with this->
2021-09-07 11:26:33 +02:00
Arne Morten Kvarving
2cc38ed396
drop using statement for connectionRates_
...
rather qualify member variable with this->
2021-09-07 11:26:33 +02:00
Arne Morten Kvarving
9b92837673
drop using statement for num_components_
...
rather qualify member variable with this->
2021-09-07 11:26:33 +02:00
Arne Morten Kvarving
1d15c3064a
drop using statement for index_of_well_
...
rather qualify member variable with this->
2021-09-07 11:25:09 +02:00
Arne Morten Kvarving
10b756d08c
drop using statement for well_index_
...
rather qualify member variable with this->
2021-09-07 11:25:09 +02:00
Arne Morten Kvarving
aaf216a29a
drop using statement for saturation_table_number_
...
rather qualify member variable with this->
2021-09-07 11:25:09 +02:00
Arne Morten Kvarving
55b52c3bd4
drop using statement for number_of_phases_
...
rather qualify member variable with this->
2021-09-07 11:25:09 +02:00
Arne Morten Kvarving
79801bb63a
drop using statement for number_of_perforations_
...
rather qualify member variable with this->
2021-09-07 11:25:09 +02:00
Arne Morten Kvarving
66e938b13e
drop using statement for well_cells_
...
rather qualify member variable with this->
2021-09-07 11:24:51 +02:00
Arne Morten Kvarving
97cbbe910a
drop using statement for perf_depth_
...
rather qualify member variable with this->
2021-09-07 11:24:51 +02:00
Arne Morten Kvarving
68786651f5
drop using statement for well_efficiency_factor_
...
rather qualify member variable with this->
2021-09-07 11:24:51 +02:00
Arne Morten Kvarving
73be71bff5
drop using statement for param_
...
rather qualify member variable with this->
2021-09-07 11:24:06 +02:00
Arne Morten Kvarving
79d8cf90fd
drop using statement for well_ecl_
...
rather qualify member variable with this->
2021-09-07 11:24:06 +02:00
Arne Morten Kvarving
874a7a3830
drop using statement for getALQ
...
rather qualify member function calls with this->
2021-09-07 11:24:06 +02:00
Arne Morten Kvarving
45de63f0f5
drop using statement for mostStrictBhpFromBhpLimits
...
rather qualify member function calls with this->
2021-09-07 11:24:06 +02:00
Arne Morten Kvarving
83671b3448
drop using statement for wfoam
...
rather qualify member function calls with this->
2021-09-07 11:24:06 +02:00
Arne Morten Kvarving
6cfd259f2f
drop using statement for wpolymer
...
rather qualify member function calls with this->
2021-09-07 11:24:06 +02:00
Arne Morten Kvarving
fd2185d3f9
drop using statement for wsolvent
...
rather qualify member function calls with this->
2021-09-07 11:23:25 +02:00
Arne Morten Kvarving
2c0743c888
drop using statement for wsalt
...
rather qualify member function calls with this->
2021-09-07 11:23:25 +02:00
Arne Morten Kvarving
dae0e73327
drop using statement for ebosCompIdxToFlowCompIdx
...
rather qualify member function calls with this->
2021-09-07 11:23:25 +02:00
Arne Morten Kvarving
9ebb315002
drop using statement for flowPhaseToEbosPhaseIdx
...
rather qualify member function calls with this->
2021-09-07 11:23:24 +02:00
Arne Morten Kvarving
35cc1b9a2a
drop using statement for flowPhaseToEbosCompIdx
...
rather qualify member function calls with this->
2021-09-07 11:23:24 +02:00
Arne Morten Kvarving
48e282bd65
drop using statement for getAllowCrossFlow
...
rather qualify member function calls with this->
2021-09-07 11:23:24 +02:00
Markus Blatt
0aa60a6f7c
Merge pull request #3508 from akva2/drop_aliases
...
drop aliases for Indices entries
2021-09-07 11:22:26 +02:00
Tor Harald Sandve
adda160098
clean-up
2021-09-07 09:47:41 +02:00
Tor Harald Sandve
f497fa0fd7
add support for region = 0 i.e. field
2021-09-07 08:53:09 +02:00
Tor Harald Sandve
f9832d8830
split RateConverter
2021-09-07 08:53:09 +02:00
Tor Harald Sandve
9d2f26f7e8
Add support for gpmaint
2021-09-07 08:52:52 +02:00
Arne Morten Kvarving
86a3a1bac7
drop unused using statements
2021-09-06 15:48:41 +02:00
Arne Morten Kvarving
2b1ac22c99
drop aliases for Indices entries
...
using Indices directly more clearly shows where the data comes
from without having to hop through hoops to do so.
2021-09-06 12:49:01 +02:00
Joakim Hove
2b3f3bf630
Use Group instance to check for available controls
2021-09-02 22:23:21 +02:00
Joakim Hove
bb23993556
Add GPMaint::State member to GroupState
2021-09-01 21:36:13 +02:00
Joakim Hove
7bb3dba310
Special case wells with no open connections in ParallelWellInfo
2021-08-31 17:31:45 +02:00
Tor Harald Sandve
7c8a39fdb6
fix after rebase
2021-08-26 10:32:58 +02:00
Tor Harald Sandve
514c2a67a9
always compute potentials
2021-08-26 10:29:25 +02:00
Tor Harald Sandve
7e3cca1316
iterate to get more accurate potentials for stw wells
2021-08-26 10:29:25 +02:00
Tor Harald Sandve
c4c0173d2b
Merge pull request #3486 from totto82/handleTrivialGR
...
always return fraction 1.0 if only one well is under group control
2021-08-26 10:09:55 +02:00
Tor Harald Sandve
002256a045
return fraction 1.0 if only one well under group control even in cases where the guide rate is zero
2021-08-26 08:27:06 +02:00
Joakim Hove
1a02ac7bd5
Merge pull request #3487 from joakim-hove/single-well-state
...
Single well state
2021-08-25 14:27:41 +02:00
Arne Morten Kvarving
fc3e4ab5bc
avoid unused variable warning
2021-08-25 08:28:57 +02:00
Joakim Hove
94d12e1230
Remove unused variable
2021-08-24 13:25:02 +02:00
Joakim Hove
5a721b8cd2
Remove WellMap from WellState
2021-08-24 13:25:02 +02:00
Joakim Hove
8f9e7d8e96
Add method PerfData::empty()
2021-08-24 12:46:24 +02:00
Joakim Hove
579aba8d08
Include perforation data in SingleWellState
2021-08-24 12:46:24 +02:00
Joakim Hove
46f45e3999
Add PerfData member to SingleWellState
2021-08-24 12:46:24 +02:00
Joakim Hove
8b652c821b
Use SingleWellState for reservoir rates
2021-08-24 12:46:24 +02:00
Joakim Hove
755de65eb4
Use SingleWellState to manage well surface rates
2021-08-24 12:46:24 +02:00
Joakim Hove
8937c9cba9
Refactor sumWellRates to accept bool argument
2021-08-24 12:46:24 +02:00
Tor Harald Sandve
0b1a909ee2
guards for one-phase flow
2021-08-24 12:06:03 +02:00
Joakim Hove
77a9fd352b
Add SegmentState member to SingleWellState
2021-08-23 13:17:24 +02:00
Joakim Hove
67bd2fd333
Add productivity_index to SingleWellState
2021-08-23 12:05:26 +02:00
Joakim Hove
2f504536f4
Add well potentials to SingleWellState
2021-08-23 12:05:26 +02:00
Joakim Hove
e84eaa3179
Add dissolved_gas_rate and vaporized_oil_rate to SingleWellState
2021-08-23 12:05:26 +02:00
Joakim Hove
baeeb34508
Merge two perforation data members in WellState
2021-08-23 12:05:26 +02:00
Tor Harald Sandve
97d82cb97a
Merge pull request #3481 from totto82/fixTracer
...
fix case where wells are shut behind our back
2021-08-20 09:00:17 +02:00
Tor Harald Sandve
295f41ba2b
Merge pull request #3464 from totto82/fixGEFF
...
Fixes related to GEFAC
2021-08-19 19:06:55 +02:00
Tor Harald Sandve
31ac5378cf
fix case where wells are shut behind our back
2021-08-19 13:08:33 +02:00
Bård Skaflestad
bee8ee1c00
Merge pull request #3461 from GitPaean/RateConverter_singlewater_phase
...
consindering the situation of single water phase for RateConverter
Closes #3463 .
2021-08-19 10:52:01 +02:00
Tor Harald Sandve
bc70fd5540
This basically reverts changes applied in PR 3095.
...
With this gefac is only applied with accumulating rates from the level below
2021-08-19 08:16:25 +02:00
Bård Skaflestad
517db198f8
Report Guiderate Values in Strict SI Units
...
The output layer expects its input values to be strictly SI, but we
know that the GuideRate container's values are in output units.
2021-08-17 16:07:45 +02:00
Joakim Hove
581f571c9d
Use SingleWellState for production and injection control
2021-08-15 09:07:39 +02:00
Joakim Hove
c381459804
Add Events member to SingleWellState
2021-08-15 09:03:14 +02:00
Joakim Hove
379e938ee1
Add status to SingleWellState
2021-08-15 09:03:14 +02:00
Joakim Hove
75eb65efb7
Use WellState::wells_ to infer well name
2021-08-15 09:01:21 +02:00
Joakim Hove
d5ab308fbd
Add temperature to SingleWellState
2021-08-15 09:01:21 +02:00
Joakim Hove
1dd9b91ad3
Add member "bool producer" to SingleWellState
2021-08-15 09:01:21 +02:00
Joakim Hove
a54daf75e8
Add trivial class SingleWellState with bhp and thp
2021-08-15 09:01:21 +02:00
Tor Harald Sandve
ac4ee51a5f
Merge pull request #3465 from totto82/updateWTS
...
Make sure potentials are computed in some corner cases
2021-08-10 14:15:22 +02:00
Tor Harald Sandve
a8fa2d74ef
Merge pull request #3420 from totto82/removeDerivate
...
remove derivatives from well rate computations
2021-08-09 15:48:38 +02:00
Tor Harald Sandve
5cb81d36c9
re-compute potentials for pressure controlled wells with trivial rates
2021-08-09 13:41:50 +02:00
Tor Harald Sandve
cf61417b6d
move update well test state to after potentials are calculated
2021-08-09 13:21:10 +02:00
Joakim Hove
2ac65d97d2
Merge pull request #3457 from akva2/janitoring
...
mark variables [[maybe_unused]]
2021-08-07 16:36:03 +02:00
Kai Bao
c85bc24f54
consindering the situation of single water phase for RateConverter
2021-08-05 00:13:13 +02:00
Joakim Hove
f01cf74591
Merge two perforation data members in WellState
2021-08-04 16:48:18 +02:00
Tor Harald Sandve
153cd678c6
Add a derivative free version of the well rate calculations
2021-08-04 11:32:50 +02:00
Arne Morten Kvarving
08e950686f
use .empty() instead of .size() comparisons
2021-08-04 09:19:03 +02:00
Arne Morten Kvarving
8d40860b0b
mark variables [[maybe_unused]]
2021-08-04 08:44:03 +02:00
Joakim Hove
1cbc096d20
Merge pull request #3450 from joakim-hove/small
...
Small
2021-08-03 18:08:33 +02:00
Joakim Hove
d5f2b02716
Check production and injection constraints separately
2021-08-03 14:39:39 +02:00
Joakim Hove
6542a62cc0
Merge pull request #3452 from joakim-hove/constraint-bug
...
BUG? Make sure WellState injection control is updated
2021-08-03 14:38:20 +02:00
Joakim Hove
ea4cf8d28f
Merge pull request #3428 from akva2/remove_altidx
...
remove ebos_altidx
2021-08-03 14:10:00 +02:00
Joakim Hove
c70f63b99b
Make sure WellState injection control is updated
2021-08-03 13:54:59 +02:00
Tor Harald Sandve
43d129861f
Merge pull request #3454 from plgbrts/gw1
...
adjustments needed for gas-water system
2021-08-03 12:01:34 +02:00
Paul Egberts
a80894d679
using if constexpr ()
2021-08-02 13:39:55 +02:00
Paul Egberts
8e8f6c5ff2
fix compositionSwitchEnabled declaration. For gas-water it is disabled
2021-08-01 21:02:07 +02:00
Paul Egberts
70d43fbefc
using has_wfrac(gfrac)_variable logic, In case of gas-water system GFrac is primary variable index
2021-08-01 20:51:28 +02:00
Paul Egberts
5be63a59e0
Introduction of has_wfrac(gfrac)_variables analogue to multisegmentwell implementation
2021-08-01 20:40:04 +02:00
Paul Egberts
367c762a06
moved WFrac, GFrac definition to StandardWellEval.hpp
2021-08-01 20:36:05 +02:00
Joakim Hove
e01910adc2
Add methods WellState::size() and WellState::producer()
2021-07-26 14:21:50 +02:00
Joakim Hove
a39fcc9708
Set WellState::thp when loading restart file
2021-07-26 13:07:12 +02:00
Joakim Hove
057db0ec0e
Add method WellState::name()
2021-07-26 13:07:12 +02:00
Paul Egberts
0efe03497a
some clean up
2021-07-23 16:41:50 +02:00
Paul Egberts
92f7b19594
delete head message
2021-07-23 16:41:50 +02:00
Paul Egberts
a813d9e875
fix for the situation that hydrocarbon consist only of gas
2021-07-23 16:41:50 +02:00
Arne Morten Kvarving
8443306fb6
remove ebos_altidx
...
building a whole simulator for this, and then not even
running a test for it, seems rather excessive. if a test for
index-conformance is wanted, a better approach should be taken.
2021-07-05 13:17:13 +02:00
Markus Blatt
ef8bd1861f
Merge pull request #3425 from akva2/nullopt
...
changed: use std::nullopt
2021-07-01 15:31:09 +02:00
Tor Harald Sandve
65f207836b
Merge pull request #3421 from totto82/compPotNW
...
compute potentials for newly opened wells due to testing
2021-07-01 12:08:13 +02:00
Arne Morten Kvarving
b0a2fc8a67
changed: use std::nullopt
...
the alternative causes some compilers to emit uninitialized
use warnings
2021-07-01 09:00:56 +02:00
Bård Skaflestad
4392cc8713
Don't Access Phase Rates Unless Active
...
Fixes two-phase Oil/Water runs. Probably needs more refinement
later.
2021-06-30 17:21:52 +02:00
Tor Harald Sandve
a00c42c673
compute potentials for newly opened wells due to testing
2021-06-30 13:13:56 +02:00
Bård Skaflestad
5ddac2e8d5
Merge pull request #3406 from GitPaean/new_fixing_guide_rate_update_together
...
[new attempt] updating the guide rates for all the wells and groups at the same time
2021-06-30 12:40:45 +02:00
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
Kai Bao
12fa7a4ac8
putting all the guide rate update function in one single function
...
to make sure we only do once checking of the expiration of the guide
rates.
2021-06-29 11:41:26 +02:00
Tor Harald Sandve
4aaf86d5ef
make sure the current well are included in the local fraction sum
2021-06-28 11:47:13 +02:00
Bård Skaflestad
71de144399
Merge pull request #3239 from osae/tracer
...
Tracer summary curves, collect well rates.
2021-06-25 17:48:40 +02:00
Tor Harald Sandve
0dcd91ac93
Merge pull request #3369 from totto82/grupWellState
...
handle GRUP in wellState from target
2021-06-24 13:02:24 +02:00
Bård Skaflestad
c101ed10f4
Merge pull request #3389 from totto82/scaleGuideRates
...
scale guiderates from si
2021-06-23 16:53:12 +02:00
Tor Harald Sandve
5368343512
handle GRUP in wellState from target
2021-06-23 14:46:35 +02:00
Bård Skaflestad
9394a93c68
Don't Create Well Instance for Wells With No Connections
...
This commit protects against Opm::Well instances for which the sets
of connections are empty. In those cases, do not put entries in the
well container as there is no influence on the systems of non-linear
equations.
2021-06-22 20:43:21 +02:00
Bård Skaflestad
6d3da3d2e0
Report Pressure Dependent Pore Volume in PRT File
...
This commit distinguishes the reference condition pore volume from
the dynamic, pressure (and/or temperature) dependent pore volume
value. Previously we would report the latter as the 'PORV' value in
the "Field Totals" and "FIPNUM region" reports, but this commit
switches to reporting the former instead-mostly for compatibility.
We still report the dynamic pore volume value, but now we report
this on a line of its own, before the table, using one of the forms
Field total pressure dependent pore volume = 12345 RM3
FIPNUM report region 1 pressure dependent pore volume = 123 RM3
2021-06-22 12:00:56 +02:00
Håkon Hægland
dd1ca3197d
Add missing header file to GasLiftGroupInfo.cpp
...
GasLiftGroupInfo.cpp did not include "config.h" which caused HAVE_MPI
to be undefined causing the file to be compiled with
Dune::Communication<No_Comm> instead of with
Dune::Communication<MPI_Comm>. Which later caused linking problems with files
that used MPI.
2021-06-22 09:52:22 +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
Bård Skaflestad
d9f89b4c89
Merge pull request #3366 from totto82/scaleWellRatesAfterGroupSwitching
...
Scale well rates after group switching
2021-06-18 10:05:00 +02:00
Tor Harald Sandve
c3cf59327d
scale guiderates from si
2021-06-17 23:56:02 +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
Ove Sævareid
33511b45c1
Relegating implementation details.
2021-06-15 17:18:46 +02:00
Ove Sævareid
581408c760
Batchwise tracer calculations.
2021-06-15 17:18:46 +02:00
Tor Harald Sandve
b2341a84d6
scale well rates after group switching
2021-06-15 09:29:24 +02:00
Kai Bao
b415cd4fb8
not comparing guideRate_ with nullptr
...
it is not a pointer anymore since OPM/opm-simulators#3380
2021-06-15 00:00:43 +02:00
Joakim Hove
f9618faceb
Merge pull request #3377 from joakim-hove/perf-data-injector
...
PerfData maintains producre / injector status
2021-06-14 15:53:15 +02:00
Joakim Hove
166907c45d
Merge pull request #3380 from joakim-hove/guiderate-value
...
Use GuideRate value instead of std::unique_ptr<GuideRate>
2021-06-14 15:52:08 +02:00
Joakim Hove
193657fee1
Use GuideRate value instead of std::unique_ptr<GuideRate>
2021-06-14 14:35:55 +02:00
Arne Morten Kvarving
6b5c7b66fd
fixed: mark methods as override
2021-06-14 09:09:33 +02:00
Arne Morten Kvarving
a84d05c83b
fixed: forward classes as classes
2021-06-14 09:09:15 +02:00
Joakim Hove
a22b836b82
PerfData maintains producre / injector status
2021-06-14 09:03:02 +02:00
Joakim Hove
fe5e4a9ac3
Minor renames++ in WellState report
2021-06-11 16:01:25 +02:00
Joakim Hove
7a1f71feaa
Simplify check for number of perforations
2021-06-10 23:26:51 +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
3c3a4afcfc
Use PerfData for connection productivity index
2021-06-10 14:32:45 +02:00
Joakim Hove
81c5ce8843
Use PerfData for water throughput, water velocity and skin pressure
2021-06-10 14:32:45 +02:00
Joakim Hove
db02b9f112
Use PerfData for solvent perforation rates
2021-06-10 14:27:37 +02:00
Joakim Hove
49e9b51269
Use PerfData for polymer rates
2021-06-10 07:19:21 +02:00
Joakim Hove
3010b96611
Use PerfData for perforation rates
2021-06-10 07:19:21 +02:00
Joakim Hove
76838cd8a4
Use PerfData for perforation pressure
2021-06-10 07:19:21 +02:00
Joakim Hove
4b69d12335
Use PerfData for perforation rates
2021-06-10 07:18:46 +02:00
Joakim Hove
b6318ac017
Add WellContainer<PerfData> to WellState
2021-06-10 07:18:46 +02:00
Joakim Hove
34481e48c3
Add data container PerfData to use in WellState
2021-06-10 07:18:46 +02:00
Bård Skaflestad
ed131190eb
Merge pull request #3353 from akva2/msw_eval
...
add MultisegmentWellEval
2021-06-10 00:10:31 +02:00
Joakim Hove
1a7c514879
Merge pull request #3359 from joakim-hove/rm-mpi-sum
...
Use ecl well for total number of connections
2021-06-09 17:13:25 +02:00
Arne Morten Kvarving
68fc2b0bc6
add MultisegmentWellEval
2021-06-09 15:17:36 +02:00
Bård Skaflestad
72bd3368e7
Merge pull request #3360 from akva2/stdwell_eval
...
add StandardWellEval
2021-06-09 11:02:52 +02:00
Bård Skaflestad
7add6b33de
Merge pull request #3363 from totto82/fixRESV2
...
removed dissolved gas and vapporized oil from RESV injection rates
2021-06-09 09:29:19 +02:00
Arne Morten Kvarving
eb06c4bd70
add StandardWellEval
2021-06-09 08:32:30 +02:00
Joakim Hove
b868f87420
Use ecl well for total number of connections
2021-06-08 21:14:16 +02:00
Tor Harald Sandve
28a567550b
removed dissolved gas and vapporized oil from RESV injection rates
2021-06-08 20:17:01 +02:00
Joakim Hove
023edc67e5
Remove first perf member from Well classes
2021-06-08 14:24:26 +02:00
Arne Morten Kvarving
c623fba017
add MultisegmentWellGeneric
...
avoid rebuilding this for all simulators when code
is only dependent on Scalar. instanced for double
2021-06-08 10:43:10 +02:00
Arne Morten Kvarving
10ff86af52
add StandardWellGeneric
...
avoid rebuilding this for all simulators when code
is only dependent on Scalar. specialized for double
2021-06-08 08:08:50 +02:00
Bård Skaflestad
6c1ca7450f
Merge pull request #3282 from akva2/blackoilwellmodel_generic_split
...
split out typetag independent code from BlackoilWellModel
2021-06-07 22:13:36 +02:00
Bård Skaflestad
4767311f76
Merge pull request #3334 from akva2/wellif_further_split
...
Further splitting in WellInterface
2021-06-07 21:41:12 +02:00
Arne Morten Kvarving
0ef68b452a
BlackoilWellModel: move runWellPIScaling to generic class
2021-06-07 15:01:10 +02:00
Arne Morten Kvarving
7219f09fdc
BlackoilWellModel: mutate well_container_ directly in createWellContainer
2021-06-07 14:49:41 +02:00
Arne Morten Kvarving
2c5942595c
BlackoilWellModel: put well container init in a separate method
2021-06-07 14:35:34 +02:00
Arne Morten Kvarving
30a59cd190
BlackoilWellModel: move updateWellPotentials to generic class
2021-06-07 14:22:30 +02:00
Arne Morten Kvarving
004abd942b
BlackoilWellModel: put code for computing potentials in separate method
2021-06-07 14:09:36 +02:00
Arne Morten Kvarving
b0b0ae20d3
BlackoilWellModel: move some glift stuff to generic class
2021-06-07 13:36:22 +02:00
Arne Morten Kvarving
2b9141035e
BlackoilWellModel: move setRepRadiusPerfLength to generic class
2021-06-07 13:36:17 +02:00
Arne Morten Kvarving
c5fae280f3
bring setWSolvent closer to original code
...
by introducing a getter for generic wells
2021-06-07 13:04:29 +02:00
Arne Morten Kvarving
60e7c90b1e
BlackoilWellModel: move calculateEfficiencyFactors to generic class
2021-06-07 12:56:45 +02:00
Arne Morten Kvarving
811afb854b
BlackoilWellModel: move updateNetworkPressures to generic class
2021-06-07 12:46:14 +02:00
Arne Morten Kvarving
172d344ab2
BlackoilWellModel: move inferLocalShutWells to generic class
2021-06-07 12:32:01 +02:00
Arne Morten Kvarving
ad4b34dc30
BlackoilWellModel: move forceShutWellByNameIfPredictionMode to generic class
2021-06-07 12:25:04 +02:00
Arne Morten Kvarving
54ff1c4c45
BlackoilWellModel: move hasTHPConstraints to generic class
2021-06-07 12:20:49 +02:00
Arne Morten Kvarving
cf6a3801fb
keep a vector of WellInterfaceGeneric* in BlackoilWellModelGeneric
...
these points to the same objects as well_container_
2021-06-07 12:15:36 +02:00
Arne Morten Kvarving
059140f2ee
split out typetag independent code from BlackoilWellModel
2021-06-07 12:04:06 +02:00
Bård Skaflestad
a3ce4a11e0
Merge pull request #3349 from totto82/fixRESVgconinje
...
Scale target with resv conversion factor
2021-06-07 09:39:52 +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
Bård Skaflestad
87599af8b8
Restore Debug Build
...
Commit 6a21371b5
(PR #3344 ) removed 'num_perf_this_well' but did not
make all requisite changes. Fix an accompanying 'assert' to restore
builds that do not define 'NDEBUG'.
2021-06-06 16:58:42 +02:00