Commit Graph

12002 Commits

Author SHA1 Message Date
Bård Skaflestad
d06b7f9ec2 Record Basic Support for WELPI
Remove 'WELPI' keyword from MissingFeatures.
2020-12-04 15:16:25 +01:00
Bård Skaflestad
319c240336 Run WELPI Scaling At Beginning of Report Step
This commit implements the WELPI feature.  We calculate new PI/II
values for all wells in the event of a WELPI request and use those
values for well-specific WELPI request, to calculate CTF scaling
factors.  We then apply those factors to all subsequent editions of
the well provided the connection factors are eligible for
WELPI-based rescaling.

If we trigger a rescaling event we also reset the WellState's
internal copies of the CTFs and reinitialize the Well PI calculators
to ensure the rescaling takes effect immediately.  Since we rely on
PI values being available at the end of each time step we must also
take care to forward those values from the WellState of one report
step to the WellState of the next report step.

Finally, take care not to redo a WELPI scaling if we've already
performed the scaling operation and restart a report step.  This,
in turn, happens if WELPI is requested on the first report step.
2020-12-04 15:16:25 +01:00
Bård Skaflestad
f6130861df Well Data: Report CTFs for Shut Connections
Needed to ensure that the CTFs reported to the summary files will be
correct in the presence of WELPI even for shut connections.
2020-12-04 15:16:25 +01:00
Bård Skaflestad
e780d107ab Split Well Stat Initialization Out to Helper Function
Mostly to reduce the complexity of the implementation of
beginReportStep() and to enable easier reordering of the stages.
2020-12-04 15:16:25 +01:00
Bård Skaflestad
4e9e60a71b Refactor Well Guide Rate Summary Assignment
In anticipation of adding more steps later.
2020-12-04 15:16:24 +01:00
Bård Skaflestad
c800c5376d Add Special-Purpose Operation to Reset WellState CTFs
This commit adds a new member function

    WellState::resetConnectionTransFactors

which overwrites the transmissibility factor of 'well_perf_data_'
pertaining to a particular well.  This is to keep the values in
sync following a rescaling operation such as WELPI.
2020-12-04 15:16:24 +01:00
Bård Skaflestad
aaca907f77 Productivity Index Calculator: Add Reinitialization operation
This commit adds a new member function

    WellProdIndexCalculator::reInit(const Well& well)

which reinitializes the internal arrays in the same way as the
constructor.  This is needed to ensure that the PI calculation
device is synchronised in the case of CTF rescaling-e.g., as a
result of WELPI.
2020-12-04 15:16:24 +01:00
Bård Skaflestad
3ac2f02f4f
Merge pull request #2839 from akva2/remove_liftopt_missing
remove LIFTOPT and WLIFTOPT from missing features
2020-12-04 13:52:09 +01:00
Joakim Hove
66a532f33e
Merge pull request #2957 from joakim-hove/wbp-collect
Wbp collect
2020-12-04 09:11:21 +01:00
Joakim Hove
7e8132b965
Merge pull request #2951 from GitPaean/wsegaicd
supporting WSEGAICD
2020-12-04 08:52:50 +01:00
Kai Bao
61bebb2ec5 addressing reviewing comments for OPM/opm-simulators#2951 2020-12-03 15:23:14 +01:00
Kai Bao
3f5402fb5b adding running test for WSEGAICD 2020-12-03 15:23:14 +01:00
Kai Bao
6e8394eba6 supporting WSEGAICD 2020-12-03 15:23:14 +01:00
Arne Morten Kvarving
24e6e8b875
Merge pull request #2769 from plgbrts/gaswater
add gas-water simulator
2020-12-03 14:51:21 +01:00
Joakim Hove
72905f3e3b Gather WBP pressure data before summary eval 2020-12-03 09:40:40 +01:00
Arne Morten Kvarving
76eec37e5a fixed: use correct type tag in ebos_gaswater 2020-12-03 09:13:23 +01:00
Paul Egberts
877c0b723d fix missing argument for BlackoilTwophaseIndices 2020-12-03 09:04:11 +01:00
Paul Egberts
13cd4b476e fix disabled component index 2020-12-03 09:04:11 +01:00
Paul Egberts
d0421582e1 add gas-water simulator 2020-12-03 09:04:11 +01:00
Kai Bao
69948f8469
Merge pull request #2960 from bska/refactor-wellptr-creation
Well Model: Add Helper for Well Pointer Creation
2020-12-02 20:33:16 +01:00
Bård Skaflestad
b7fd9e42f4 Well Model: Add Helper for Well Pointer Creation
This commit adds a new helper function,

  WellInterfacePtr createWellPointer(wellID, reportStep) const

which is responsible for creating appropriately typed derived well
pointers depending on well types (multi-segment vs. standard).
This, in turn, allows us to centralise this logic and use the same
factory function both when creating the 'well_container_' and when
forming the well-test objects.

Finally, this helper will become useful for calculating PI/II values
of shut/stopped wells in the context of WELPI.
2020-12-02 16:30:46 +01:00
Atgeirr Flø Rasmussen
30856af1ab
Merge pull request #2959 from blattms/fix-initCompletions
[bugfix] Do not iterate pass end of perf_data_ in initCompletions
2020-12-02 16:11:05 +01:00
Arne Morten Kvarving
945ecd4f60
Merge pull request #2961 from akva2/reg_test_onephase
add regression tests for flow_onephase
2020-12-02 14:49:19 +01:00
Arne Morten Kvarving
9c5d1aa034 add regression tests for flow_onephase 2020-12-02 11:46:38 +01:00
Joakim Hove
ced3c99e09
Merge pull request #2953 from joakim-hove/udq-eval-off-by-one
Shift the report step argument used when calling UDQ eval
2020-12-02 08:34:43 +01:00
Bård Skaflestad
bb2f1a8316
Merge pull request #2958 from blattms/use-perf-data-for-well-pi
Use WellInterface::perf_data_ to calculate PI.
2020-12-01 17:37:05 +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
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
Atgeirr Flø Rasmussen
f34b286636
Merge pull request #2944 from goncalvesmachadoc/aquifer
Remove unnecessary check for saturations
2020-12-01 08:40:28 +01:00
Joakim Hove
1d86e2dc97 Pass wbp index list to output module 2020-12-01 07:52:58 +01:00
Joakim Hove
1bb7b0d30f Use unique_ptr for outputmodule member in EclWriter 2020-11-30 13:31:04 +01:00
Joakim Hove
1fbc25979f
Merge pull request #2940 from joakim-hove/pavg-calculators
WIP: Pavg calculators
2020-11-30 13:17:23 +01:00
Joakim Hove
c0e3de3815 Pass WBP calculators to Summary::eval 2020-11-30 11:30:00 +01:00
Joakim Hove
11bbb33337 Shift the report step argument used when calling UDQ eval 2020-11-30 10:14:20 +01:00
Arne Morten Kvarving
b7e3ca1326
Merge pull request #2928 from akva2/simplify_buildsystem_models
Use lists in buildsystem and rename some ebos models to be consistent with flow
2020-11-27 19:39:39 +01:00
Bård Skaflestad
f23b301f40
Merge pull request #2950 from bska/fix-wpicalc-oob
Well PI: Use Appropriate Calculator for Each Well
2020-11-27 18:52:02 +01:00
Bård Skaflestad
b0dc5c0a63 Well PI: Use Appropriate Calculator for Each Well
The original code assumed that

    well_container_.size() == numLocalWells()

This assumption does not hold when wells open/shut dynamically in
the context of WECON and/or WTEST.

Switch to indexing into the 'prod_index_calc_' vector using the
well's own linear index instead of manually advancing iterators.

Pointy Hat: [at]bska
2020-11-27 14:50:08 +01:00
Atgeirr Flø Rasmussen
374764fc6f
Merge pull request #2946 from atgeirr/add-more-amg-options
Add more AMG options to allow setting from JSON.
2020-11-27 08:57:04 +01:00
Atgeirr Flø Rasmussen
5617a2ef5c
Merge pull request #2919 from blattms/do-not-filter-distributed
Do not filter connections on the schedule of the loadbalanced grid.
2020-11-26 16:43:09 +01:00
Atgeirr Flø Rasmussen
6e31c77234 Add more AMG options to allow setting from JSON. 2020-11-26 15:37:50 +01:00
Tor Harald Sandve
f924ac7ffe
Merge pull request #2933 from totto82/dunefem
WIP make Flow compile with dune-fem
2020-11-26 15:10:34 +01:00
Markus Blatt
cb49f652db
Merge pull request #2943 from atgeirr/use-symmetricdependency-criterion-amg
Use better-suited AMG criterion.
2020-11-26 11:28:31 +01:00
Cintia Goncalves Machado
c24cd93da5 remove more checks 2020-11-25 22:48:01 +01:00
Cintia Goncalves Machado
76bde77f5c do not check for saturation for single-phase 2020-11-25 21:46:40 +01:00
Atgeirr Flø Rasmussen
a0ca8dd0b5 Use better-suited AMG criterion.
Use SymmetricDependency instead of SymmetricMatrixDependency.
Our matrices are structurally symmetric, but not numerically symmetric.
2020-11-25 16:40:03 +01:00
Atgeirr Flø Rasmussen
d8800cc077
Merge pull request #2846 from bska/calc-wellpi-endoftimestep
Unconditionally Calculate PI at End of Timestep
2020-11-25 08:14:48 +01:00
Markus Blatt
19bebcefe2 Broadcast schedule another time after filtering connection on rank 0
Only after rank zero does the filtering the schedule the well
definitions in there are guarateed to have no perforations to inactive
cells. Therefore we broadcast the schedule another time to publish
this to all processes.

Previously, we did the filtering locally on these processes bit that
did also remove perforations to cells that are active globally but
not locally. That seems very hard to work with when allowing
distributed wells.
2020-11-24 22:46:49 +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
Bård Skaflestad
c8a43b982c PI/II Loop: Check That We Process All Active Connections
Assert that the 'subsetPerfID' is equal to number_of_perforations_
at the end of the loop.

Suggested by: [at]atgeirr
2020-11-24 21:53:58 +01:00