Commit Graph

12039 Commits

Author SHA1 Message Date
Joakim Hove
72905f3e3b Gather WBP pressure data before summary eval 2020-12-03 09:40:40 +01:00
Markus Blatt
3996967344 Added a class with information and comunicator for parallel wells.
BlackoilWellModel now stores an instance of this class for each
well. Inside that class there is a custom communicator that only
contains ranks that will have local cells perforated by the well.
This will be used in the application of the distributed well operator.

This is another small step in the direction of distributed wells,
but it should be safe to merge this (note creation of the custom
communicators is a collective operation in MPI but done only once).
2020-12-03 09:29:43 +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
Bård Skaflestad
a46a732f9e PI: Treat Production Differently From Injection
This commit makes the PI/II calculation more closely mirror the
approach taken when computing connection flow rates.  In particular,
we switch to using total mobility, mixing and volume ratios for
injecting connections while producing connections continue to use
the phase mobilities and formation volume factors derived from
conditions in the connecting cells.  We also include dissolved
gas/oil ratios and vaporised oil/gas ratios in order to fully
capture the surface flow conditions.

We split the handling of producing/injecting connections out to
separate helper functions in order to make the overall logic in
updateProductivityIndex() more manageable.ex() more manageable.
2020-11-24 21:53:58 +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
Bård Skaflestad
9f12a2edba
Merge pull request #2931 from alfbr/guiderat-supported
Removed supported keywords from list
2020-11-24 21:51:30 +01:00
Bård Skaflestad
02957bcfda
Merge pull request #2937 from joakim-hove/summary-pass-inplace
Support summary keyword RHPV
2020-11-24 21:50:03 +01:00
Joakim Hove
62b119170d Pass Inplace argument to Summary::eval() 2020-11-24 12:33:05 +01:00
Joakim Hove
df292baeea Use Inplace::Phase enums instead of string tags 2020-11-24 12:33:05 +01:00
Atgeirr Flø Rasmussen
c880bc8688
Merge pull request #2939 from goncalvesmachadoc/aquifer
Fix well mixture for single-phase
2020-11-24 10:19:18 +01:00
Cintia Goncalves Machado
f0ba56652e restructure if 2020-11-24 09:05:18 +01:00
Cintia Goncalves Machado
82c8201f00 fix well Control Single-Phase 2020-11-23 18:40:37 +01:00
Bård Skaflestad
4ae70ee12e
Merge pull request #2927 from akva2/disable_python_tests_debian_packaging
Disable python tests in debian packaging
2020-11-23 10:52:36 +01:00
Atgeirr Flø Rasmussen
ea34c2c2df
Merge pull request #2911 from atgeirr/network-add-glift
Add the option to include gas lift for network calculations.
2020-11-20 15:23:12 +01:00
Joakim Hove
26c3262a2a
Merge pull request #2935 from joakim-hove/add-inplace
Pass the initial inplace values to Summary::eval()
2020-11-20 14:13:00 +01:00
Joakim Hove
e962374856 Pass the initial inplace values to Summary::eval() 2020-11-20 10:02:16 +01:00