Joakim Hove
3ec7feba75
Update WellState::bhp()
2021-05-19 10:05:11 +02:00
Arne Morten Kvarving
0f4bb49ed9
changed: split out non-typetag dependent code from WellInterface
2021-05-19 09:25:03 +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
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