Joakim Hove
b34c161805
Use WellContainer<double> for RS / RV
2021-05-24 10:01:00 +02:00
Joakim Hove
506a349085
Use wellcontainer2 ( #3255 )
...
Use WellContainer<> to manage members in WellState
2021-05-20 16:16:12 +02:00
Joakim Hove
db731ac1ad
Use well local indices when iterating over segments
2021-05-20 08:17:19 +02:00
Joakim Hove
b0458cee33
Merge pull request #3268 from joakim-hove/wellstate-iget
...
Wellstate iget
2021-05-19 14:29: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
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
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
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
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
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
Arne Morten Kvarving
a4c0af09d9
fixed: do not use Opm:: prefix when inside namespace Opm
2021-05-05 11:59:18 +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
3c77b97cae
MultisegmentWellContribution: remove unused members
2021-04-30 13:09:25 +02:00
Tor Harald Sandve
70150ab212
Remove code duplication between STW and MSW
2021-04-30 09:27:35 +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
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
Joakim Hove
fda1d65494
Pass table argument to VFP getFLo()
2021-02-15 22:21:56 +01:00
Alf Birger Rustad
40800da0a8
Do not report confusing error
2021-02-11 23:48:30 +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
Joakim Hove
e4789d4eb7
Use std::reference_wrapper for VFP tables
2021-01-26 07:56: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
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
Tor Harald Sandve
967f99500c
dont copy the well model in computeWellPotentials
2020-12-22 09:25:56 +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
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
83a6c2abae
Merge pull request #2947 from blattms/fix-parallel-well-red
...
Prepares for apply distributed standard wells.
2020-12-04 20:32:30 +01:00
Kai Bao
61bebb2ec5
addressing reviewing comments for OPM/opm-simulators#2951
2020-12-03 15:23:14 +01:00
Kai Bao
6e8394eba6
supporting WSEGAICD
2020-12-03 15:23:14 +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
ab114b2e95
Use WellInterface::perf_data_ to calculate PI.
...
that simplifies the code a bit and will work with
distributed wells. Previously, we assumed that all
non-shut perforations are stored locally. That does
not hold any more.
2020-12-01 14:11:05 +01:00
Bård Skaflestad
bd79d4b9d5
PI/II: Switch to Using Values Only
...
We don't need to do the calculations in terms of EvalWell when we're
going to reduce this to the .value() before calling the PI/II
calculation routine. We can also get by with a simpler approach to
computing the II by assuming we always inject pure phases and no
cross flow in injectors.
Suggested by: [at]atgeirr
2020-11-24 21:53:58 +01:00
Bård Skaflestad
92589a697b
PI/II Loop: Switch Order of Injection/Production Branches
...
For readability reasons.
Suggested by: [at]atgeirr
2020-11-24 21:53:58 +01:00