Tor Harald Sandve
f2ea6ce844
Add support for FIP*
2023-01-11 14:39:23 +01:00
Arne Morten Kvarving
bba9c2a297
move Balance usage to BlackoilWellModelGeneric
...
now we do not need to include Balance.hpp in simulator objects
2023-01-11 11:26:25 +01:00
Arne Morten Kvarving
09dc3d9449
add missing Balance.hpp includes
2023-01-11 11:26:25 +01:00
Arne Morten Kvarving
469b38c321
remove unnecessary <Runspec.hpp> includes
2023-01-05 13:18:32 +01:00
Arne Morten Kvarving
e7f921825c
BlackoilWellModel: use {fmt} to format error message
2022-12-22 08:35:27 +01:00
Tor Harald Sandve
60d0116080
we now use group_info in stage 2 and need to make sure its communicated
2022-12-07 15:43:25 +01:00
Arne Morten Kvarving
4a2fcd5f09
added: MultisegmentWellEquations::extract(WellContributions&)
...
this adds the well matrices to a WellContributions object.
use the new method in the implementation.
2022-12-05 10:13:55 +01:00
Arne Morten Kvarving
b24f22312e
added: StandardWellEquations::getNumBlocks()
...
this returns the number of blocks in in B/C matrices.
use the new method in the well implementation.
2022-11-22 10:37:40 +01:00
Arne Morten Kvarving
65efe8e1fc
added: StandardWellEquations::extract(WellContributions&)
...
this adds the well matrices to a WellContributions object.
this is the core of StandardWellEval::addWellContributions.
use the new method in the implementation.
2022-11-22 10:36:54 +01:00
Tor Harald Sandve
9c8f778495
Compute the group rates that takes into account limitation on the sublevels
2022-11-21 08:58:49 +01:00
Håkon Hægland
43244c2132
Change condition under which stage 2 is done.
...
It only makes sense to try to optimize the distribution of lift gas if
the amount of lift gas is constrained either by the maximum allowed
gaslift or total gas or the group is under individual control.
2022-11-21 08:58:49 +01:00
Arne Morten Kvarving
f367e4fb7b
changed: use return value
...
no reason to pass a reference here, just use return
2022-10-31 10:35:52 +01:00
Arne Morten Kvarving
9f78e0454d
move guideRateUpdateIsNeeded into BlackoilWellModelGuideRates
2022-10-28 23:33:05 +02:00
Arne Morten Kvarving
cc306a45b4
move updateGroupIndividualControl into BlackoilWellModelConstraints
2022-10-28 19:32:06 +02:00
Tor Harald Sandve
7b90d35f21
fixup from PR comments
2022-10-18 12:58:07 +02:00
Tor Harald Sandve
14428120d9
fix rebase
2022-10-18 10:55:17 +02:00
Tor Harald Sandve
e1d36f32b8
add missing wellGroupTargetsViolated in ++ operator
2022-10-18 10:55:17 +02:00
Tor Harald Sandve
47329b30b9
always check individual controls
2022-10-18 10:55:17 +02:00
Tor Harald Sandve
d25dc4e795
check controls in getWellConvergence
2022-10-18 10:55:17 +02:00
Atgeirr Flø Rasmussen
31ac961834
Merge pull request #4157 from blattms/wellcontrib-available-always
...
Fix compilation with amgcl/vexcl and without CUDA/OpenCL.
2022-10-17 15:03:37 +02:00
Arne Morten Kvarving
15f1ec0c3a
BlackoilWellModel: use elements range generator
2022-10-13 23:01:37 +02:00
Markus Blatt
c2963560d2
Fix compilationw with amgcl/vexcl and without CUDA/OpenCL.
...
There is no reason to omit WellContributions if neither CUDA nor
OpenCL is found as the implementations/functions only use C++-
To the contrary, the defines used for deactivating were not
consistent with usage elsewhere and resulted in compiler erorrs
for exotic configuration
2022-10-11 10:42:08 +02:00
Tor Harald Sandve
654f9e2c2d
Merge pull request #4135 from totto82/checkGroupConstrainsFromTop
...
check group constraints from top
2022-10-03 14:32:46 +02:00
Atgeirr Flø Rasmussen
67b95afdd9
Support NETBALAN (partially).
...
NETBALAN can be used to choose balancing frequency (limited: either start
of timestep, or first NUPCOL iterations), balancing tolerance, and maximum
balancing iterations. These correspond to items 1, 2 and 3 of NETBALAN.
2022-09-30 15:41:11 +02:00
Tor Harald Sandve
54e0496203
check group constraints from top
2022-09-30 13:09:42 +02:00
Atgeirr Flø Rasmussen
95fdea67a8
Do not re-solve network after NUPCOL Newton iterations.
2022-09-28 10:44:42 +02:00
Kai Bao
de4473bbd8
makre sure network_changed synchronized across the processes
2022-09-28 10:44:42 +02:00
Atgeirr Flø Rasmussen
cc15b29372
Add network model iterations.
...
Implemented by conditionally recursing in BlackoilWellModel::assembleImpl().
2022-09-28 10:44:42 +02:00
Bård Skaflestad
8432e4130c
Merge pull request #4101 from GitPaean/fix_wells_active
...
Fix wells active determination
2022-09-19 10:20:30 +02:00
Kai Bao
734b9a792f
removing function localWellsActive()
2022-09-14 14:17:02 +02:00
Arne Morten Kvarving
57f2bb3ea7
fix build without MPI
2022-09-13 15:07:15 +02:00
Kai Bao
83529b22c7
removing one usage of wellsActive() in numComponents
2022-09-13 14:31:56 +02:00
Arne Morten Kvarving
6e83e349d6
changed: move variadic broadcast into EclMpiSerializer
2022-09-13 13:29:47 +02:00
Tor Harald Sandve
f8d1d040ab
Merge pull request #4033 from totto82/fix_grsw_output
...
cleanup group switching output to terminal
2022-09-13 12:25:40 +02:00
Kai Bao
4e1cc5bd5b
determining wells_active_ based on well_containers_ size
...
instead of the information in wells_ecl_, which might include shut wells
2022-09-13 11:36:23 +02:00
Bård Skaflestad
56c653235f
Merge pull request #4087 from akva2/rename_serialization
...
Rename serialization files
2022-09-13 10:48:33 +02:00
Tor Harald Sandve
7571215f44
some cleanup
2022-09-13 08:33:51 +02:00
Tor Harald Sandve
702d824135
cleanup group switching output to terminal
2022-09-09 10:58:36 +02:00
Tor Harald Sandve
f36ac3eeed
Merge pull request #3837 from totto82/wvfpexp
...
Add option for explicit vfp lookup for problematic wells
2022-09-09 10:00:02 +02:00
Arne Morten Kvarving
1838b39d2e
changed: split ParallelRestart.hpp/cpp in two bits
...
the mpi serialization bit is put in MPISerializer.hpp/cpp,
while the parallel restart bit stays in ParallelRestart
2022-09-08 13:36:51 +02:00
Kai Bao
4e4606c705
removing unused setupCartesianToCompressed_ function
...
for BlackoilWellModel
2022-09-08 13:33:39 +02:00
Atgeirr Flø Rasmussen
e9cba9e0c1
Use compressedIndexForInterior() for mapping cartesian indices.
2022-09-05 12:42:54 +02:00
Arne Morten Kvarving
004e7e55fb
avoid two communication calls
...
one less network latency cost
2022-08-31 12:54:47 +02:00
Tor Harald Sandve
96222f8afb
dont use explicit vfp lookup for newly opened wells
2022-08-19 10:33:19 +02:00
Tor Harald Sandve
b1b23a57de
Add option for explicit vfp lookup for problmatic wells
2022-08-19 10:33:19 +02:00
Atgeirr Flø Rasmussen
c94ff12e4c
Bugfix and simplification of cartesian mapping.
...
We already have the mapping available, and using the equilGrid() is only valid
on rank 0.
2022-08-17 14:13:13 +02:00
Atgeirr Flø Rasmussen
a5c8d40cfa
Remove unneeded timeIdx arguments, also silence other warnings.
2022-08-10 10:01:54 +02:00
Atgeirr Flø Rasmussen
cabe64cc58
Further reduction of modifications.
2022-08-09 11:11:36 +02:00
Atgeirr Flø Rasmussen
5fba14373b
Modification to reduce PR to minimal changes.
2022-08-09 11:11:36 +02:00
Atgeirr Flø Rasmussen
5042b02138
Rename method and move to impl file.
2022-08-09 11:11:36 +02:00
hnil
8f5e0940fe
restructuring to be able to call without local indices
2022-08-09 11:09:48 +02:00
Elyes Ahmed
5c2b60bcd0
rebasing
2022-07-28 20:40:34 +02:00
Elyes Ahmed
cd169660e8
rewriting MaxWellConnections
2022-07-08 13:44:38 +02:00
Atgeirr Flø Rasmussen
7fe3839500
Use MatrixBlock consistently, also whitespace cleanup.
2022-06-10 11:08:24 +02:00
hnil
4ead854b69
- taking pullrequest information into account
...
- Moving transfere level to be template of OwningTwolevelPrecontitioner
2022-06-08 17:03:27 +02:00
hnil
541edeaf67
- add default for CPRW
...
- cleanded code
2022-06-08 17:03:27 +02:00
hnil
6c407506a9
cleaning code
2022-06-08 17:03:27 +02:00
Tor Harald Sandve
6cc71375b4
stopped wells where cross flow is not allowed are not added to the container
2022-06-07 10:01:02 +02:00
Kai Bao
57d8f1aa24
update primary variables in prepareTimeStep
...
it should not change running results.
2022-05-02 13:47:16 +02:00
Atgeirr Flø Rasmussen
75ccd88f4f
Merge pull request #3888 from totto82/stop_tgr2
...
fix trivial group target
2022-04-26 08:34:06 +02:00
Tor Harald Sandve
d00a2e2341
fix trivial group target
2022-04-25 08:10:19 +02:00
Tor Harald Sandve
92175cf094
Fix STOP in combination with inoperable/unsolvable
2022-04-22 09:15:09 +02:00
Tor Harald Sandve
e2e0ec9dd9
fix to --shut-unsolvable-wells=true option
2022-04-05 14:42:27 +02:00
Tor Harald Sandve
2d6794f077
Merge pull request #3849 from hakonhagland/glift_debug_rank
...
Cleanup gaslift debugging output code
2022-03-24 14:13:33 +01:00
Håkon Hægland
fbd6c03dd6
Cleanup glift debugging output code
2022-03-24 12:42:46 +01:00
Tor Harald Sandve
32dfdc6198
improve initialization msw new wells
2022-03-24 09:53:46 +01:00
Håkon Hægland
54160827de
Add gaslift optimization support for MSW.
...
Implements gas lift optimization support for multisegmented wells (MSW).
2022-02-14 21:38:50 +01:00
Tor Harald Sandve
0c8d0764d6
update well potensials in well state along with alq and update guide rates accordingly
2022-02-08 15:46:08 +01:00
Håkon Hægland
4970b0641e
Improve debugging tools in gaslift code.
...
Introduces a gaslift debugging variable in ALQState in WellState. This
variable will persist between timesteps in contrast to when debugging
variables are defined in GasLiftSingleWell, GasLiftGroupState, or GasLiftStage2.
Currently only an integer variable debug_counter is added to ALQState,
which can be used as follows: First debugging is switched on globally
for BlackOilWellModel, GasLiftSingleWell, GasLiftGroupState, and
GasLiftStage2 by setting glift_debug to a true value in BlackOilWellModelGeneric.
Then, the following debugging code can be added to e.g. one of
GasLiftSingleWell, GasLiftGroupState, or GasLiftStage2 :
auto count = debugUpdateGlobalCounter_();
if (count == some_integer) {
displayDebugMessage_("stop here");
}
Here, the integer "some_integer" is determined typically by looking at
the debugging output of a previous run. This can be done since the
call to debugUpdateGlobalCounter_() will print out the current value
of the counter and then increment the counter by one. And it will be
easy to recognize these values in the debug ouput. If you find a place
in the output that looks suspect, just take a note of the counter
value in the output around that point and insert the value for
"some_integer", then after recompiling the code with the desired value
for "some_integer", it is now easy to set a breakpoint in GDB at the
line
displayDebugMessage_("stop here").
shown in the above snippet. This should improve the ability to quickly
to set a breakpoint in GDB around at a given time and point in the simulation.
2022-01-23 20:37:26 +01:00
Bård Skaflestad
9fc9f5421c
Merge pull request #3771 from totto82/fixUpdateGR
...
Update guiderates after with new rates from newly opened wells
2022-01-21 10:33:00 +01:00
Tor Harald Sandve
d1c2032e73
Update guiderates after with new rates from newly opened wells
2022-01-21 09:15:00 +01:00
Tor Harald Sandve
c3571c50a3
support none trivial item 3 in LIFTOPT. i.e. not optimize gaslift every timestep
2022-01-19 10:14:47 +01:00
Joakim Hove
6b92443cb4
Downstream filesystem reorganisation in opm-common
2022-01-02 14:33:34 +01:00
Atgeirr Flø Rasmussen
69b81c4fbf
Merge pull request #3724 from totto82/CO2STORETHERMAL
...
Add gasoil + thermal simulator
2021-12-08 08:33:46 +01:00
Tor Harald Sandve
4f75d1ab8d
Add gasoil + energy simulator
...
Useful when combining CO2STORE + THERMAL
This PR also fixes an issue with missing phases in computation of output temperature
2021-12-07 09:18:38 +01:00
Tor Harald Sandve
c4b0a0d9e2
Fix in WTEST
...
If a well is shut due to physical or economical reason the wellstate status is shut
so we can not check the wellstate we instead check the well from the schedule to
make sure we don't test wells that are shut by the user.
2021-11-26 10:17:45 +00:00
Tor Harald Sandve
b5cdb1048a
Mark wells with negative and trivial potentials as not operable
...
The simulator will try to compute potentials at every iterations to
try to reopen the well.
2021-11-22 08:44:17 +00:00
Arne Morten Kvarving
7bce64cde9
use multi-var broadcast for rates
2021-11-10 08:56:04 +01:00
Tor Harald Sandve
d2fd5505ca
Check group production LRAT and WRAT targets
2021-11-09 08:24:57 +01: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
Markus Blatt
23e0b06387
Allow communicators other than MPI_COMM_WORLD.
2021-10-19 12:44:41 +02:00
Tor Harald Sandve
1cfe3e0aad
remove cartesian to compressed vector
2021-10-19 11:03:46 +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
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
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
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
0648d6bf5d
WellTestState::openWell -> WellTestState::open_well
2021-10-08 10:17:14 +02:00
Joakim Hove
d806762f7a
WellTestState::hasWellClosed -> WellTestState::well_is_closed
2021-10-08 10:17:14 +02:00
Joakim Hove
ce78326ac1
WellTestState::openAllCompletions -> WellTestState::open_completions
2021-10-07 14:53:06 +02:00
Markus Blatt
011fb1034e
Merge pull request #3571 from atgeirr/allow-non-world-comm
...
Replacing use of MPI_COMM_WORLD with a variable communicator.
2021-10-06 15:52:17 +02:00
Joakim Hove
f27a82ebc3
Use plain WellTestState::hasWellClosed() without reason
2021-10-05 16:52:16 +02:00
Elyes Ahmed
f53c597f90
Replacing use of MPI_COMM_WORLD with a variable communicator.
2021-10-05 13:07:52 +02:00
Joakim Hove
2168b8c296
Merge pull request #3563 from totto82/openComp
...
open completions after well event
2021-09-30 16:43:39 +02:00
Tor Harald Sandve
dc8c9021b5
open completions after well event
2021-09-30 11:40:34 +02:00
Joakim Hove
6e37b9ae05
Merge pull request #3559 from joakim-hove/wtest-config-empty
...
Use WellTestConfig.empty() instead of size()
2021-09-30 10:31:17 +02:00
Tor Harald Sandve
cb9254636b
rename and cleanup
2021-09-30 09:01:07 +02:00
Tor Harald Sandve
bc8da79779
stop checking operability in the beginning of an timestep
2021-09-30 08:47:47 +02:00
Tor Harald Sandve
c9e93e6155
stop updating operability during iterations
2021-09-30 08:47:47 +02:00
Joakim Hove
21c2dd0c1d
Use WellTestConfig.empty() instead of size()
2021-09-29 15:05:23 +02:00
Joakim Hove
86a0662381
Use std::reference_wrapper<> for parallel well info
2021-09-28 21:42:57 +02:00
Bård Skaflestad
0b8778e432
Merge pull request #3547 from totto82/makeWTESTrobust
...
Make wtest more robust
2021-09-28 12:06:10 +02:00
Tor Harald Sandve
c790b14753
Make WTEST more robust
...
Only open wells that are solvable, operable and economical
2021-09-28 10:07:12 +02:00
Joakim Hove
ef12186d78
Remove unused query/switch code for GLO - it is always on
2021-09-27 14:11:54 +02:00
Markus Blatt
88ae5b5963
Merge pull request #3545 from blattms/fix-parallel-try-catch
...
[bugfix] Fix deadlocks because of parallel try-catch for some CO2 storage cases
2021-09-27 13:02:34 +02:00
Tor Harald Sandve
9381b0857b
updateWsolvent only after well container is created
2021-09-24 12:09:02 +02:00
Markus Blatt
5be027348a
Fix buggy interplay of parallel exceptions and communication.
...
There cannot happen any collective blocking communication within a
parallel try-catch clause if exceptions might be thrown before the
communication. The communication has to either be reached by all
processes or no processes.
2021-09-24 10:17:13 +02:00
Markus Blatt
f64230e462
Remove parallel try-catch from prepareTimeStep because of nestedness.
...
Although not declared as such, prepareTimeStep seems to be an internal
function (despite usage in a test) and hence error control can be done
in code calling it.
There was the following problem with the try-catch approach taken:
The calling site `BlackoilWellModel::assemble` looked like this:
```
OPM_BEGIN_PARALLEL_TRY_CATCH();
{
if (iterationIdx == 0) {
calculateExplicitQuantities(local_deferredLogger); // no parallel try-catch
prepareTimeStep(local_deferredLogger); //includes parallel try-catch
}
updateWellControls(local_deferredLogger, /* check group controls */ true);
// Set the well primary variables based on the value of well solutions
initPrimaryVariablesEvaluation();
maybeDoGasLiftOptimize(local_deferredLogger);
assembleWellEq(dt, local_deferredLogger);
}
OPM_END_PARALLEL_TRY_CATCH_LOG(local_deferredLogger, "assemble() failed: ",
terminal_output_);
```
calculateExplicitQuantities had no parallel-try-catch clause inside,
but prepareTimeStep had one.
Unfortunately, calculateExplicitQuantities might throw (on some
processors). In that case non-throwing processors will try to trigger a
collective communication (to check for errors) in
prepareTimeStep. While the one throwing will move to the
OPM_END_PARALLEL_TRY_CATCH_LOG macro at the end and also trigger a different
collective communication. Booom, we have a deadlock.
With this patch there is no (nested parallel)-try-catch clause in the
functions called. (And if an exception is thrown in prepareTimeStep, it
will be logged as being an assemble failure).
The other option would have been to add parallel-try-catch clauses
to all functions called. That would have created a lot more
synchronization points limiting scalability even further.
2021-09-24 10:15:28 +02:00
Markus Blatt
3cda8a2fdb
Added missing parallel try-catch clause for updatePrimaryIntensities.
...
As Problem::updatePrimaryIntensities might throw we need to do this
to prevent dealocks in parallel run in case problem occurs.
2021-09-24 09:25:44 +02:00
Markus Blatt
a927f8e23b
Unify parallel try-catch clauses with Macros and catch everything.
...
Not a big fan of Macros but here at least they seem ot be the only
option. The problem is that the catch clauses must all catch the same
exceptions that have a entry in ExceptionType, because they might be
nested. In addition we did not have a catch all clause, which is added
now and is needed in case a called method throws an unexpected exception.
2021-09-24 09:25:44 +02:00
Joakim Hove
a11e3222bd
Merge pull request #3534 from joakim-hove/use-single-well-state
...
Use single well state
2021-09-22 12:35:15 +02:00
Tor Harald Sandve
b294ea5d8b
Merge pull request #3490 from totto82/targUpdate
...
Update well rates from target during well/group control update
2021-09-22 12:26:29 +02:00
Tor Harald Sandve
eb4997a011
update gpmain before not after timestep
2021-09-21 14:03:35 +02:00
Joakim Hove
b2ac3eaa59
Merge pull request #3535 from totto82/storePrevWellTestState
...
add well_test_state to WGState
2021-09-21 11:44:58 +02:00
Tor Harald Sandve
30592c7593
update status after WTEST
2021-09-21 10:32:56 +02:00
Tor Harald Sandve
6fa9c05985
add well_test_state to WGState to be able to access last valid wellTestState
2021-09-21 09:30:02 +02:00
Tor Harald Sandve
c6660f0aa2
only update when control is changed
2021-09-21 08:53:25 +02:00
Tor Harald Sandve
dc4436961f
update well rates from target
2021-09-21 08:53:25 +02:00
Joakim Hove
5531120411
Use SingleWellState argument instead of full WellState
2021-09-20 11:45:24 +02:00
Markus Blatt
b056557f57
bugfix: Detect exception during beginReportStep in parallel a. abort
...
Previously, exceptions happening at this stage have deadlocked
flow. E.g. UniformTabulated2DFunction in opm-material throws
a NumericalIssue if the values passed are outside the tabulated
reason. This function is e.g. called in 2-phase CO2-storage cases
during BlackoilModel::initializeWellState
BTW: This is only the first step as it is not very user friendly that
a simulation aborts at this (late) stage.
2021-09-15 20:50:49 +02:00
Tor Harald Sandve
81d9a8c178
add option for relaxed convergence for stw
2021-09-14 14:32:14 +02:00
Tor Harald Sandve
f203c2106e
only compute fip avg pressure when gpmaint
2021-09-10 15:49:02 +02:00
Tor Harald Sandve
3b7cf9a565
Merge pull request #3506 from totto82/relaxWell
...
relax well convergence for the last newton iterations
2021-09-08 10:46:14 +02:00
Tor Harald Sandve
f3513a31eb
add option for relaxed well convergence for the last netwon iterations
2021-09-08 09:58:14 +02:00
Tor Harald Sandve
3b5a040197
Merge pull request #3498 from totto82/gpmaint
...
Support for gpmaint
2021-09-07 12:38:48 +02:00
Tor Harald Sandve
adda160098
clean-up
2021-09-07 09:47:41 +02:00
Tor Harald Sandve
9d2f26f7e8
Add support for gpmaint
2021-09-07 08:52:52 +02:00
Arne Morten Kvarving
2b1ac22c99
drop aliases for Indices entries
...
using Indices directly more clearly shows where the data comes
from without having to hop through hoops to do so.
2021-09-06 12:49:01 +02:00
Joakim Hove
579aba8d08
Include perforation data in SingleWellState
2021-08-24 12:46:24 +02:00
Joakim Hove
2f504536f4
Add well potentials to SingleWellState
2021-08-23 12:05:26 +02:00
Tor Harald Sandve
31ac5378cf
fix case where wells are shut behind our back
2021-08-19 13:08:33 +02:00
Joakim Hove
c381459804
Add Events member to SingleWellState
2021-08-15 09:03:14 +02:00
Joakim Hove
d5ab308fbd
Add temperature to SingleWellState
2021-08-15 09:01:21 +02:00
Tor Harald Sandve
cf61417b6d
move update well test state to after potentials are calculated
2021-08-09 13:21:10 +02:00
Bård Skaflestad
5ddac2e8d5
Merge pull request #3406 from GitPaean/new_fixing_guide_rate_update_together
...
[new attempt] updating the guide rates for all the wells and groups at the same time
2021-06-30 12:40:45 +02:00
Tor Harald Sandve
60f59cd6e6
Potentially reduce gaslift when under well is under group control
...
Current implemention only support ORAT and GRAT controlled groups
2021-06-30 09:59:09 +02:00
Kai Bao
12fa7a4ac8
putting all the guide rate update function in one single function
...
to make sure we only do once checking of the expiration of the guide
rates.
2021-06-29 11:41:26 +02:00
Bård Skaflestad
71de144399
Merge pull request #3239 from osae/tracer
...
Tracer summary curves, collect well rates.
2021-06-25 17:48:40 +02:00
Tor Harald Sandve
0dcd91ac93
Merge pull request #3369 from totto82/grupWellState
...
handle GRUP in wellState from target
2021-06-24 13:02:24 +02:00
Tor Harald Sandve
5368343512
handle GRUP in wellState from target
2021-06-23 14:46:35 +02:00
Bård Skaflestad
9394a93c68
Don't Create Well Instance for Wells With No Connections
...
This commit protects against Opm::Well instances for which the sets
of connections are empty. In those cases, do not put entries in the
well container as there is no influence on the systems of non-linear
equations.
2021-06-22 20:43:21 +02:00
Håkon Hægland
dd1ca3197d
Add missing header file to GasLiftGroupInfo.cpp
...
GasLiftGroupInfo.cpp did not include "config.h" which caused HAVE_MPI
to be undefined causing the file to be compiled with
Dune::Communication<No_Comm> instead of with
Dune::Communication<MPI_Comm>. Which later caused linking problems with files
that used MPI.
2021-06-22 09:52:22 +02:00
Atgeirr Flø Rasmussen
8c5a6b12d5
Merge pull request #3158 from totto82/operability_solve
...
shut/stop unsolvable wells
2021-06-18 10:13:14 +02:00
Tor Harald Sandve
b5e29684f2
shut/stop unsolvable wells
2021-06-17 11:50:31 +02:00
Håkon Hægland
860cfd9fb5
Fix some sign compare warnings.
2021-06-17 10:44:32 +02:00
Håkon Hægland
fbb24e2a5a
Check group limits in gas lift stage 1.
...
Check group limits in gas lift stage 1 to avoid adding too much ALQ which must
anyway later be removed in stage 2. This should make the optimization
more efficient for small ALQ increment values. Also adds MPI support.
2021-06-16 12:00:54 +02:00
Ove Sævareid
33511b45c1
Relegating implementation details.
2021-06-15 17:18:46 +02:00
Ove Sævareid
581408c760
Batchwise tracer calculations.
2021-06-15 17:18:46 +02:00
Joakim Hove
193657fee1
Use GuideRate value instead of std::unique_ptr<GuideRate>
2021-06-14 14:35:55 +02:00
Joakim Hove
3010b96611
Use PerfData for perforation rates
2021-06-10 07:19:21 +02:00
Bård Skaflestad
7add6b33de
Merge pull request #3363 from totto82/fixRESV2
...
removed dissolved gas and vapporized oil from RESV injection rates
2021-06-09 09:29:19 +02:00
Tor Harald Sandve
28a567550b
removed dissolved gas and vapporized oil from RESV injection rates
2021-06-08 20:17:01 +02:00
Joakim Hove
023edc67e5
Remove first perf member from Well classes
2021-06-08 14:24:26 +02:00
Bård Skaflestad
6c1ca7450f
Merge pull request #3282 from akva2/blackoilwellmodel_generic_split
...
split out typetag independent code from BlackoilWellModel
2021-06-07 22:13:36 +02:00
Arne Morten Kvarving
0ef68b452a
BlackoilWellModel: move runWellPIScaling to generic class
2021-06-07 15:01:10 +02:00
Arne Morten Kvarving
7219f09fdc
BlackoilWellModel: mutate well_container_ directly in createWellContainer
2021-06-07 14:49:41 +02:00
Arne Morten Kvarving
2c5942595c
BlackoilWellModel: put well container init in a separate method
2021-06-07 14:35:34 +02:00
Arne Morten Kvarving
30a59cd190
BlackoilWellModel: move updateWellPotentials to generic class
2021-06-07 14:22:30 +02:00
Arne Morten Kvarving
004abd942b
BlackoilWellModel: put code for computing potentials in separate method
2021-06-07 14:09:36 +02:00
Arne Morten Kvarving
b0b0ae20d3
BlackoilWellModel: move some glift stuff to generic class
2021-06-07 13:36:22 +02:00
Arne Morten Kvarving
2b9141035e
BlackoilWellModel: move setRepRadiusPerfLength to generic class
2021-06-07 13:36:17 +02:00
Arne Morten Kvarving
c5fae280f3
bring setWSolvent closer to original code
...
by introducing a getter for generic wells
2021-06-07 13:04:29 +02:00
Arne Morten Kvarving
60e7c90b1e
BlackoilWellModel: move calculateEfficiencyFactors to generic class
2021-06-07 12:56:45 +02:00
Arne Morten Kvarving
811afb854b
BlackoilWellModel: move updateNetworkPressures to generic class
2021-06-07 12:46:14 +02:00
Arne Morten Kvarving
172d344ab2
BlackoilWellModel: move inferLocalShutWells to generic class
2021-06-07 12:32:01 +02:00
Arne Morten Kvarving
ad4b34dc30
BlackoilWellModel: move forceShutWellByNameIfPredictionMode to generic class
2021-06-07 12:25:04 +02:00
Arne Morten Kvarving
54ff1c4c45
BlackoilWellModel: move hasTHPConstraints to generic class
2021-06-07 12:20:49 +02:00
Arne Morten Kvarving
cf6a3801fb
keep a vector of WellInterfaceGeneric* in BlackoilWellModelGeneric
...
these points to the same objects as well_container_
2021-06-07 12:15:36 +02:00
Arne Morten Kvarving
059140f2ee
split out typetag independent code from BlackoilWellModel
2021-06-07 12:04:06 +02:00
Arne Morten Kvarving
4c09b5dde3
add WellInterfaceEval
2021-06-07 08:26:43 +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
1285d02873
Merge pull request #3339 from joakim-hove/perf-well-access
...
Perf well access
2021-06-04 08:41:47 +02:00
Joakim Hove
cb800abd05
Merge pull request #3345 from atgeirr/silence-warnings
...
Silence warnings
2021-06-03 17:25:47 +02:00
Joakim Hove
1a6737aff3
Use well index for perforation rates
2021-06-03 13:29:45 +02:00
Atgeirr Flø Rasmussen
8e6e1c3d5e
Remove unused PhaseUsage data member.
2021-06-03 13:02:31 +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
Arne Morten Kvarving
168fc070e9
GasLiftStage2: remove unused simulator param
2021-05-27 21:52:42 +02:00
Arne Morten Kvarving
09ec1e4088
GasLiftStage2: pass comm
2021-05-27 21:52:42 +02:00
Arne Morten Kvarving
26530e60e4
GasLiftStage2: pass schedule
2021-05-27 21:52:42 +02:00
Arne Morten Kvarving
f034ca981e
GasLiftStage2: pass summary state
2021-05-27 21:52:42 +02:00
Bård Skaflestad
66443c63fb
Merge pull request #3299 from akva2/gasliftstage2_break_circular
...
GasLiftStage2: drop circular dependency for BlackoilWellModel
2021-05-27 18:31:44 +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
Arne Morten Kvarving
378efd0ff9
GasLiftStage2: drop circular dependency for BlackoilWellModel
2021-05-25 12:57:24 +02:00
Joakim Hove
ab5c937268
Use well index for PerfPhaseRates
2021-05-24 09:25:19 +02:00
Joakim Hove
da94a16d3e
Merge pull request #3288 from joakim-hove/actionx-event
...
Make sure well potentials are recalculated for ACTIONX wells
2021-05-22 19:09:00 +02:00
Joakim Hove
a3082f66ed
Make sure well potentials are recalculated for ACTIONX wells
2021-05-21 16:05:11 +02:00
Joakim Hove
23180e06d2
Rename WellStateFullyImplicitBlackoil -> WellState
2021-05-21 15:07:21 +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
db731ac1ad
Use well local indices when iterating over segments
2021-05-20 08:17:19 +02:00
Joakim Hove
1e9a5195e9
Add rst_ prefix to restart variables
2021-05-20 07:47:55 +02:00
Bård Skaflestad
e3e4c2e96a
Merge pull request #2980 from totto82/cleanUpPot
...
Only compute potentials at beginTimeStep after an event
2021-05-19 19:10:55 +02:00
Joakim Hove
203cc2ff73
Update WellState::temperature()
2021-05-19 10:05:11 +02:00
Joakim Hove
3ec7feba75
Update WellState::bhp()
2021-05-19 10:05:11 +02:00
Joakim Hove
846809ec29
Rename mutable perfPhaseRates()
2021-05-11 18:48:05 +02:00
Joakim Hove
83f32729fc
Fix function argument
2021-05-11 08:10:49 +02:00