Commit Graph

154 Commits

Author SHA1 Message Date
Joakim Hove
4b69d12335 Use PerfData for perforation rates 2021-06-10 07:18:46 +02:00
Joakim Hove
b6318ac017 Add WellContainer<PerfData> to WellState 2021-06-10 07:18:46 +02:00
Joakim Hove
023edc67e5 Remove first perf member from Well classes 2021-06-08 14:24:26 +02:00
Joakim Hove
32a6f32660 Use WellContainer to manage perf phase rate 2021-06-05 07:50:56 +02:00
Joakim Hove
6a21371b59 Use WellContainer to manage perf phase rates 2021-06-04 18:23:20 +02:00
Joakim Hove
76292552ec Use WellContainer for perf rate of polymer/solvent/brine 2021-06-04 18:23:20 +02:00
Joakim Hove
104036d4b8 Use WellContainer for perf water velocity 2021-06-04 18:23:20 +02:00
Joakim Hove
a2009b1189 Use WellContainer for perforation throughput 2021-06-04 18:23:20 +02:00
Joakim Hove
b0fd14a597 Use WellContainer<> for perforation skin pressure 2021-06-04 18:23:20 +02:00
Joakim Hove
1a6737aff3 Use well index for perforation rates 2021-06-03 13:29:45 +02:00
Joakim Hove
739f6ad28a Use well index for solvent perf rates 2021-06-03 13:21:23 +02:00
Joakim Hove
a2195f367d Use well index for brine perf rates 2021-06-03 13:21:23 +02:00
Joakim Hove
fa829cce7a Use well index for polymer perforation rates 2021-06-03 13:21:23 +02:00
Joakim Hove
f62b0a5d1e Use well index for well water perf velocity 2021-06-03 13:21:23 +02:00
Joakim Hove
8f9a3f0140 Use Well index for perf skin pressure 2021-06-03 13:21:23 +02:00
Joakim Hove
89ae75b46c Use well index to access WellState::perfThroughput() 2021-06-03 13:21:23 +02:00
Joakim Hove
59f36eacc0 Remove WellState::top_segment_index 2021-06-03 10:46:26 +02:00
Joakim Hove
5d8a4c5751 Remove WellState member nseg_ 2021-06-03 10:46:26 +02:00
Joakim Hove
19ba223c2a Use SegmentState for segment_number() 2021-06-03 10:46:26 +02:00
Joakim Hove
ac12c8b3a4 Use SegmentState for rates 2021-06-03 10:46:26 +02:00
Joakim Hove
eac69061c2 Use SegmentState when copying pressure 2021-06-03 10:46:04 +02:00
Joakim Hove
eb937e8ba2 Use SegmentState as backing store for segment pressure 2021-06-03 10:46:04 +02:00
Joakim Hove
7d89c6e09c Add std::string overload for WellState::segments() 2021-06-03 10:46:04 +02:00
Joakim Hove
3fd6d7781b Remove WellState::segPressDrop() 2021-06-03 10:46:04 +02:00
Joakim Hove
6a859c0664 Segmentstate for accelarition pressure drop 2021-06-03 10:46:04 +02:00
Joakim Hove
33f18279d7 Use segmentstate for hydrostatic pressure drop 2021-06-03 10:46:04 +02:00
Joakim Hove
9801469488 Use segmentstate for friction pressure 2021-06-03 10:46:04 +02:00
Joakim Hove
45e7c8c982 Add WellContainer<SegmentState> member 2021-06-03 10:46:04 +02:00
Joakim Hove
c5a7b49c3d Use perfrates.size() instead of storing num_perf explicitly 2021-06-02 10:21:02 +02:00
Joakim Hove
2d67d085ef Remove segment pressure drop as separate variable 2021-05-31 09:10:33 +02:00
Joakim Hove
db49c8aeef
Merge pull request #3309 from joakim-hove/wellrates-at
Make sure all wells are added to the well_rates map
2021-05-29 07:53:45 +02:00
Joakim Hove
a1b45b06e4 Use well index for segment acceleration pressure loss 2021-05-28 07:32:30 +02:00
Joakim Hove
960de96d75 Use well index for segment hydrostatic pressure drop 2021-05-28 07:32:30 +02:00
Joakim Hove
ee1a1c6afc Use well index for segment friction pressure drop 2021-05-28 07:32:29 +02:00
Joakim Hove
92e31b4ee3 Use well index for segment pressure drop 2021-05-28 07:32:29 +02:00
Joakim Hove
dac62bbab3 WellState::well_rates is only updated by well owner 2021-05-27 15:03:24 +02:00
Joakim Hove
509fe67ff5 Make sure all wells are added to the well_rates map 2021-05-27 15:03:24 +02:00
Joakim Hove
5ac53f8106 Use well index for segment rates 2021-05-27 10:45:33 +02:00
Joakim Hove
34ef516472 Use well index for segment pressure 2021-05-27 10:45:33 +02:00
Joakim Hove
9b2de5bbf9
Merge pull request #3293 from joakim-hove/wellcontainer-bhp
Use WellContainer<double> for bhp/thp/temperature
2021-05-26 07:26:41 +02:00
Joakim Hove
c400b6eeef
Merge pull request #3290 from joakim-hove/wellcontainer-rsrv
Use WellContainer<double> for RS / RV
2021-05-26 07:22:51 +02:00
Joakim Hove
987fcc3b61 Use WellContainer<double> for bhp/thp/temperature 2021-05-25 11:25:07 +02:00
Joakim Hove
b948162962 Assemble all non-wellcontainer WellState members 2021-05-25 07:47:31 +02:00
Joakim Hove
b34c161805 Use WellContainer<double> for RS / RV 2021-05-24 10:01:00 +02:00
Joakim Hove
23180e06d2 Rename WellStateFullyImplicitBlackoil -> WellState 2021-05-21 15:07:21 +02:00
Joakim Hove
fc3c044a4e Remove WellState as base class 2021-05-21 14:57:38 +02:00
Joakim Hove
3dcb0742d0 Moved init and initSingleWell and removed WellState.cpp 2021-05-21 14:57:38 +02:00
Joakim Hove
e26e3950b6 Move rates and perf pressure 2021-05-21 14:57:38 +02:00
Joakim Hove
7b5c085bb5 Move bhp / thp / temperatur api 2021-05-21 14:57:38 +02:00
Joakim Hove
4418fcc477 Move phase access 2021-05-21 14:57:38 +02:00
Joakim Hove
7cb7b0eb82 Moved well status routines 2021-05-21 14:57:38 +02:00
Joakim Hove
0f8dec5224 Move parallelWellInfo() 2021-05-21 14:57:38 +02:00
Joakim Hove
40e8632f24 Move resetConnectionFactors() 2021-05-21 14:57:38 +02:00
Joakim Hove
a891a44756 Move wellIsOwned() 2021-05-21 14:57:38 +02:00
Joakim Hove
7695abfe25 Move wellMap() and numWells() accessors 2021-05-21 14:57:38 +02:00
Joakim Hove
6ac9e722fc Move reportConnections 2021-05-21 14:57:38 +02:00
Joakim Hove
5b86ecd3e2 Move WellState::report to WellStateFullyImplicitBlackOil 2021-05-21 14:57:38 +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
203cc2ff73 Update WellState::temperature() 2021-05-19 10:05:11 +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
Arne Morten Kvarving
80a05ceb33 cosmetics
- do not indent for namespace
- move constructors and destructors to top
- use public/protected/private order
2021-05-13 00:38:08 +02:00
Arne Morten Kvarving
2c1a6ae8cb replace typedef with using statements 2021-05-13 00:38:08 +02:00
Arne Morten Kvarving
a032c5a80e changed: put WellState in separate compile unit 2021-05-13 00:38:08 +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
21751d87fc Remove unused getXXXXOffset() methods 2021-05-10 10:07:05 +02:00
Joakim Hove
a68589eb9a WellState will internalize PhaseUsage member 2021-04-27 00:11:04 +02:00
Joakim Hove
c8db0d1090 Assign number of phases in WellState constructor 2021-04-21 13:07:57 +02:00
Tor Harald Sandve
e69b097ac5 fix for distributed wells 2021-04-15 14:00:28 +02:00
Joakim Hove
90a9ed49a2 Add function WellState::updateStatus() 2021-03-29 16:20:10 +02:00
Joakim Hove
f0c738ea34 Reflect Well Object's Status Flag in Well State 2021-03-20 20:33:28 +01:00
Bård Skaflestad
b982ad0fd2 Record Dynamic Well Status in 'wellData()' Output
This commit sets the 'data::Well::dynamicStatus' based on the
dynamically updated 'Schedule' object (i.e., from ACTIONX and
similar) and the results of well/operability testing (WECON and/or
WTEST).  If a well is closed due to economic limits (WECON) we still
provide summary-style data at the timestep that closed the well, but
omit this data at later steps until the well reopens.

We add a new parameter to WellState::report() to distinguish these
situations.

This is in preparation of making the 'BlackoilWellModel' manage both
open and shut wells alike.
2021-03-18 17:28:28 +01:00
Paul Egberts
646dafe78f introduced computeWellTemperature() to be called at each timestep 2021-03-08 15:11:50 +01:00
Paul Egberts
59b6e21cc3 fixed num_perf_this_well declaration 2021-02-22 21:39:34 +01:00
Paul Egberts
42f426c7fd rebasing thermaloutput 2021-02-22 18:47:13 +01:00
Paul Egberts
3ff3d549ed temperature output as weighted sum of well block temperatures based on specific heat capacity of the phases 2021-02-22 18:41:25 +01:00
Tor Harald Sandve
33e3102983 output stopped wells 2020-12-21 13:51:21 +01:00
Atgeirr Flø Rasmussen
2673af7db5
Merge pull request #2978 from joakim-hove/use-well-status
Use enum Well::Status for well status in WellState
2020-12-10 12:43:40 +01:00
Joakim Hove
f5f3d8a98e Introduce WellState::stopWell() 2020-12-10 09:54:37 +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
Joakim Hove
bd3fa0af88 Use enum Well::Status for well status in WellState 2020-12-10 08:11:19 +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
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
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
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
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
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
Paul Egberts
9ecd153099 fix temperature reporting for injectors 2020-10-14 17:52:04 +02:00
Bård Skaflestad
e39333895c Provide Simulator's Dynamic CTF in data::Connection
This is in preparation of implementing the WELPI feature.
2020-10-05 23:14:24 +02:00
Jostein Alvestad
6a659339f1 various corrections to code and coding style 2020-03-16 10:39:56 +01:00
Jostein Alvestad
0dcacb41d4 intial changes to add current group controls to summary 2020-03-16 10:39:51 +01:00
Joakim Hove
9268bcb2ac InjectorType enum is moved out from Well class 2020-03-03 09:08:02 +01:00
Tor Harald Sandve
77d52e5b53 communicate group rates and add test 2020-01-02 13:57:12 +01:00
Atgeirr Flø Rasmussen
c8e1f61050 Ensure open_for_output_ flag is set to true in init(). 2019-12-13 10:59:24 +01:00
Joakim Hove
ce9108a9d2 Refactor WellState SHUT
- Move some WellState shut code to separate method.
- Add bool flag open_for_output_ to WellState to ensure that shut wells do not
  create output.
2019-12-03 19:37:44 +01:00