Commit Graph

8186 Commits

Author SHA1 Message Date
Joakim Hove
3de4213c8c
Merge pull request #3236 from akva2/wellinterface_generic_split
changed: split out non-typetag dependent code from WellInterface
2021-05-19 14:46:56 +02:00
Joakim Hove
b0458cee33
Merge pull request #3268 from joakim-hove/wellstate-iget
Wellstate iget
2021-05-19 14:29:26 +02:00
Alf Birger Rustad
7c9d87de4f Remove GLIFTOPT and NETWORK from unsupported keywords. 2021-05-19 13:19:26 +02:00
Tor Harald Sandve
dacd782639
Merge pull request #3270 from akva2/well_small_optims
Some small code eliminiations in well code
2021-05-19 12:35:57 +02:00
Tor Harald Sandve
84dcde5377
Merge pull request #3272 from totto82/fixRESVgroup
FIX wrong type RESV group control
2021-05-19 12:17:33 +02:00
Joakim Hove
203cc2ff73 Update WellState::temperature() 2021-05-19 10:05:11 +02:00
Joakim Hove
6af03f4a6a Update WellState::thp() 2021-05-19 10:05:11 +02:00
Joakim Hove
3ec7feba75 Update WellState::bhp() 2021-05-19 10:05:11 +02:00
Tor Harald Sandve
2a5610e5cf
Merge pull request #3276 from hakonhagland/stage2_fix2
Fixes a bug in GasLiftStage2_impl.hpp
2021-05-19 09:28:44 +02:00
Arne Morten Kvarving
0f4bb49ed9 changed: split out non-typetag dependent code from WellInterface 2021-05-19 09:25:03 +02:00
Tor Harald Sandve
ce5e3ac075 remove ElemType and zero() 2021-05-19 09:00:53 +02:00
Tor Harald Sandve
93237ec345 FIX wrong type RESV group control 2021-05-19 09:00:53 +02:00
Tor Harald Sandve
7f3dc1dc48
Merge pull request #3275 from atgeirr/fix-msw-indices
Fix incorrect indices for 1 and 2-phase cases with MSW.
2021-05-19 07:53:43 +02:00
Håkon Hægland
0abcac3777 Fixes a bug in GasLiftStage2_impl.hpp
When making gas lift parallel, see PR #3148, redistributeALQ() did not
reserve space for the decremental and incremental gradients. Later in
execution thread when push_back() was called to add elements to the
vectors, the capacity of the vector could get exceeded and hence the
internal representation of the vector could be reallocated. This seems
to have caused access to undefined memory errors since the iterators into
the vectors was long longer valid.
2021-05-19 00:54:48 +02:00
Atgeirr Flø Rasmussen
377d7eca60
Merge pull request #3271 from totto82/fixRESVpred
BUGFIX fix direction of the resv check
2021-05-18 19:05:17 +02:00
Atgeirr Flø Rasmussen
32d0854f14 Fix incorrect indices for 1 and 2-phase cases with MSW. 2021-05-18 15:32:15 +02:00
Arne Morten Kvarving
bcfab1fed3 use if constexpr to eliminate some brine code 2021-05-18 15:04:47 +02:00
Arne Morten Kvarving
db668e8d80 make has_energy constexpr and use if constexpr to eliminate code 2021-05-18 15:04:47 +02:00
Arne Morten Kvarving
268201eeb1 make has_polymermw constexpr and use if constexpr to eliminate code 2021-05-18 15:04:47 +02:00
Arne Morten Kvarving
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
Arne Morten Kvarving
8c34172ef0 remove some Opm:: qualifiers inside Opm namespace 2021-05-18 10:09:45 +02:00
Joakim Hove
842e0a53a4
Merge pull request #3263 from akva2/move_ecldeck_param
changed: move Deck parameter to BlackoilModelParametersEbos
2021-05-18 08:19:19 +02:00
Joakim Hove
28129b87bb
Merge pull request #3250 from bska/activate-aqudata-move-semantics
Reduce Aquifer Data Copying
2021-05-18 08:08:00 +02:00
Joakim Hove
ee91333402
Merge pull request #3261 from joakim-hove/wellstate-msw1
Reorder variables and remove .reserve() calls
2021-05-18 07:54:32 +02:00
Bård Skaflestad
15116bf2a9 Reduce Aquifer Data Copying
This commit switches to using 'map<>::insert_or_assign()' as the
primary interface for collecting dynamic aquifer data.  In turn,
this activates move semantics for the substructures and reduces the
number of times the data is copied.

Insert_or_assign requires the key, so provide this value--i.e., the
aquifer ID--as part of the AquiferInterface.
2021-05-17 23:24:52 +02:00
Arne Morten Kvarving
8d1a8126ea changed: move Deck parameter to BlackoilModelParametersEbos
it is used there. now eclbasevanguard.hh includes
BlackoilModelParametersEbos, instead of the other way around.
2021-05-15 14:42:50 +02:00
Joakim Hove
2ac7b5e4bf Reorder variables and remove .reserve() calls 2021-05-15 08:49:14 +02:00
Peter Verveer
ad0b62ab1c Simplify the message for keywords with only a single record 2021-05-14 15:12:12 +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
Arne Morten Kvarving
ca1a799e95 changed: put partially supported keywords in separate compile unit
avoid triggering full simulator rebuilds when updating
this list
2021-05-12 14:29:33 +02:00
Arne Morten Kvarving
306593af3b changed: put unsupported keywords in separate compile unit
avoid triggering full simulator rebuilds when updating
this list
2021-05-12 14:29:33 +02:00
Cintia Goncalves Machado
5c51d4dea4
Remove COPYREG and add RPTSOL
Remove COPYREG (https://github.com/OPM/opm-simulators/issues/3234) and add RPTSOL (https://github.com/OPM/opm-simulators/issues/3248) as non-critical missing keyword
2021-05-12 12:04:01 +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
Arne Morten Kvarving
3397cd6252 eclbasevanguard: split in template and non-template parts 2021-05-11 09:15:11 +02:00
Arne Morten Kvarving
86bc095e3a eclbasevanguard: change canonicalDeckPath to std::string
makes use of filesystem an implementation detail
2021-05-11 09:15:11 +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
Joakim Hove
df2f27ab43
Merge pull request #3230 from GitPaean/aquifer_keyowrds_supported
removing numerical aquifer keywords from unsupported keyword list
2021-05-11 07:22:55 +02:00
Kai Bao
2d24abb630 removing numerical aquifer keywords from unsupported list
AQUNUM, AQUCON
2021-05-10 22:48:56 +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
Bård Skaflestad
9139e3c2f1
Merge pull request #3213 from akva2/no_opm_in_opm
fixed: do not use Opm:: prefix when inside namespace Opm
2021-05-05 16:15:50 +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
Joakim Hove
24285009a8 The MAPUNITS keyword is supported 2021-05-05 08:12:40 +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
Bård Skaflestad
c0b68ea117
Merge pull request #3205 from akva2/relperm_compile_unit
RelpermDiagnostics: make templates private
2021-05-04 00:19:24 +02:00
Arne Morten Kvarving
0e2c61856f RelpermDiagnostics: make templates private
use explicit template instantation. to avoid rebuilding
this code over and over (minor), and to avoid includes in headers.
2021-05-03 20:39:37 +02:00
Joakim Hove
8a78dc1c59 Add class GlobalWellInfo and use it from WellState 2021-05-03 13:28:28 +02:00
Bård Skaflestad
aa1df1352f
Merge pull request #3197 from akva2/move_to_comp_units
Move to separate compilation units
2021-04-30 16:50:54 +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
Arne Morten Kvarving
cf06a322ec countGlobalCells: put non-template code in separate compile unit 2021-04-30 15:09:23 +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
17963b07c1 ParallelRestart: use forwarding 2021-04-30 13:18:44 +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
Arne Morten Kvarving
541ebdde13 phaseUsageFromDeck: move to separate compile unit 2021-04-29 13:00:23 +02:00
Arne Morten Kvarving
0cb0971673 ParallelFileMerger: move to separate compile unit 2021-04-29 12:57:27 +02:00
Arne Morten Kvarving
b30fc4eac1 ExtractParallelGridInfoToISTL: use forwarding 2021-04-29 12:50:19 +02:00
Arne Morten Kvarving
238109b0e9 FlowMainEbos: use forwarding
also remove unnecessary includes
2021-04-29 12:47:27 +02:00
Arne Morten Kvarving
bbfda699d3 KeywordValidation: use forwarding 2021-04-29 12:46:49 +02:00
Arne Morten Kvarving
5fb5f79318 readDeck: use forwarding 2021-04-29 12:43:51 +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
Bård Skaflestad
eb8e270b50
Merge pull request #3190 from akva2/fix_missing_include
fixed: include <cstring> for strlen
2021-04-28 11:03:55 +02:00
Joakim Hove
8bae5e0127 Add class ALQState to manage the ALQ state in the WellState 2021-04-28 09:33:06 +02:00
Arne Morten Kvarving
f004b59217 fixed: include <cstring> for strlen 2021-04-28 09:01:09 +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
Bård Skaflestad
6cbe5ae8f4
Merge pull request #3178 from joakim-hove/wellstate-internalize-pu
WellState will internalize PhaseUsage member
2021-04-27 06:33:18 +02:00
Bård Skaflestad
266197fd75
Merge pull request #3186 from akva2/include_headers
fixed: include required headers where needed
2021-04-27 06:31:34 +02:00
Joakim Hove
a68589eb9a WellState will internalize PhaseUsage member 2021-04-27 00:11:04 +02:00
Arne Morten Kvarving
a4c5429341 fixed: include required headers where needed 2021-04-26 22:39:32 +02:00
Joakim Hove
29673a168d Use std::array<> in PhaseUsage 2021-04-26 19:03:22 +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
Markus Blatt
824df60e94
Merge pull request #3150 from Tongdongq/always_print_prec_info
Always print CHOW_PATEL info if used
2021-04-21 19:51:22 +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
Arne Morten Kvarving
b9c19958fb fixed: mark possibly unused variables as such to quell warnings
also take chance to break an extremely long line
2021-04-19 09:49:20 +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
Markus Blatt
13f62a718b
Merge pull request #2998 from g-marchiori/fpgasolver-integration
Added fpgaSolver, requires Xilinx Alveo U280 FPGA board
2021-04-15 11:21:39 +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
Bård Skaflestad
481c72a0fc
Merge pull request #3156 from joakim-hove/well-init-restart-bug
Well init restart bug
2021-04-14 09:10:30 +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
Alf Birger Rustad
a7f7c1af72 Removed four supported keywords 2021-04-13 09:53:15 +02:00
Peter Verveer
1640c4afcf Implement a new keyword validator 2021-04-12 16:47:02 +02:00
Joakim Hove
e1fe527719 Change output to indicate start of time step 2021-04-10 13:37:12 +02:00
Tong Dong Qiu
5466b0f5f2 Always print CHOW_PATEL info if used 2021-04-09 16:19:45 +02:00
Joakim Hove
1d5a245b95 Use value object for endpoints 2021-04-07 10:40:48 +02:00
Atgeirr Flø Rasmussen
c6431c2f04
Merge pull request #3042 from totto82/changeDefaultMinTimeStepShutting
change default MinTimeStepBeforeShuttingProblematicWellsInDays to 0.01
2021-04-07 08:04:05 +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
Joakim Hove
3d226abd24 Remove references to RestartConfig 2021-03-26 08:03:07 +01:00
Bård Skaflestad
7503cfd76a Address PR Review Comments 2021-03-24 23:13:50 +01:00
Bård Skaflestad
578fa4b6c3 Report Dimensionless Time and Pressure for CT Aquifers
This commit adds support for calculating and reporting the
dimensionless time (simulator time divided by aquifer's time
constant) and pressure (influence function evaluated at
dimensionless time) values as part of the Carter-Tracy aquifer's
'aquiferData()' reporting function.

These values are useful in their own right, e.g., for summary output
through the keywords AAQTD and AAQPD, but they are also needed for
ECLIPSE restart purposes.
2021-03-24 23:13:50 +01: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
Bård Skaflestad
41fd301d16
Merge pull request #3131 from fgfuchs/global_time_fix
fix bug that sets global_time to 0
2021-03-23 15:51:47 +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
Franz Georg Fuchs
b86d5e2ad0 fix bug that sets global_time to 0 2021-03-23 12:19:07 +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
2b34dc843c
Merge pull request #3119 from totto82/mintimestep
Change minimum timestep size to 1e-12
2021-03-19 09:39:35 +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
1582d92d06 Change minimum timestep size to 1e-12
the unit is days for field and metric and hours for lab
the purpose is to shut down "dead" simulations
2021-03-18 10:45:26 +01:00
Bård Skaflestad
0667497108
Merge pull request #3039 from GitPaean/new_numerical_aquifer
New numerical aquifer
2021-03-16 16:30:53 +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
Kai Bao
1bd7d8775a Merge remote-tracking branch 'upstream/master' into new_numerical_aquifer 2021-03-15 12:16:09 +01:00
Kai Bao
116b77bd8a addressing the reviewing comments for PR OPM/opm-simulators#3039
putting the numerical aquifer related modification in a function and the
function is called after the equilibration calculation, so it will work
for different equilibration methods.
2021-03-15 10:21:40 +01:00