Commit Graph

216 Commits

Author SHA1 Message Date
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
Tor Harald Sandve
4cf08deede BUGFIX fix direction of the resv check 2021-05-18 10:45:10 +02:00
Arne Morten Kvarving
1568479d3d fix function name
Frations -> Fractions
2021-05-12 10:50:46 +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
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
Bård Skaflestad
38292aca72 Merge pull request #3225 from totto82/refactorAssembleWellEq
Avoid code duplication
2021-05-10 12:27:52 +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
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
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
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
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
e1d117c59f Extract group state and create WGState to manage well & group state 2021-04-27 10:55:38 +02: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
Joakim Hove
9662d4019e Use enum Well::Status to indicate well status instead of bool 2021-03-20 20:33:28 +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
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
4f55c25607 add support for POTN in WECON 2021-03-03 10:31:57 +01:00
Markus Blatt
1ce5c59851 Honor GEFAC for top group in get{Injection,Production}Controls. 2021-03-01 10:26:40 +01:00
Arne Morten Kvarving
77692c1f99 quell unused parameter warning 2021-01-28 12:52:19 +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
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
Tor Harald Sandve
9277b2edee get connection length and radius from the connection object 2021-01-25 14:08:59 +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
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
Joakim Hove
17fcdfc87a Use ScheduleState to handle VFP propertes + simplifications 2021-01-14 19:22:34 +01:00
Joakim Hove
b32f3f7546 Manage GConSale and GConSump with ScheduleState object 2021-01-12 18:29:59 +01:00
Tor Harald Sandve
bcdf6c8d02 don't shut stopped wells 2020-12-21 09:25:57 +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
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
a7664f9ea6 Add check for operability of MSW 2020-12-08 12:38:25 +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
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
Markus Blatt
a9a733ebc1 Make check whether a connection exists work for distributed wells. 2020-12-07 15:20:42 +01:00
Markus Blatt
2e5b1c8d54 Use reference for WellInterface::parallel_well_info_ 2020-12-04 13:24:31 +01:00
Markus Blatt
3d92e41cad Recover prev. iteration count and curves for undistributed wells
Rounding errors for `B.mmv(x,y)` are slightly different from
```
Y temp(y);
B-mv(x, temp);
y -= temp;
```
2020-12-03 11:10:36 +01:00
Markus Blatt
8ee58096ba Make the parallel reduction when applying the Wells.
The B matrix is basically a component-wise multiplication
with a vector followed by a parallel reduction. We do that
reduction to all ranks computing for the well to save the
broadcast when applying C^T.
2020-12-03 11:10:36 +01:00
Markus Blatt
fdf6f4244c [bugfix] Do not iterate pass end of perf_data_ in initCompletions
IMHO this might have happened if perf_data_ is empty
or if the last connection is closed. (Discovered while
working on distributed wells but might happen already
before!)
2020-12-01 14:54:48 +01:00
Bård Skaflestad
75156cd872 Unconditionally Calculate PI at End of Timestep
This commit ensures that we calculate the well and connection level
per-phase steady-state productivity index (PI) at the end of a
completed time step (triggered from endTimeStep()).

We add a new data member,

    BlackoilWellModel<>::prod_index_calc_

which holds one WellProdIndexCalculator for each of the process'
local wells and a new interface member function

    WellInterface::updateProductivityIndex

which uses a per-well PI calculator to actually compute the PI
values and store those in the WellState.  Implement this member
function for both StandardWell and MultisegmentWell.  Were it not
for 'getMobility' existing only in the derived classes, the two
equal implementations could be merged and moved to the interface.

We also add a new data member to the WellStateFullyImplicitBlackoil
to hold the connection-level PI values.  Finally, remove the
conditional PI calculation from StandardWell's well equation
assembly routine.
2020-11-24 21:53:58 +01:00
Ove Sævareid
0f7e66e151 Alternative solvent extension for the black oil model. 2020-11-17 12:33:19 +01:00
Atgeirr Flø Rasmussen
cb928f90f0 Refactor per-perforation code into separate function.
Also make some methods const.
2020-11-16 11:19:03 +01:00