Commit Graph

8647 Commits

Author SHA1 Message Date
Tor Harald Sandve
93c7ba6b92 communicate inj_surface_rates 2021-10-28 08:55:50 +02:00
Bård Skaflestad
3cfec109db
Merge pull request #3620 from blattms/removeSetupCart-rebased
[refactor] Remove cartesianToCompressed Mapping from well model
2021-10-25 16:43:08 +02:00
Markus Blatt
fa9e93529b Only consider perforation in the interior of the local grid.
This is needed for distributed wells to save most of the code
from checking whether a perforation is in the interior.

We add new methods compressedIndexForInterior that return -1
for non-interior cells and use that for the wells. This restores
the old behaviour before 1cfe3e0aad
2021-10-19 16:50:42 +02:00
Bård Skaflestad
67f4cf62f1 Report Group Level Injection Guide Rates if Present
We used to tie reporting these quantities to whether or not a group
had any guide rates for production (GuideRate::has()), but this is
clearly insufficient for injection guide rates.
2021-10-19 14:15:36 +02:00
Bård Skaflestad
a7c6203a73 Initialise Guide Rate Object From Restart File
This commit adds an overload set named

    loadRestartGuideRates

which, collectively, initialises the contained GuideRate object
using guide rate values from the restart file.  This is necessary,
but not quite sufficient, to restart models in prediction mode with
group-level constraints.
2021-10-19 13:22:31 +02:00
Bård Skaflestad
8014442a1d Split Restart File Loading Into Multiple Stages
Mostly for readability in preparation of initialising the guide rate
object with values from the restart file.  The new stages, each with
its own 'loadRestart*Data()' member function are

  - Connection
  - Segment
  - Well
  - Group

While here, also switch to using std::any_of() in place of a raw
loop.
2021-10-19 13:22:31 +02:00
Bård Skaflestad
37f589bff1
Merge pull request #3598 from bska/report-siunits-injgr-grouplevel
Report Group Level Inject Guiderate Values in Strict SI Units
2021-10-19 13:20:58 +02:00
Markus Blatt
23e0b06387 Allow communicators other than MPI_COMM_WORLD. 2021-10-19 12:44:41 +02:00
Bård Skaflestad
89adc1919b
Merge pull request #3611 from joakim-hove/broadcast-wtest-state
Broadcast wtest state
2021-10-19 12:01:17 +02:00
Joakim Hove
695254fc7c Broadcast WellTestState after initialization 2021-10-19 11:16:41 +02:00
Joakim Hove
daabe1ca76 Make sure WellTestState is initialized also on non IO rank 2021-10-19 11:16:41 +02:00
Joakim Hove
9a9ccb90b8 Make sure to filter out wells from other processes in WellTestState 2021-10-19 11:16:41 +02:00
Joakim Hove
c8cbd32f85 Add method WellContainer<T>::wells() 2021-10-19 11:16:41 +02:00
Tor Harald Sandve
1cfe3e0aad remove cartesian to compressed vector 2021-10-19 11:03:46 +02:00
Bård Skaflestad
1d0ee3c005 Report Group Level Inject Guiderate Values in Strict SI Units
The output layer expects its input values to be strictly SI, but we
know that the GuideRate container's values are in output units.

Forgotten in PR #3467 (commit 517db198f8).
2021-10-19 09:32:38 +02:00
Tor Harald Sandve
5717a95cb4
Merge pull request #3607 from totto82/operHist
Check operabiliy for wells under history
2021-10-19 09:03:34 +02:00
Joakim Hove
56c7c74016 Handle NEXTSTEP behavior in time stepper 2021-10-18 11:52:33 +02:00
Tor Harald Sandve
160c80b574 check operability history wells 2021-10-18 09:21:04 +02:00
Tor Harald Sandve
d925e74b76
Merge pull request #3569 from totto82/operInj
check operability injectors
2021-10-18 08:50:50 +02:00
Tor Harald Sandve
350875e7c5
Merge pull request #3583 from totto82/brinethermal
brine+thermal
2021-10-15 14:41:26 +02:00
Atgeirr Flø Rasmussen
fc80451e3d Silence unused argument warning. 2021-10-15 13:26:44 +02:00
Atgeirr Flø Rasmussen
4c213b25e0 Order of initialization should match order of definition. 2021-10-15 13:24:55 +02:00
Tor Harald Sandve
1c9c5c484b check operability injectors 2021-10-15 12:32:02 +02:00
Tor Harald Sandve
f6f5badfde Add brine and thermal simulator 2021-10-15 11:50:17 +02:00
Tor Harald Sandve
70c9d2e237
Merge pull request #3590 from daavid00/micp-2021-10
micp
2021-10-14 22:28:28 +02:00
daavid00
48b175904a first version of micp implementation in flow 2021-10-14 17:44:57 +02:00
Atgeirr Flø Rasmussen
5e1853b8e4
Merge pull request #3588 from totto82/improve_switch_output
make multiple well control switching output more readable
2021-10-14 10:56:53 +02:00
Tor Harald Sandve
83ef3730b2 make multiple well control switching output more readable 2021-10-14 09:40:34 +02:00
Atgeirr Flø Rasmussen
dead95ba18
Merge pull request #3519 from totto82/continueOnConvergenceFailure
Option for continue on solver convergence failure
2021-10-14 09:31:23 +02:00
Joakim Hove
4b85fc74ae
Merge pull request #3594 from joakim-hove/wtest-rst
load WellTestState from restart file
2021-10-13 11:27:41 +02:00
Arne Morten Kvarving
8eb63409cb fixed: double call to MPI_Finalize
I missed this one when moving the MPI handling into RAII style
2021-10-13 09:35:16 +02:00
Joakim Hove
2c68f12769 Load WellTestState from restart file 2021-10-13 08:46:48 +02:00
Joakim Hove
5db60aba5e Set external Action::State object in the vanguard 2021-10-12 10:41:29 +02:00
Markus Blatt
cc1adf0b2a
Merge pull request #3586 from blattms/tracer-use-well-container
[refactor] Use well_container and PerforationData for tracers
2021-10-12 09:55:33 +02:00
Bård Skaflestad
0f13f4095b Mark 'comm' As Potentially Unused
The communicator is only needed in parallel builds.
2021-10-10 20:38:45 +02:00
Joakim Hove
b6d043c545
Merge pull request #3580 from joakim-hove/wtest-rename
Remove ecl wells argument to check wells for testing
2021-10-10 09:54:16 +02:00
Bård Skaflestad
61ac76fe90 Make ARGV[ARGC] Into a Nullpointer
This is strictly speaking required by POSIX.
2021-10-09 00:17:32 +02:00
Bård Skaflestad
ad74de2e1a Use Algorithm to Locate '--version' Option 2021-10-09 00:17:32 +02:00
Bård Skaflestad
fca167acfd Split Individual Cases Out to Helper Functions
This commit moves the bodies of the various 'dynamicDispatch_<>()'
cases out to separate helper functions.  Not only does this reduce
the number of nested conditionals, it also helps reasoning about
each case in isolation and aids future maintenance.
2021-10-09 00:17:32 +02:00
Bård Skaflestad
3455dbdac9 Main.hpp: Adjust Whitespace
In preparation of refactoring 'dispatchDynamic_<>()'
2021-10-09 00:17:32 +02:00
Joakim Hove
4da52424c7 Add const 2021-10-08 20:58:49 +02:00
Markus Blatt
fc7609bfd2 [bugfix] Make sure all ranks participate in collective communication.
No need an early return if there are no local wells, anyway. The
algorithms can handle empty containers like a charm.
2021-10-08 16:01:18 +02:00
Markus Blatt
1520f9c85f [bugfix] handle exception when linearizing the wells.
As multisegment wells may throw in applyUMFPack this is now needed and
the exception needs to communicated to all processes. We do this in
the linearize method of the well model.

Before this change this is what could happen:
- The process with the exception would have chopped the time step
- The others would have successfully setup the systems and entered the
  linear solve

This  poduced a deadlock. One processes was waiting in
OPM_END_PARALLEL_TRY  during the setup of the shorter time step and in
collective communication during the setup of the linear solver for the
unchopped time step.
2021-10-08 16:01:07 +02:00
Tor Harald Sandve
d07aed204f Catch numerial issues due to problems with inner iterations wells 2021-10-08 15:26:53 +02:00
Tor Harald Sandve
fdf6ce9c54 change assert with throw for isfinite primary variable 2021-10-08 15:26:52 +02:00
Joakim Hove
0ca1f7a8b2 WellTestState::updateWells -> WellTestState::test_wells 2021-10-08 15:23:03 +02:00
Joakim Hove
0e9d634397 Do not pass ecl wells to WellTestState::updateWells() 2021-10-08 15:17:43 +02:00
Joakim Hove
c599402318
Merge pull request #3591 from joakim-hove/welltest-state-rename
Welltest state rename
2021-10-08 14:07:04 +02:00
Bård Skaflestad
d028937925 Remove Unused 'Comm' Parameter
Remnant from ealier refactoring work.
2021-10-08 12:44:27 +02:00
Joakim Hove
0e365abe36 WellTestState::dropCompletion -> WellTestState::open_completion 2021-10-08 10:40:38 +02:00