Markus Blatt
3c66b729e1
Fixes perf rate initialization for distributed wells.
2020-12-10 11:06:28 +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
Bård Skaflestad
a9e739d0a2
Merge pull request #2977 from joakim-hove/connpos
...
Change access to connpos to use WellMap instead of index counting
2020-12-09 20:50:03 +01:00
Joakim Hove
e4303c6784
Change access to connpos to use WellMap instead of index counting
2020-12-09 16:49:10 +01:00
Bård Skaflestad
b83f8f0397
Merge pull request #2949 from totto82/msw_operability2
...
Check operability for MSW
2020-12-09 15:06:21 +01:00
Markus Blatt
1d9d04161d
Use std::partial_sum to calculate displacements.
2020-12-09 12:30:48 +01:00
Markus Blatt
b97385c963
Fix and move changes to commented code to code to WellGroupHlper.hpp
2020-12-09 12:29:56 +01:00
Tor Harald Sandve
73439070f7
Merge pull request #2963 from totto82/extbo_conv
...
add convergence check for extended blackoil model
2020-12-09 08:51:11 +01:00
Atgeirr Flø Rasmussen
f6353535c9
Merge pull request #2973 from blattms/include-config.h
...
[bugfix] Include config.h in WellGroupHelpers.cpp
2020-12-09 07:36:33 +01:00
Markus Blatt
4f93b2b7c6
Include config.h in WellGroupHelpers.cpp
...
as should be done in all cpp files.
2020-12-08 21:21:02 +01:00
Atgeirr Flø Rasmussen
6a376b3212
Merge pull request #2922 from atgeirr/make-new-well-rate-init-default
...
Make --alternative-well-rate-init=true the default.
2020-12-08 16:25:12 +01:00
Tor Harald Sandve
21fd76ccf6
add convergence check for extended blackoil model
2020-12-08 13:09:58 +01:00
Tor Harald Sandve
ba8d2068ea
pass trivial B_avg to init method in wellPI calculation
2020-12-08 12:51:25 +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
dbb1d0e731
Silence warnings.
2020-12-08 09:33:07 +01:00
Markus Blatt
44bd18ea78
Used remove_reference_t
2020-12-07 20:41:15 +01:00
Markus Blatt
b6c1a1533c
Use vector::empty() instead of size() to test for entries.
2020-12-07 20:41:15 +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
f7ed1b21fa
Determine pressure and depth above for distributed wells.
2020-12-07 16:32:33 +01:00
Markus Blatt
6f4fa114c1
barrier before and after MPI_Broadcast in non-production runs.
...
This helps with debugging as for some OpenMPI versions communication
might interfere with other communications if there are bugs.
2020-12-07 16:32:33 +01:00
Markus Blatt
901327ac54
Cater for empty parts of distributed wells for pvt region index.
2020-12-07 16:32:33 +01:00
Markus Blatt
a9df5065ae
Use global number of perforations when initializing well.
...
The local number of perforations is not correct anymore
for distributed wells.
2020-12-07 16:32:33 +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
6eb835c98e
Only use connections in the interior for distributed wells.
2020-12-07 16:32:33 +01:00
Markus Blatt
91e951420f
[bugfix] Pass references to gatherVectorOnRoot
2020-12-07 15:40:51 +01:00
Markus Blatt
fd4db9b933
Only sum rates for owned wells in WellGroupHelpers.
...
Well rates of distributed wells might be stored on multiple processes
but should be summed only once. Hence only the owner does the
summation with this commit.
2020-12-07 15:40:51 +01:00
Markus Blatt
c2f59b0629
Skip temp. reporting of some rates if distributed non-owned wells.
...
In the end of the report each the report from these wells will
come from another process, anyway.
2020-12-07 15:40:51 +01:00
Markus Blatt
472623d4a3
Output report for distributed wells only on owner.
...
For this we need to gather the connection data from
both WellState and WellStateFullyImplicitBlackoil.
2020-12-07 15:40:51 +01:00
Markus Blatt
580ef249b3
Skip wells not owned when communicating goup rates.
2020-12-07 15:40:50 +01:00
Markus Blatt
4edca71a1b
Correct pressure and pvt region index for distributed wells.
...
To get this we need to determine which process has the
very first open well connection and use that to broadcast
pressure and pvt region index.
2020-12-07 15:40:50 +01:00
Markus Blatt
a9a733ebc1
Make check whether a connection exists work for distributed wells.
2020-12-07 15:20:42 +01:00
Arne Morten Kvarving
7d19091cb3
changed: make member variables constexpr
...
may as well use the compile time information to eliminate
unnecessary code
2020-12-07 12:16:04 +01:00
Arne Morten Kvarving
bbf0f7d6af
remove unused members
2020-12-07 12:09:33 +01:00
Markus Blatt
932e3c8fb9
Use a custom handle for copying doubles for above.
...
The one previously used is unfortunately protected upstream (not noticed with gcc <=8).
2020-12-07 11:47:09 +01:00
Atgeirr Flø Rasmussen
d20641d97b
Only modify initial rates for producers.
2020-12-07 10:05:46 +01:00
Atgeirr Flø Rasmussen
a07ee07c66
Add missing template qualification.
2020-12-07 08:31:10 +01:00
Kai Bao
7ecb2e4813
Merge pull request #2866 from bska/activate-welpi-scaling
...
Initial Implementation of WELPI Feature
2020-12-04 20:44:42 +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
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