Arne Morten Kvarving
268201eeb1
make has_polymermw constexpr and use if constexpr to eliminate code
2021-05-18 15:04:47 +02:00
Arne Morten Kvarving
a7507cf544
fixed: forward structs as structs
...
clang warns
2021-05-18 12:07:04 +02:00
Tor Harald Sandve
4cf08deede
BUGFIX fix direction of the resv check
2021-05-18 10:45:10 +02:00
Arne Morten Kvarving
dd04eb128a
use if constexpr to eliminate some zFraction code
2021-05-18 10:18:11 +02:00
Arne Morten Kvarving
83595d84c3
use if constexpr to eliminate some polymer code
2021-05-18 10:18:11 +02:00
Arne Morten Kvarving
1fa74b5889
use if constexpr to eliminate some foam code
2021-05-18 10:18:11 +02:00
Arne Morten Kvarving
6157122bd8
use if constexpr to eliminate some solvent code
2021-05-18 10:17:21 +02:00
Joakim Hove
2ac7b5e4bf
Reorder variables and remove .reserve() calls
2021-05-15 08:49:14 +02:00
Joakim Hove
fcba55080f
Merge pull request #3243 from akva2/small_cleanups
...
Small cleanups in WellInterface
2021-05-14 09:12:11 +02:00
Arne Morten Kvarving
7c29453512
cosmetics
...
do not indent for namespace
2021-05-13 12:04:43 +02:00
Arne Morten Kvarving
861899de2e
changed: put WellStateFullyImplicitBlackoil in separate compile unit
2021-05-13 12:01:03 +02:00
Arne Morten Kvarving
80a05ceb33
cosmetics
...
- do not indent for namespace
- move constructors and destructors to top
- use public/protected/private order
2021-05-13 00:38:08 +02:00
Arne Morten Kvarving
2c1a6ae8cb
replace typedef with using statements
2021-05-13 00:38:08 +02:00
Arne Morten Kvarving
a032c5a80e
changed: put WellState in separate compile unit
2021-05-13 00:38:08 +02:00
Joakim Hove
77f3b93b88
Merge pull request #3241 from joakim-hove/wellcontainer-initializer-list
...
Add initializer_list based WellContainer constructor
2021-05-12 11:15:53 +02:00
Arne Morten Kvarving
1568479d3d
fix function name
...
Frations -> Fractions
2021-05-12 10:50:46 +02:00
Joakim Hove
66c56bb8c3
Add initializer_list based WellContainer constructor
2021-05-12 09:18:58 +02:00
Arne Morten Kvarving
9758cd4f92
replace typedefs with using statements
2021-05-12 09:06:37 +02:00
Arne Morten Kvarving
ab4772aba8
fixed: use Scalar type from TypeTag
2021-05-12 09:02:29 +02:00
Arne Morten Kvarving
d5cdbf38d6
remove Opm:: prefix for symbols
...
we are already in the Opm:: namespace
2021-05-12 08:57:07 +02:00
Arne Morten Kvarving
9de5d077f6
remove unused modestring array
2021-05-12 08:47:49 +02:00
Arne Morten Kvarving
539c83687c
changed: (re)move unnecessary includes
2021-05-12 08:47:22 +02:00
Bård Skaflestad
57d45011af
Restore Debug Builds
...
This was broken in commit b5580f39f
(PR #3222 ) which removed the
'start_perf_next_well' symbol but did not update every use location.
2021-05-12 08:37:19 +02:00
Joakim Hove
817e81d3b7
Merge pull request #3235 from akva2/constexpr_micro_optim_wells
...
Small micro-optims in WellInterface
2021-05-12 06:55:22 +02:00
Joakim Hove
b5580f39fa
Let the perforation index run over the indices for one well
2021-05-11 22:38:11 +02:00
Joakim Hove
846809ec29
Rename mutable perfPhaseRates()
2021-05-11 18:48:05 +02:00
Arne Morten Kvarving
ceb9bb4311
changed: make has_brine contexpr
...
and use if constexpr to eliminate some code
2021-05-11 12:52:44 +02:00
Arne Morten Kvarving
f48ee17d59
changed: make has_foam contexpr
...
and use if constexpr to eliminate some code
2021-05-11 12:46:54 +02:00
Arne Morten Kvarving
73ccb42634
changed: make has_polymer contexpr
...
and use if constexpr to eliminate some code
2021-05-11 12:33:54 +02:00
Arne Morten Kvarving
a78c7e598d
changed: make has_solvent and has_zFraction constexpr
...
and use if constexpr to eliminate some code
2021-05-11 12:28:10 +02:00
Joakim Hove
83f32729fc
Fix function argument
2021-05-11 08:10:49 +02:00
Joakim Hove
b832b00ca3
Merge pull request #3221 from joakim-hove/distribute-events
...
Distribute events
2021-05-11 07:24:00 +02:00
Joakim Hove
c01f2fe074
Merge pull request #3226 from joakim-hove/wellstate-remove-unused
...
Remove unused getXXXXOffset() methods
2021-05-11 07:23:08 +02:00
Tor Harald Sandve
55dfc84067
Merge pull request #3176 from totto82/refactorPrepareTimeStep
...
move solveWellEquation inside prepareTimeStep
2021-05-10 16:35:16 +02:00
Bård Skaflestad
38292aca72
Merge pull request #3225 from totto82/refactorAssembleWellEq
...
Avoid code duplication
2021-05-10 12:27:52 +02:00
Joakim Hove
21751d87fc
Remove unused getXXXXOffset() methods
2021-05-10 10:07:05 +02:00
Tor Harald Sandve
80413e0794
add useInnerIteration method and move assembleWellEq to the well interface to avoid code duplication
2021-05-10 09:41:18 +02:00
Tor Harald Sandve
c87c2666d1
Merge pull request #3184 from totto82/fixZeroInit
...
Improve initialization of the well rates for trivial rates
2021-05-10 08:53:16 +02:00
Joakim Hove
f52398a32e
Use WellContainer<Events> to manage per well events
2021-05-09 16:42:50 +02:00
Joakim Hove
0083022742
Add const T& overload to WellContainer
2021-05-09 15:54:20 +02:00
Joakim Hove
744039eb2f
Add documentation to WellContainer<T> class
2021-05-09 11:57:54 +02:00
Tor Harald Sandve
62d902435a
move solveWellEquation inside prepareTimeStep
2021-05-07 08:51:15 +02:00
Joakim Hove
36cc9e8567
Add small class WellContainer to manage well data in WellState
2021-05-06 15:46:52 +02:00
Joakim Hove
a1f1d1047e
Use mutable WellGroupEvents instance to track events in WellState
2021-05-06 14:02:03 +02:00
Tor Harald Sandve
1cd6ea14a9
only compute well potential when needed
2021-05-06 12:59:02 +02:00
Tor Harald Sandve
2796a9862e
Merge pull request #3169 from totto82/alt_init
...
Initialize empty producers using mobility and transmissibility ratio
2021-05-06 11:10:23 +02:00
Tor Harald Sandve
687a2ca977
Improve initialization of the well rates for trivial rates
...
This also applies for rates with opposite direction.
2021-05-06 08:48:30 +02:00
Bård Skaflestad
a6c7453a24
Merge pull request #3212 from joakim-hove/num-connections
...
Store the number of connections in separate vector
2021-05-05 22:11:26 +02:00
Bård Skaflestad
e73be1352b
Merge pull request #3211 from totto82/removeUnusedVFPcode
...
remove unused calculateBhpWithTHPTarget
2021-05-05 18:53:45 +02:00
Bård Skaflestad
f8e2aa74de
Merge pull request #3207 from akva2/targetcalc_comp_unit
...
TargetCalculator: move to separate compile unit
2021-05-05 18:53:07 +02:00
Arne Morten Kvarving
a4c0af09d9
fixed: do not use Opm:: prefix when inside namespace Opm
2021-05-05 11:59:18 +02:00
Joakim Hove
fe9a627aa3
Store the number of connections in separate vector
2021-05-05 11:30:33 +02:00
Tor Harald Sandve
bc9034e325
remove unused calculateBhpWithTHPTarget
2021-05-05 09:51:43 +02:00
Tor Harald Sandve
eeb1b7e36c
Initialize empty producers using the mobility ratio and the transmissbility ratio
2021-05-05 08:31:36 +02:00
Bård Skaflestad
6b02180ca3
Merge pull request #3208 from akva2/fix_gaslift_impl_include
...
fixed: do not include headers into Opm namespace
2021-05-04 18:04:35 +02:00
Arne Morten Kvarving
a0e4bb9e52
fixed: do not include headers into Opm namespace
2021-05-04 14:35:41 +02:00
Arne Morten Kvarving
d4b67e9af0
TargetCalculator: move to separate compile unit
...
use explicit instantation to avoid some templates being
instanced a lot of places in a lot of objects.
2021-05-04 08:42:02 +02:00
Arne Morten Kvarving
a61c453a2a
WellGroupHelpers: make templates private
...
use explicit template instantation. to avoid rebuilding
this code over and over (minor), and to avoid includes in headers.
2021-05-04 08:21:32 +02:00
Arne Morten Kvarving
1ec65b14b8
FractionCalculator: make member a const reference
2021-05-04 08:14:07 +02:00
Joakim Hove
8a78dc1c59
Add class GlobalWellInfo and use it from WellState
2021-05-03 13:28:28 +02:00
Bård Skaflestad
7be6e5bbf1
Merge pull request #3196 from akva2/use_forwarding
...
Use forwarding where possible in some headers
2021-04-30 16:00:41 +02:00
Bård Skaflestad
f273e06c66
Merge pull request #3198 from akva2/janitoring
...
Remove some unused members and quell some warnings
2021-04-30 15:08:48 +02:00
Arne Morten Kvarving
e0a6e56588
WellGroupHelpers: use forwarding
2021-04-30 13:29:00 +02:00
Arne Morten Kvarving
d4a0d2962f
ParallelWellInfo: use forwarding
2021-04-30 13:24:06 +02:00
Arne Morten Kvarving
e74b3249e9
WGState: forward struct as struct
2021-04-30 13:09:25 +02:00
Arne Morten Kvarving
3c77b97cae
MultisegmentWellContribution: remove unused members
2021-04-30 13:09:25 +02:00
Arne Morten Kvarving
5dd5f5a8f4
FractionCalculator: remove unused summary_state member
2021-04-30 11:02:50 +02:00
Arne Morten Kvarving
8ff32b594a
TargetCalculator: remove unused wellstate member
2021-04-30 11:02:50 +02:00
Tor Harald Sandve
70150ab212
Remove code duplication between STW and MSW
2021-04-30 09:27:35 +02:00
Bård Skaflestad
dae6b61370
Merge pull request #3189 from joakim-hove/alqstate
...
Add class ALQState to manage the ALQ state in the WellState
2021-04-28 11:52:40 +02:00
Joakim Hove
8bae5e0127
Add class ALQState to manage the ALQ state in the WellState
2021-04-28 09:33:06 +02:00
Bård Skaflestad
a6c374a27c
Compute Well-Level PI For Shut Wells
...
This commit includes the shut wells in 'wells_ecl_' and expands the
PI/II value calculation to apply to those shut wells too. With this
in place we are able to run cases that have a 'WELPI' keyword before
the well opens, even at the very first report step.
2021-04-27 14:51:18 +02:00
Bård Skaflestad
6e9d2bd89e
Initialise More Data Members at Construction Time
...
In particular, apply explicit default constructors to most data
members and push initialisation to initialiser list if convenient.
While here, also split long lines and apply const in more places.
Finally, reset well- and connection-level PI values to zero in
WellState::shutWell(). This is in preparation of including shut
wells in BlackoilWellModel's internal state.
2021-04-27 14:50:37 +02:00
Joakim Hove
1de5c9539c
Merge pull request #3174 from joakim-hove/use-groupstate2
...
Use groupstate2
2021-04-27 14:15:49 +02:00
Joakim Hove
e1d117c59f
Extract group state and create WGState to manage well & group state
2021-04-27 10:55:38 +02:00
Bård Skaflestad
1f14c6ddef
Forward Potential Rates to Next Report Step
...
These are used as part of calculating the BHP/THP when computing new
potential rates in models that feature VFP tables and must therefore
be properly initialised in the next report step's well state object.
2021-04-27 07:58:21 +02:00
Joakim Hove
42a6505cf1
Merge pull request #3179 from joakim-hove/groupstate-dump
...
Add json dump to GroupState
2021-04-27 07:52:11 +02:00
Joakim Hove
a68589eb9a
WellState will internalize PhaseUsage member
2021-04-27 00:11:04 +02:00
Tor Harald Sandve
12880be916
Merge pull request #3159 from totto82/updateWellTargetFix
...
get bhp from thp without solving
2021-04-26 13:15:30 +02:00
Joakim Hove
5a4190bbea
Add json dump to GroupState
2021-04-26 11:51:07 +02:00
Joakim Hove
43f42ab7d7
Merge pull request #3162 from totto82/addSwitchEvent
...
Use the event for swithing between producer and injector
2021-04-23 08:17:47 +02:00
Tor Harald Sandve
93ac6e8283
Merge pull request #3165 from joakim-hove/wellstate-split
...
Wellstate split
2021-04-22 12:28:33 +02:00
Tor Harald Sandve
3445f2e03a
Merge pull request #3168 from joakim-hove/simplify-global-is-grup
...
Simplify global is grup
2021-04-21 14:49:13 +02:00
Joakim Hove
7fecd9f433
Create new class GroupState to maintain runtime state of groups
2021-04-21 13:07:57 +02:00
Joakim Hove
c8db0d1090
Assign number of phases in WellState constructor
2021-04-21 13:07:57 +02:00
Joakim Hove
7131647362
Use Well.insert_index() instead of maintaining extra counter
2021-04-21 10:34:57 +02:00
Joakim Hove
ed2fb11084
Avoid superfluos code to reset globalIsProductionGrup to false
2021-04-21 09:04:55 +02:00
Atgeirr Flø Rasmussen
fc8d17c04e
Merge pull request #3164 from totto82/fixNOgrp
...
honour group available for higher controll
2021-04-20 11:13:27 +02:00
Tor Harald Sandve
352e40d109
honour group available for higher controll
2021-04-19 14:34:38 +02:00
Markus Blatt
8fe9314104
Merge pull request #3148 from totto82/gliftmpi2
...
make gaslift parallel
2021-04-19 08:30:14 +02:00
Tor Harald Sandve
090b75425f
Use switch event
2021-04-16 13:38:56 +02:00
Tor Harald Sandve
e69b097ac5
fix for distributed wells
2021-04-15 14:00:28 +02:00
Tor Harald Sandve
ebcaea3faa
get bhp from thp without solving
2021-04-14 15:58:58 +02:00
Tor Harald Sandve
9d56588906
Make gaslift parallel
2021-04-14 14:14:39 +02:00
Joakim Hove
289e0ea938
Handle closed connections when loading connection data from restart
2021-04-14 07:59:55 +02:00
Joakim Hove
7d825ba9d0
Rename function wellToState -> loadRestartData
2021-04-13 21:02:36 +02:00
Håkon Hægland
61e67b143d
Adds a simple test case for gas lift.
...
Adds a simple test case for gas lift optimization. Currently this is
very simplistic and only covers a fraction of the gas lift optimization
code. The plan is to use this as a building block to add more tests
in the future.
2021-04-01 16:41:46 +02:00
Håkon Hægland
24c419913a
Update to use new API for accessing well state.
...
Use access function to get a handle to the well state object according
to PR #3140 .
2021-03-30 17:10:09 +02:00
Håkon Hægland
ff3c7f2afb
Try to silence a warning about an unused variable.
...
Added some more debug code, and initialized some boolean variables.
The jenkins build gives a warning about that '"alq_is_limited" may be
used uninitialized', though the warning is generated in another file
(GasLiftWellState.hpp, line #44 ) it could be (?) caused by the fact that
"alq_is_limited" might not be initialized before calling the constructor
in GasLiftSingleWell_impl.hpp line #963..
2021-03-30 15:42:33 +02:00
Håkon Hægland
a80ad54d7d
Parallel runs not supported yet.
...
Gives a warning if gas lift optimization is attempted for more than one
process in the MPI communicator. The plan is to implement support for
muliple processes in a later commit.
2021-03-30 15:42:33 +02:00
Håkon Hægland
231f5374d7
Fixed some typos introduced in previous commit.
...
Some conflicts in the previous rebase was unfortunately not resolved
correctly. This commit corrects those errors.
2021-03-30 15:42:33 +02:00
Håkon Hægland
60c5fab82d
Fix unused variable warnings.
2021-03-30 15:41:46 +02:00
Håkon Hægland
cd85943352
Fix some warnings.
2021-03-30 15:41:46 +02:00
Håkon Hægland
434640fdf5
Implements gas lift optimization for groups.
...
Extends PR #2824 to include support for GLIFTOPT (item 2, maximum lift
gas supply for a group) and group production constraints.
The optimization is split into two phases. First the wells are optimized
separately (as in PR #2824 ). In this phase LIFTOPT and WLIFTOPT constraints
(e.g. maxmimum lift gas injection for a well, minimum economic gradient) are
considered together with well production constraints.
Then, in the next phase the wells are optimized in groups. Here, the ALQ
distribution from the first phase is used as a starting point. If a group
has any production rate constraints, and/or a limit on its total rate of
lift gas supply, lift gas is redistributed to the wells that gain the most
benefit from it by considering which wells that currently has the largest
weighted incremental gradient (i.e. increase in oil rate compared to
increase in ALQ).
2021-03-30 15:41:46 +02:00
Joakim Hove
98f6a9a7ac
Update collection of wells after ACTIONX
2021-03-29 16:20:10 +02:00
Joakim Hove
5fe43c09cb
Implement updateEclWell() as an internal function in wellPI code
2021-03-29 16:20:10 +02:00
Joakim Hove
90a9ed49a2
Add function WellState::updateStatus()
2021-03-29 16:20:10 +02:00
Joakim Hove
43925ae4f2
Explicily assign CMODE_UNDEFINED when controls vector is resized
2021-03-29 16:20:10 +02:00
Joakim Hove
405b9d2244
Add accessor functions to maintain WellState objects in well model
2021-03-29 15:30:32 +02:00
Bård Skaflestad
c23ce16879
Merge pull request #3120 from totto82/refactorBAVG
...
only compute Bavg once pr timestep
2021-03-24 11:34:13 +01:00
Bård Skaflestad
f980ff5f77
Merge pull request #3128 from totto82/fixTarget
...
reset target from wconprod and wconinje
2021-03-23 23:59:27 +01:00
Tor Harald Sandve
8283b53f3b
only compute Bavg once pr timestep and use the stored variable instead of passing it around
2021-03-23 15:30:36 +01:00
Tor Harald Sandve
3a65a7ba22
reset target from wconprod and wconinje
2021-03-23 09:23:35 +01:00
Tor Harald Sandve
8882b8027a
Merge pull request #3115 from totto82/onlyComputeGuideRateOnce
...
only compute guiderates at the beginning of a timestep
2021-03-23 08:43:47 +01:00
Joakim Hove
44eb07e621
Don't Initialize Well State for Shut Wells
2021-03-20 20:33:28 +01:00
Joakim Hove
4fd5d52f2f
Retrieve Number of Connections from Well Map
2021-03-20 20:33:28 +01:00
Joakim Hove
f0c738ea34
Reflect Well Object's Status Flag in Well State
2021-03-20 20:33:28 +01:00
Joakim Hove
e2d75b608b
Rename well filter -> not_on_process_()
2021-03-20 20:33:28 +01:00
Joakim Hove
9662d4019e
Use enum Well::Status to indicate well status instead of bool
2021-03-20 20:33:28 +01:00
Joakim Hove
634f0d61d8
Deferred logger will throw "correct" exception
2021-03-19 14:05:55 +01:00
Tor Harald Sandve
78d351676f
only update guide rates at the beginning of a timestep
2021-03-19 11:09:14 +01:00
Bård Skaflestad
b982ad0fd2
Record Dynamic Well Status in 'wellData()' Output
...
This commit sets the 'data::Well::dynamicStatus' based on the
dynamically updated 'Schedule' object (i.e., from ACTIONX and
similar) and the results of well/operability testing (WECON and/or
WTEST). If a well is closed due to economic limits (WECON) we still
provide summary-style data at the timestep that closed the well, but
omit this data at later steps until the well reopens.
We add a new parameter to WellState::report() to distinguish these
situations.
This is in preparation of making the 'BlackoilWellModel' manage both
open and shut wells alike.
2021-03-18 17:28:28 +01:00
Bård Skaflestad
65edfb702c
Preparations for Recording Dynamic Well State
...
Coalesce blocks with same conditions, split long lines, and apply
'const' where appropriate. While here, also tighten the "rate = 0"
criterion to include denormalised numbers.
2021-03-18 17:28:28 +01:00
Joakim Hove
cd7c4d9927
Merge pull request #3112 from totto82/refact_ginj
...
Add support for explicit guiderate for injection groups
2021-03-18 17:03:53 +01:00
Tor Harald Sandve
61de5689bd
cleanup: add and remove comments
2021-03-18 14:56:45 +01:00
Tor Harald Sandve
58fa3eaf31
replace asserts with OPM_DEFLOG_THROW
2021-03-18 11:58:05 +01:00
Tor Harald Sandve
6bac5da27c
adapt to changes in the guiderate interface
2021-03-16 15:56:31 +01:00
Tor Harald Sandve
f4ac7f555b
Add support for explicit guiderate for injection groups
...
With this commit the guiderate logic used for the production groups is also used for injectors
This allows for setting guiderates explicit at different group levels
Only RATE, NETV and VOID guiderate type is suppored.
2021-03-16 15:56:31 +01:00
Tor Harald Sandve
c29b61ff99
Merge pull request #3074 from plgbrts/thermaloutput
...
Temperature output for producers
2021-03-15 13:54:18 +01:00
Joakim Hove
8adea8c68a
Merge pull request #3102 from totto82/validControls2
...
make sure wells has valid controls
2021-03-15 09:43:22 +01:00
Tor Harald Sandve
8ad00e60f9
Merge pull request #3096 from totto82/weconPOTN
...
add support for POTN in WECON
2021-03-09 13:51:14 +01:00
Tor Harald Sandve
858856adec
update solution for WAG injectors
2021-03-09 13:37:03 +01:00
Kai Bao
0ad848658e
Merge pull request #3099 from atgeirr/revive-using_porevolume_average
...
Fix hydrocarbon volume issue with no oil or gas
2021-03-09 12:15:06 +01:00
Paul Egberts
646dafe78f
introduced computeWellTemperature() to be called at each timestep
2021-03-08 15:11:50 +01:00
Tor Harald Sandve
a098d76c19
fix issue when switching from injection to/from production
2021-03-08 11:13:34 +01:00
Tor Harald Sandve
f861188d60
make sure wells has valid controls
2021-03-08 08:44:55 +01:00
Joakim Hove
9ad5d69744
Utilize private restartconfig
2021-03-07 09:31:10 +01:00
Kai Bao
f9ead85435
Use pore volume to do the average when hydrocarbon is missing.
2021-03-05 14:49:15 +01:00
Tor Harald Sandve
4f55c25607
add support for POTN in WECON
2021-03-03 10:31:57 +01:00
Tor Harald Sandve
00e65e88b2
Merge pull request #3095 from blattms/apply-gefac-also-on-topmost-group
...
Apply gefac also on topmost VREP controlled group
2021-03-03 10:03:31 +01:00
Bård Skaflestad
d78f5dc259
Merge pull request #3083 from totto82/fixMPIThrow
...
Fix MPI issues in the well model
2021-03-02 12:04:39 +01:00
Markus Blatt
d1f65451f1
Honor top most group efficiency factor in checkGroupConstraints{Inj,Prod}
2021-03-02 11:32:27 +01:00
Markus Blatt
0d2b9629b0
Document efficiencyFactor in checkGroupConstraints{Inj,Prod}
...
Reading recursion is quite hard and a comment might help others.
2021-03-02 11:31:04 +01:00
Markus Blatt
39546864ab
Honor GEFAC of topmost group when summing solvent rates.
2021-03-01 11:16:29 +01:00
Markus Blatt
6e8b1e8d2e
Honor gefac of topmost group in WellHelpers::updateGuideRateForGroups
2021-03-01 11:16:29 +01:00
Markus Blatt
1d9f13e310
Honor GEFAC for the top most group when calculating well phase rates.
...
Previously GEFAC was not applied here.
2021-03-01 11:15:57 +01:00
Markus Blatt
1ce5c59851
Honor GEFAC for top group in get{Injection,Production}Controls.
2021-03-01 10:26:40 +01:00
Tor Harald Sandve
09ff71ae31
only log changes of group controls on rank 0
2021-02-26 14:16:38 +01:00
Tor Harald Sandve
1627e421d7
communicate group data before well testing
2021-02-25 11:08:55 +01:00
Tor Harald Sandve
c23094b299
make another throw tread safe
2021-02-24 15:54:02 +01:00
Kai Bao
f00b4d9aa8
Merge pull request #3059 from alfbr/fix-error
...
Do not report confusing error
2021-02-23 14:21:59 +01:00
Alf Birger Rustad
034dab84f9
Messages sent to debug file
2021-02-23 12:17:51 +01:00
Paul Egberts
59b6e21cc3
fixed num_perf_this_well declaration
2021-02-22 21:39:34 +01:00
Paul Egberts
42f426c7fd
rebasing thermaloutput
2021-02-22 18:47:13 +01:00
Paul Egberts
3ff3d549ed
temperature output as weighted sum of well block temperatures based on specific heat capacity of the phases
2021-02-22 18:41:25 +01:00
Joakim Hove
ff51c2d7ee
Handle WELLPI keyword in ACTIONX
...
When an ACTIONX has evaluated to True we inspect the keyword payload and if it
contains WELPI we query the well model for current wellpi values and pass that
along as context to the Schedule::applyAction()
2021-02-18 16:53:50 +01:00
Joakim Hove
d2e6d80265
Improve warning when invalid values are encountered in VFP
2021-02-16 07:48:59 +01:00
Joakim Hove
471a19e851
Pass table argument to getGFR() and getWFR()
2021-02-15 22:36:51 +01:00
Joakim Hove
fda1d65494
Pass table argument to VFP getFLo()
2021-02-15 22:21:56 +01:00
Joakim Hove
6383f3c1ac
Use class based enums for VFP flow types
2021-02-15 19:17:39 +01:00
Joakim Hove
99a61e120b
Implement BlackoilWellModel::hasWell() method
2021-02-13 10:37:45 +01:00
Joakim Hove
0299af26ed
Extract method wellPI() from existing lambda implementation
2021-02-12 11:49:04 +01:00
Alf Birger Rustad
8fce439f13
One more message
2021-02-12 10:39:04 +01:00
Alf Birger Rustad
40800da0a8
Do not report confusing error
2021-02-11 23:48:30 +01:00
Joakim Hove
89eb6e5659
Extract functionality to update ecl wells to separate function
2021-02-10 15:17:36 +01:00
Joakim Hove
d9f29945aa
Pass unscaled newWellPI to Schedule::applyWellProdIndexScaling()
2021-02-05 12:53:00 +01:00
Arne Morten Kvarving
9b74b5dfac
changed: this is known on compile time
...
use info to disable code
2021-01-28 14:33:56 +01:00
Arne Morten Kvarving
77692c1f99
quell unused parameter warning
2021-01-28 12:52:19 +01:00
Kai Bao
e77f8b2f7d
Merge pull request #2997 from totto82/avoidDoubleCopy
...
dont copy the well model in computeWellPotentials
2021-01-28 11:45:41 +01:00
Kai Bao
d8f8b9f0cc
Merge pull request #3028 from totto82/quarryPerfLengthAndRadius
...
get connection length and radius from the connection object
2021-01-28 11:21:21 +01:00
Joakim Hove
358620120e
Merge pull request #3027 from joakim-hove/vfp-ref-wrapper
...
Use std::reference_wrapper<> instead of pointers for VFP tables
2021-01-26 11:07:42 +01:00
Bård Skaflestad
7684f22073
Merge pull request #3000 from totto82/substituteSolveWellEq
...
substitute solveWellEq with inner iterations and initial solve
2021-01-26 09:59:37 +01:00
Joakim Hove
e4789d4eb7
Use std::reference_wrapper for VFP tables
2021-01-26 07:56:59 +01:00
Tor Harald Sandve
9277b2edee
get connection length and radius from the connection object
2021-01-25 14:08:59 +01:00
Atgeirr Flø Rasmussen
18a8d78f02
Merge pull request #3008 from GitPaean/cleaningup_after_aicd_pr
...
refactoring the pressure assemble equations for ICD
2021-01-22 08:26:16 +01:00
Tor Harald Sandve
91ab0f4d93
fix phase index for WELLPI for MSW
2021-01-21 11:58:24 +01:00
Tor Harald Sandve
036a021c63
fix well model for gasoil thermal
2021-01-21 11:37:25 +01:00
Tor Harald Sandve
36ba423d42
Add guard around solve well equation.
2021-01-20 08:46:58 +01:00
Tor Harald Sandve
62e485cbea
adapt to changes in the schedule class
2021-01-18 15:12:17 +01:00
Tor Harald Sandve
b6fe8cbd77
only update individual wells after solve eq
2021-01-18 15:12:17 +01:00
Tor Harald Sandve
27bea2fa4f
Solve well equation for the first iteration
2021-01-18 15:12:17 +01:00
Tor Harald Sandve
fbcd230eb2
substitute solveWellEq with one inner solve for newly opened wells
2021-01-18 15:12:17 +01:00
Atgeirr Flø Rasmussen
3a0dbdc6e7
Merge pull request #2993 from blattms/stdwell-comm-rebase-split-cont-clean
...
Final fixes to make distributed wells work for Norne.
2021-01-15 15:42:45 +01:00
Joakim Hove
17fcdfc87a
Use ScheduleState to handle VFP propertes + simplifications
2021-01-14 19:22:34 +01:00
Joakim Hove
5b129a3304
Use ScheduleState to manage network properties
2021-01-13 00:58:03 +01:00
Joakim Hove
b32f3f7546
Manage GConSale and GConSump with ScheduleState object
2021-01-12 18:29:59 +01:00
Joakim Hove
c1a1bf8683
Use ScheduleState to manage well test configuration
2021-01-12 14:08:41 +01:00
Joakim Hove
237eb2b7ee
Fetch events from ScheduleState
2021-01-11 17:42:30 +01:00
Kai Bao
00ca6dc492
putting all the pressure assmeble function to one function
...
assemblePressureEq for MSW
2021-01-08 16:46:32 +01:00
Kai Bao
2dc63b7a57
putting the three ICD assembleEq function to be one
...
to reduce the code duplication.
2021-01-08 15:09:27 +01:00
Kai Bao
286a7d2e5b
Merge pull request #3002 from totto82/moveWellOpCheck
...
move well operability check for STW
2021-01-08 11:28:35 +01:00
Joakim Hove
c1e10d81ba
Use ScheduleState to access nupcol
2021-01-06 15:10:05 +01:00
Tor Harald Sandve
5ee75c45e3
move well operability check for STW
2021-01-05 15:10:40 +01:00
Tor Harald Sandve
967f99500c
dont copy the well model in computeWellPotentials
2020-12-22 09:25:56 +01:00
Atgeirr Flø Rasmussen
02f93984f3
Merge pull request #2995 from totto82/stopfix
...
don't shut stopped wells
2020-12-21 15:51:36 +01:00
Tor Harald Sandve
33e3102983
output stopped wells
2020-12-21 13:51:21 +01:00
Tor Harald Sandve
bcdf6c8d02
don't shut stopped wells
2020-12-21 09:25:57 +01:00
Bård Skaflestad
eb4aabc71a
Merge pull request #2986 from totto82/scalePot
...
Initial well rates with the well potentials and scale the segment rates
2020-12-18 23:03:37 +01:00
Markus Blatt
ef6c953e0f
[bugfix] Fix partial sum
...
the total number of entries gathered was computed wrong, and we wrote
out ouf memory.
2020-12-18 14:48:19 +01:00
Markus Blatt
5b943761d7
Fixes StandardWell::computeConnectionDensities.
...
This computation is serial and needs a complete representation
of data attached to all preforations (even those stored on
another process). This commit uses the newly created factory to
correctly compute the connection densities for distributed wells.
2020-12-18 14:48:19 +01:00
Markus Blatt
69fd6495c0
Added factory to construct the global representation of perf data.
...
Some of our computations are heavily serial and need a complete
representation of the data attached to all perforation no matter
whether a perforation lives on the local partition or not. This commit
adds a factory that allows to easily create such a representaion and
helps writing data back to the local representation.
2020-12-18 14:48:19 +01:00
Markus Blatt
53b51eeba7
Use int as global index type in IndexSet
...
That is what seems to be used by ECL schedule, too.
2020-12-18 14:48:19 +01:00
Markus Blatt
4dff6fb168
Fixes StandardWell::updateProductivityIndex for distributed wells.
2020-12-18 14:48:19 +01:00
Markus Blatt
12f5a6aaff
Fixes StandardWell::allDrawDownWrongDirection for distributed wells.
2020-12-18 14:48:19 +01:00
Markus Blatt
ba1feadb63
Added missing parallel reduction to computeCurrentWellRates.
...
This is supposed to be summation over values at all perforations.
Hence, it needs a parallel sum.
2020-12-18 14:48:19 +01:00
Markus Blatt
fc4a7fa3c1
Fixes StandardWell::updateIPR for distributed wells.
...
Of course the summation needs to be over all perforations of the
wells, no matter where they reside. Hence we need communication.
2020-12-18 14:48:19 +01:00
Markus Blatt
c09797355d
Sum well rates in computeWellRatesWithBhp for distributed wells.
...
This needs summation over all procs that share the well as it needs
information from all perforations. Some of them might reside on other
processes.
2020-12-18 14:48:19 +01:00
Tor Harald Sandve
273538e1f4
some cleanup
2020-12-16 12:58:17 +01:00
Tor Harald Sandve
30ce605713
use the old initSegmentRates when opening up wells
2020-12-15 15:15:59 +01:00
Tor Harald Sandve
d027205c34
Initial well rates with the well potentials and scale the segment rates
...
Initialize the well rates with well potentials when computing rates from bhp or bhp(thp)
The bhp was already initialized.
Scale the segment rates and pressure to adapt to changes in well rate and bhp
Improves convergence of the well potential calculations
2020-12-15 08:39:22 +01:00
Joakim Hove
ab143d15c7
Make sure well is open before copying MSW well state from previous
2020-12-14 09:01:42 +01:00
Joakim Hove
aa345a36f1
Fetch connpos and number of perforations from WellInfo for MSW wells
2020-12-14 09:01:37 +01:00
Joakim Hove
cd19e987cf
Merge pull request #2981 from joakim-hove/skip-prev-closed-well
...
Skip previously shut wells in WellState init
2020-12-11 17:01:46 +01:00
Markus Blatt
9097907857
Merge pull request #2983 from blattms/stdwell-comm-works-on-spe9-2
...
use random access to simplify code at second occasion
2020-12-11 17:00:07 +01:00
Markus Blatt
fa83ed2fdc
use random access to simplify code at second occasion
2020-12-11 14:25:56 +01:00
Markus Blatt
354ae1f319
Merge pull request #2976 from blattms/stdwell-comm-works-on-spe9
...
Make distributed standard well work on SPE9.
2020-12-11 13:43:03 +01:00
Markus Blatt
b4ed86313e
use random access to simplify code during partial_sum of dist wells
2020-12-11 11:24:51 +01:00
Markus Blatt
02bab0957d
Merge pull request #2982 from totto82/fixPot
...
move the try-catch inside the compute potential loop
2020-12-11 11:24:21 +01:00
Tor Harald Sandve
2deee380f9
move the try-catch inside the compute potential loop
2020-12-11 08:26:52 +01:00
Joakim Hove
8c17172f08
Skip previously shut wells in WellState init
2020-12-10 16:41:10 +01:00
Atgeirr Flø Rasmussen
2673af7db5
Merge pull request #2978 from joakim-hove/use-well-status
...
Use enum Well::Status for well status in WellState
2020-12-10 12:43:40 +01:00
Markus Blatt
c0c1897ea9
Fix computeConnectionPressureDelta for distributed wells.
...
As this is as sequential (ordering matters!) as it can get we need to
communicate all perforations, do the partial sum with them and save
result back to the local perforations.
2020-12-10 11:32:52 +01:00
Markus Blatt
35218bf042
Added possibility to communicate values from perforations below.
2020-12-10 11:06:28 +01:00
Markus Blatt
3c66b729e1
Fixes perf rate initialization for distributed wells.
2020-12-10 11:06:28 +01:00
Joakim Hove
f5f3d8a98e
Introduce WellState::stopWell()
2020-12-10 09:54:37 +01:00
Atgeirr Flø Rasmussen
6e87ec6266
Merge pull request #2955 from blattms/stdwell-comm-rebase-split-pwell-info
...
Last part of current distributed standard wells.
2020-12-10 08:56:00 +01:00
Joakim Hove
bd3fa0af88
Use enum Well::Status for well status in WellState
2020-12-10 08:11:19 +01:00
Bård Skaflestad
a9e739d0a2
Merge pull request #2977 from joakim-hove/connpos
...
Change access to connpos to use WellMap instead of index counting
2020-12-09 20:50:03 +01:00
Joakim Hove
e4303c6784
Change access to connpos to use WellMap instead of index counting
2020-12-09 16:49:10 +01:00
Bård Skaflestad
b83f8f0397
Merge pull request #2949 from totto82/msw_operability2
...
Check operability for MSW
2020-12-09 15:06:21 +01:00
Markus Blatt
1d9d04161d
Use std::partial_sum to calculate displacements.
2020-12-09 12:30:48 +01:00
Markus Blatt
b97385c963
Fix and move changes to commented code to code to WellGroupHlper.hpp
2020-12-09 12:29:56 +01:00
Atgeirr Flø Rasmussen
f6353535c9
Merge pull request #2973 from blattms/include-config.h
...
[bugfix] Include config.h in WellGroupHelpers.cpp
2020-12-09 07:36:33 +01:00
Markus Blatt
4f93b2b7c6
Include config.h in WellGroupHelpers.cpp
...
as should be done in all cpp files.
2020-12-08 21:21:02 +01:00
Atgeirr Flø Rasmussen
6a376b3212
Merge pull request #2922 from atgeirr/make-new-well-rate-init-default
...
Make --alternative-well-rate-init=true the default.
2020-12-08 16:25:12 +01:00
Tor Harald Sandve
ba8d2068ea
pass trivial B_avg to init method in wellPI calculation
2020-12-08 12:51:25 +01:00
Tor Harald Sandve
5fb73c9714
Only check well operability for wells under THP and BHP limits
2020-12-08 12:38:25 +01:00
Tor Harald Sandve
8ca9cc241a
remove unused warnings
2020-12-08 12:38:25 +01:00
Tor Harald Sandve
bc04fb68ef
check the sum not individual phases for operability
2020-12-08 12:38:25 +01:00
Tor Harald Sandve
90050372ae
keep msw wells open even if bhp from thp fails
2020-12-08 12:38:25 +01:00
Tor Harald Sandve
a7664f9ea6
Add check for operability of MSW
2020-12-08 12:38:25 +01:00
Atgeirr Flø Rasmussen
dbb1d0e731
Silence warnings.
2020-12-08 09:33:07 +01:00
Markus Blatt
44bd18ea78
Used remove_reference_t
2020-12-07 20:41:15 +01:00
Markus Blatt
b6c1a1533c
Use vector::empty() instead of size() to test for entries.
2020-12-07 20:41:15 +01:00
Markus Blatt
07e676371e
Get global index from Well connection instead of computing it.
2020-12-07 20:22:54 +01:00
Markus Blatt
f7ed1b21fa
Determine pressure and depth above for distributed wells.
2020-12-07 16:32:33 +01:00
Markus Blatt
6f4fa114c1
barrier before and after MPI_Broadcast in non-production runs.
...
This helps with debugging as for some OpenMPI versions communication
might interfere with other communications if there are bugs.
2020-12-07 16:32:33 +01:00
Markus Blatt
901327ac54
Cater for empty parts of distributed wells for pvt region index.
2020-12-07 16:32:33 +01:00
Markus Blatt
a9df5065ae
Use global number of perforations when initializing well.
...
The local number of perforations is not correct anymore
for distributed wells.
2020-12-07 16:32:33 +01:00
Markus Blatt
0d6c39be2f
Fix distributed WellInterface::checkMaxRatioLimitCompletions
...
Not all connections are local, hence we need a sum across all processes
computing for this well.
2020-12-07 16:32:33 +01:00