Commit Graph

514 Commits

Author SHA1 Message Date
Arne Morten Kvarving
d1c1aecac7 move implementation of computePropertiesForWellConnectionPressure to StandardWellConnections 2022-11-25 12:56:20 +01:00
Arne Morten Kvarving
100a7b0582 rename computeConnectionDensities to computeDensities
that it applies to connections are now implied by class
2022-11-25 12:55:39 +01:00
Arne Morten Kvarving
5d1b5d9426 rename computeConnectionPressureDelta to computePressureDelta
that it applies to connections are now implied by class
2022-11-25 12:55:39 +01:00
Arne Morten Kvarving
0d72bba326 move computeConnectionDensities to StandardWellConnections
this necessitates expanding the template parameter list
2022-11-25 12:55:36 +01:00
Arne Morten Kvarving
7cadeb5206 changed: move StandardWellConnections out of inheritance hierarchy
instead hold a member in StandardWellEval
2022-11-25 12:54:56 +01:00
Bård Skaflestad
e524acd5b2
Merge pull request #4283 from akva2/stdwellass_simplify
StandardWellAssemble: simplify by using primary variables class
2022-11-23 23:29:42 +01:00
Arne Morten Kvarving
4f6665076c StandardWellAssemble: simplify by using primary variables class
- pass primary variables as parameter
- use the evaluation type
2022-11-23 21:19:06 +01:00
Arne Morten Kvarving
2da1322697 fix regression in wells
we need to call WellInterface::getTHPConstraint,
not WellBhpThpCalculator::getTHPConstraint
2022-11-23 15:37:04 +01:00
Bård Skaflestad
fa1ea7f997
Merge pull request #4282 from totto82/fixInjTemp2
remove derivative in thermal flux for injectors
2022-11-22 17:29:24 +01:00
Arne Morten Kvarving
8e3121113c drop unnecessary wrapper StandardWell::updateExtraPrimaryVariables 2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
f64628f72d StandardWellPrimaryVariables: make data members private
and add generic read-only accessors
2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
4bbcdf0646 add checkFinite to StandardWellPrimaryVariables 2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
999d4c6be9 add StandardWellPrimaryVariables::updateNewtonPolyMW
extracted from StandardWell::updatePrimaryVariablesNewton
2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
23a8aed4e8 move getWQTotal to StandardWellPrimaryVariables 2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
fbf99889b2 move getBhp to StandardWellPrimaryVariables 2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
ff26a9e001 remove StandardWell::updatePrimaryVariables
no need for the wrapper any longer as the implementation
is now in StandardWellPrimaryVariables.
2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
3f6c4922b0 move updatePrimaryVariablesNewton to StandardWellPrimaryVariables 2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
435bd67732 move getQs to StandardWellPrimaryVariables 2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
1aa74a9830 move wellSurfaceVolumeFraction to StandardWellPrimaryVariables 2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
412e561cd8 move updateWellStateFromPrimaryVariablesPolyMW to StandardWellPrimaryVariables 2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
f964169914 move updatePrimaryVariablesPolyMW to StandardWellPrimaryVariables 2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
15d49e745e added: StandardWellPrimaryVariables
this is a container class for the primary variables in
standard well
2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
68bc90b3be added: StandardWellAssemble::assembleSourceEq
extracted from StandardWell::assembleWellEqWithoutIterationImpl
2022-11-22 12:22:18 +01:00
Arne Morten Kvarving
5bbf205619 added: StandardWellAssemble::asembleZFracEq
extracted from StandardWell::assembleWellEqWithoutIterationImpl
2022-11-22 12:22:18 +01:00
Arne Morten Kvarving
f720cc6dde added: StandardWellAssemble::assemblePerforationEq
extracted from StandardWell::assembleWellEqWithoutIterationImpl
2022-11-22 12:22:18 +01:00
Arne Morten Kvarving
57ecd2a5e9 added: StandardWellAssemble::assembleInjectivityEq
extracted from StandardWell::handleInjectivityEquations
2022-11-22 12:22:18 +01:00
Arne Morten Kvarving
10e967653b added: StandardWellAssemble
this handles assembly of the equation system for standardwell.
start by moving assembleControlEq into the new class
2022-11-22 12:22:18 +01:00
Arne Morten Kvarving
d2c028fb74 StandardWell_impl.hpp: remove some unused headers 2022-11-22 10:37:41 +01:00
Arne Morten Kvarving
4b4898d6ec added: StandardWellEquations::sumDistributed
this sums up the global equation system for distributed wells
2022-11-22 10:37:41 +01:00
Arne Morten Kvarving
e9ed80d644 added: StandardWellEquations::extractCPRPressureMatrix()
this adds the cpr pressure matrix to a matrix.
this is the core of StandardWellEval::addWellPressureEquations
use the new method in the implementation.
2022-11-22 10:37:41 +01:00
Arne Morten Kvarving
f2d8a073f9 added: StandardWellEquations::extract(SparseMatrixAdapter)
this adds the well matrices to a sparse matrix adapter.
this is the core of StandardWellEval::addWellContributions.
use the new method in the implementation.
2022-11-22 10:36:54 +01:00
Arne Morten Kvarving
40640e9da6 added: StandardWellEquations::recoverSolutionWell()
this recovers the well solution from a solution vector.
use the new method in the well implementation.
2022-11-22 10:36:54 +01:00
Arne Morten Kvarving
daf0f90fe5 added: StandardWellEquations::solve()
this applies the inverted D matrix to the residual vector.
use the new method in the well implementation.
2022-11-22 10:36:54 +01:00
Arne Morten Kvarving
83c41e3f9c added: StandardWellEquations::invert()
this inverts the D matrix.
use the new method in the well implementation.
2022-11-22 10:36:54 +01:00
Arne Morten Kvarving
033718f027 added: StandardWellEquations::apply(r)
this applies the equation system to a vector.
use the new method in the well implementation.
2022-11-22 10:36:54 +01:00
Arne Morten Kvarving
21bb4dc955 added: StandardWellEquations::apply(x,Ax)
this applies the equation system to a vector.
use the new method in the well implementation.
2022-11-22 10:36:54 +01:00
Arne Morten Kvarving
d05081417e added: StandardWellEquations::clear
this zeros the equation system.
use the new method in the well implementation.
2022-11-22 10:36:54 +01:00
Arne Morten Kvarving
a8c912ccfa add: StandardWellEquations
this is a container for the standard well equation system
2022-11-22 10:36:54 +01:00
Tor Harald Sandve
f9ab7e6b07 remove derivative in thermal flux for injectors 2022-11-22 09:40:39 +01:00
Bård Skaflestad
eeae2442a8
Revert "remove derivative in thermal flux for injectors" 2022-11-21 15:20:45 +01:00
Tor Harald Sandve
7553e22726 remove derivative in thermal flux for injectors 2022-11-10 12:57:21 +01:00
Arne Morten Kvarving
e8152a1b65 changed: tidy up computeBhpAtThpLimitProdWithAlq interface
put deferred_logger at the end of the parameter list.
similar to the rest of this family of methods
2022-10-31 13:16:16 +01:00
Arne Morten Kvarving
db05f1d73f changed: drop wrapper StandardWellGeneric::computeBhpAtThpLimitProdWithAlq 2022-10-31 13:16:15 +01:00
Arne Morten Kvarving
f214ccc138 changed: move computeBhpFromThpLimitInj to WellBhpThpCalculator 2022-10-31 13:15:56 +01:00
Arne Morten Kvarving
4fcb1e9d37 changed: move calculateThpFromBhp to WellBhpThpCalculator 2022-10-31 13:15:18 +01:00
Arne Morten Kvarving
f7f4352b68 changed: move mostStrictBhpFromBhpLimits to WellBhpThpCalculator 2022-10-31 13:15:18 +01:00
Arne Morten Kvarving
5d4c7f49a2 move checkConvergencePolyMW into WellConvergence 2022-10-28 19:47:59 +02:00
Tor Harald Sandve
74eb0d048f Improve convergence for newly opened wells with thp control 2022-10-17 15:32:27 +02:00
Markus Blatt
a4360b4961
Merge pull request #4028 from akva2/reduce_dup
changed: get rid of duplicate MatrixBlock headers/classes
2022-09-09 15:30:30 +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
a9590215dc changed: consistently use std::array 2022-08-26 08:28:46 +02:00
Arne Morten Kvarving
1a348c0d29 changed: get rid of duplicate MatrixBlock headers/classes
this has already led to some confusion. move some of the code
upstream to opm-models and remove the rest of the duplicated code.

the remainder of MatrixBlock.hpp is renamed to SmallDenseMatrixUtils.hpp
2022-08-25 12:48:53 +02:00
Bård Skaflestad
a56cd6752c
Revert "changed: reduce some code duplication" 2022-08-24 20:34:52 +02:00
Arne Morten Kvarving
447d77b579 changed: get rid of duplicate MatrixBlock headers/classes
this has already led to some confusion. move some of the code
upstream to opm-models and remove the rest of the duplicated code.

the remainder of MatrixBlock.hpp is renamed to SmallDenseMatrixUtils.hpp
2022-08-24 15:54:01 +02:00
Tor Harald Sandve
96222f8afb dont use explicit vfp lookup for newly opened wells 2022-08-19 10:33:19 +02:00
Arne Morten Kvarving
d2ba2e75e8 remove include of Well header 2022-08-11 11:49:42 +02:00
Markus Blatt
941957c13e Fix shadowed variable warning. 2022-07-28 19:50:24 +02:00
Markus Blatt
f7dec58ee2 Fix deadlock for distributed wells when calculating densities/pressures
There was a check that is supposed that all rates are zero but for
distributed wells it only checked local perforations. Of course that
can lead to different outcome on processes for distributed wells.
2022-07-15 17:58:04 +02:00
Markus Blatt
412cf1d6cd
Merge pull request #3976 from blattms/well-fix-distributed-tw
[bugfix] Fix well transmissibility weights for distributed wells.
2022-07-15 10:39:48 +02:00
Markus Blatt
bfd1d3187a [bugfix] Fix well transmissibility weights for distributed wells.
If we compute a sum over all perforations than we need to cater for the
case of distributed wells. That is we need to also sum up over all processes
involved after performing the local sum.

One of these global sums was missing in computeWellConnectionDensitesPressures
for producers when we compute the weights based on well transmissibilities.
2022-07-13 13:40:16 +02:00
Tor Harald Sandve
cf1abb086f remove msw(ms) from regulariztion parameter 2022-06-29 15:39:51 +02:00
Tor Harald Sandve
eef455106d regularize equation for std wells 2022-06-29 12:47:44 +02:00
Arne Morten Kvarving
da57e15271 fixed: fix build with dune 2.6 2022-06-20 14:16:43 +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
8f4cf8a952 removed compiler warnings 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
hnil
a8acd40f4a Changes to make ms wells work with cprw 2022-06-08 17:03:27 +02:00
hnil
4975d5d9e7 - fixed extended communicator
- fixed scaling of well cpr
2022-06-08 17:02:02 +02:00
hnil
da572d1f60 -Fixed buges related to cpr with wells.
- change interfaces to have access to pressureVarIndex
- added option in cmake files to propagate checking in dune-istl
2022-06-08 17:02:02 +02:00
Atgeirr Flø Rasmussen
fef06a77af Updated for upstream changes. 2022-06-08 17:02:02 +02:00
hnil
f3acfcde0b Adding functions for pressure system manipulation to well models.
Also add well-aware operator and transfer policy.
This will be used for CPR with custom operators.
2022-06-08 17:01:33 +02:00
Tor Harald Sandve
3adaa1b987 fix component/phase mixup 2022-06-07 14:14:13 +02:00
Tor Harald Sandve
e965dac3ee Only flag a bhp producer/injector operable if the sum of IPR are negative/positive 2022-06-07 10:47:22 +02:00
Paul Egberts
a255613452
Merge branch 'master' into vapoilwat 2022-05-11 11:55:54 +02:00
Paul Egberts
5a23084846 restored MultisegmentWellEval.cpp 2022-05-03 11:54:41 +02:00
Tor Harald Sandve
c8bef3bcd5 only check if wells has negative potentials if check_well_operabilty=true(default) 2022-04-22 08:19:33 +02:00
Håkon Hægland
9d04895ddb Fix assertion error for 2p oil water
VFP calculations for two phase gas lift does not work unless the
rates are adpated to include a zero gas rate.
2022-04-20 21:47:15 +02:00
Paul Egberts
17f2365406 clean up comments 2022-04-11 22:15:35 +02:00
Paul Egberts
c2fa5fc5a8 adding three-phase simulator including water evaporation and saltpreciopitation 2022-04-11 21:56:44 +02:00
Paul Egberts
ab3be6dce4 adjustments to account for vaporized water 2022-04-08 22:36:39 +02:00
Tor Harald Sandve
fba9046201 Some more clean-up based on review 2022-04-04 11:37:31 +02:00
Tor Harald Sandve
69ffed06de Address comments from review
1) Add debug messages
2) Fix bug of missing else in the code
2022-04-04 08:24:32 +02:00
Tor Harald Sandve
5b53fcd8a6 guard against d = 0 2022-04-04 08:24:32 +02:00
Kai Bao
aa633ff98f reconstructing the if structure for has_energy
in StandardWell<TypeTag>::
    calculateSinglePerf()
2022-03-31 22:38:55 +02:00
Tor Harald Sandve
519b5dd8cc
Merge pull request #3810 from totto82/refactor_bhpFromThpLimit_1
Refactor bhp from thp limit
2022-03-22 13:57:52 +01:00
Tor Harald Sandve
c067e5fafd
Merge pull request #3834 from totto82/avoid_closing
Handle case where bhp target is violated
2022-03-22 11:56:21 +01:00
Tor Harald Sandve
7d5a0a74eb Handle case where bhp target is violated 2022-03-21 09:52:41 +01:00
Håkon Hægland
438a712e54 Gas lift optimization for two-phase oil-water.
Add gas lift optimization support for two-phase oil-water flow.
2022-03-07 15:19:43 +01:00
Tor Harald Sandve
cb99a2fc74 check also the validity of the iterated solution 2022-02-15 12:39:42 +01:00
Tor Harald Sandve
e0573e99b1 iterate in computeBhpAtThpLimitProdWithAlq if no solution or potentials are negative 2022-02-15 12:39:42 +01:00
Tor Harald Sandve
1001d35418 Move computeBhpAtThpLimitProd MSW code to common and apply it for both MSW and STW
The computeBhpAtThpLimitProd for MSW is faster and sufficiently robust and should also be used by STW
2022-02-15 12:39:42 +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
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
abf92eed52 Accumulate Dissolved Gas and Vaporized Oil Flow Rates Across Ranks
This is needed to get consistent estimates for the summary vectors

  * {F,G,W}OP{R,T}{F,S} -- Free/Vaporized Oil Production
  * {F,G,W}GP{R,T}{F,S} -- Free/Dissolved Gas Production

in the case of distributed wells.

Thanks to [at]blattms for the suggested fix.
2022-01-10 14:14:39 +01:00
Joakim Hove
6b92443cb4 Downstream filesystem reorganisation in opm-common 2022-01-02 14:33:34 +01:00
Tor Harald Sandve
51d9b7ee11
Merge pull request #3719 from totto82/noIterPot
Do not iterate when computing well potentials for standard wells
2021-12-10 16:20:10 +01:00
Tor Harald Sandve
fac3ca3507 do not iterate when computing well potentials 2021-12-02 13:48:22 +00:00
Tor Harald Sandve
2c17b1942c Move getPerfCellPressure to wellInterface
The cell pressure is independent of well model and belongs to the interface
This should move the MSW model one step closer to supporting GasWater cases
2021-11-30 10:48:02 +00:00
Tor Harald Sandve
50ab26c330 cleanup 2021-11-23 14:01:07 +00:00
Tor Harald Sandve
43fd50e355 only mark negative potentials as not operable 2021-11-22 11:27: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
Tor Harald Sandve
1c9c5c484b check operability injectors 2021-10-15 12:32:02 +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
Tor Harald Sandve
fdf6ce9c54 change assert with throw for isfinite primary variable 2021-10-08 15:26:52 +02:00
Tor Harald Sandve
cb9254636b rename and cleanup 2021-09-30 09:01:07 +02:00
Joakim Hove
a527dc7fdd Remove stale TODO 2021-09-28 23:45:40 +02:00
Joakim Hove
3aaaa23ed1 Implement connection rate summation in SingleWellState 2021-09-28 23:45:40 +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
21942f0cc2 use getMobilityScalar in updateIPR 2021-09-21 09:50:20 +02:00
Joakim Hove
5531120411 Use SingleWellState argument instead of full WellState 2021-09-20 11:45:24 +02:00
Tor Harald Sandve
bd066d9300
Merge pull request #3524 from totto82/speedUpPot
Do not iterate inside computeBhpFromThp in MSW
2021-09-15 12:44:52 +02:00
Tor Harald Sandve
81d9a8c178 add option for relaxed convergence for stw 2021-09-14 14:32:14 +02:00
Tor Harald Sandve
43a858ef25 rename computeBhpFromThpPotential to computeBhpFromThpIterations in std wells 2021-09-13 14:07:21 +02:00
Arne Morten Kvarving
ae212ff883 drop using statement for ipr_b_
rather qualify member variable with this->
2021-09-07 11:26:33 +02:00
Arne Morten Kvarving
870cb04e68 drop using statement for ipr_a_
rather qualify member variable with this->
2021-09-07 11:26:33 +02:00
Arne Morten Kvarving
ad39dbdaf0 drop using statement for bore_diameters_
rather qualify member variable with this->
2021-09-07 11:26:33 +02:00
Arne Morten Kvarving
001d69c17b drop using statement for perf_length_
rather qualify member variable with this->
2021-09-07 11:26:33 +02:00
Arne Morten Kvarving
475bea085c drop using statement for perf_rep_radius_
rather qualify member variable with this->
2021-09-07 11:26:33 +02:00
Arne Morten Kvarving
2cc38ed396 drop using statement for connectionRates_
rather qualify member variable with this->
2021-09-07 11:26:33 +02:00
Arne Morten Kvarving
9b92837673 drop using statement for num_components_
rather qualify member variable with this->
2021-09-07 11:26:33 +02:00
Arne Morten Kvarving
1d15c3064a drop using statement for index_of_well_
rather qualify member variable with this->
2021-09-07 11:25:09 +02:00
Arne Morten Kvarving
10b756d08c drop using statement for well_index_
rather qualify member variable with this->
2021-09-07 11:25:09 +02:00
Arne Morten Kvarving
aaf216a29a drop using statement for saturation_table_number_
rather qualify member variable with this->
2021-09-07 11:25:09 +02:00
Arne Morten Kvarving
55b52c3bd4 drop using statement for number_of_phases_
rather qualify member variable with this->
2021-09-07 11:25:09 +02:00
Arne Morten Kvarving
79801bb63a drop using statement for number_of_perforations_
rather qualify member variable with this->
2021-09-07 11:25:09 +02:00
Arne Morten Kvarving
66e938b13e drop using statement for well_cells_
rather qualify member variable with this->
2021-09-07 11:24:51 +02:00
Arne Morten Kvarving
97cbbe910a drop using statement for perf_depth_
rather qualify member variable with this->
2021-09-07 11:24:51 +02:00
Arne Morten Kvarving
68786651f5 drop using statement for well_efficiency_factor_
rather qualify member variable with this->
2021-09-07 11:24:51 +02:00
Arne Morten Kvarving
73be71bff5 drop using statement for param_
rather qualify member variable with this->
2021-09-07 11:24:06 +02:00
Arne Morten Kvarving
79d8cf90fd drop using statement for well_ecl_
rather qualify member variable with this->
2021-09-07 11:24:06 +02:00
Arne Morten Kvarving
874a7a3830 drop using statement for getALQ
rather qualify member function calls with this->
2021-09-07 11:24:06 +02:00
Arne Morten Kvarving
45de63f0f5 drop using statement for mostStrictBhpFromBhpLimits
rather qualify member function calls with this->
2021-09-07 11:24:06 +02:00
Arne Morten Kvarving
83671b3448 drop using statement for wfoam
rather qualify member function calls with this->
2021-09-07 11:24:06 +02:00
Arne Morten Kvarving
6cfd259f2f drop using statement for wpolymer
rather qualify member function calls with this->
2021-09-07 11:24:06 +02:00
Arne Morten Kvarving
fd2185d3f9 drop using statement for wsolvent
rather qualify member function calls with this->
2021-09-07 11:23:25 +02:00
Arne Morten Kvarving
2c0743c888 drop using statement for wsalt
rather qualify member function calls with this->
2021-09-07 11:23:25 +02:00
Arne Morten Kvarving
dae0e73327 drop using statement for ebosCompIdxToFlowCompIdx
rather qualify member function calls with this->
2021-09-07 11:23:25 +02:00
Arne Morten Kvarving
9ebb315002 drop using statement for flowPhaseToEbosPhaseIdx
rather qualify member function calls with this->
2021-09-07 11:23:24 +02:00
Arne Morten Kvarving
35cc1b9a2a drop using statement for flowPhaseToEbosCompIdx
rather qualify member function calls with this->
2021-09-07 11:23:24 +02:00
Arne Morten Kvarving
48e282bd65 drop using statement for getAllowCrossFlow
rather qualify member function calls with this->
2021-09-07 11:23:24 +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
Tor Harald Sandve
7c8a39fdb6 fix after rebase 2021-08-26 10:32:58 +02:00
Tor Harald Sandve
514c2a67a9 always compute potentials 2021-08-26 10:29:25 +02:00
Tor Harald Sandve
7e3cca1316 iterate to get more accurate potentials for stw wells 2021-08-26 10:29:25 +02:00
Joakim Hove
579aba8d08 Include perforation data in SingleWellState 2021-08-24 12:46:24 +02:00
Joakim Hove
755de65eb4 Use SingleWellState to manage well surface rates 2021-08-24 12:46:24 +02:00
Joakim Hove
67bd2fd333 Add productivity_index to SingleWellState 2021-08-23 12:05:26 +02:00
Joakim Hove
e84eaa3179 Add dissolved_gas_rate and vaporized_oil_rate to SingleWellState 2021-08-23 12:05:26 +02:00
Joakim Hove
581f571c9d Use SingleWellState for production and injection control 2021-08-15 09:07:39 +02:00
Joakim Hove
a54daf75e8 Add trivial class SingleWellState with bhp and thp 2021-08-15 09:01:21 +02:00
Tor Harald Sandve
ac4ee51a5f
Merge pull request #3465 from totto82/updateWTS
Make sure potentials are computed in some corner cases
2021-08-10 14:15:22 +02:00
Tor Harald Sandve
5cb81d36c9 re-compute potentials for pressure controlled wells with trivial rates 2021-08-09 13:41:50 +02:00
Tor Harald Sandve
153cd678c6 Add a derivative free version of the well rate calculations 2021-08-04 11:32:50 +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
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
Joakim Hove
3c3a4afcfc Use PerfData for connection productivity index 2021-06-10 14:32:45 +02:00
Joakim Hove
81c5ce8843 Use PerfData for water throughput, water velocity and skin pressure 2021-06-10 14:32:45 +02:00
Joakim Hove
db02b9f112 Use PerfData for solvent perforation rates 2021-06-10 14:27:37 +02:00
Joakim Hove
49e9b51269 Use PerfData for polymer rates 2021-06-10 07:19:21 +02:00
Joakim Hove
3010b96611 Use PerfData for perforation rates 2021-06-10 07:19:21 +02:00
Joakim Hove
76838cd8a4 Use PerfData for perforation pressure 2021-06-10 07:19:21 +02:00
Arne Morten Kvarving
eb06c4bd70 add StandardWellEval 2021-06-09 08:32:30 +02:00
Joakim Hove
023edc67e5 Remove first perf member from Well classes 2021-06-08 14:24:26 +02:00
Arne Morten Kvarving
10ff86af52 add StandardWellGeneric
avoid rebuilding this for all simulators when code
is only dependent on Scalar. specialized for double
2021-06-08 08:08:50 +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
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
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
Arne Morten Kvarving
c76803b913 changed: make bhp template hidden and use explicit instantations
this to avoid includes in headers.
2021-05-31 11:42:29 +02:00
Tor Harald Sandve
cccece4104 use rates for potentials for pressure controlled (bhp or thp) controled wells 2021-05-26 13:54:14 +02:00
Joakim Hove
86c75ee4fe
Merge pull request #3298 from akva2/no_opm_in_opm
fixed: do not use Opm:: prefix when inside namespace Opm
2021-05-26 10:15:46 +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
Arne Morten Kvarving
d55df4330e fixed: do not use Opm:: prefix when inside namespace Opm 2021-05-25 12:06:06 +02:00
Joakim Hove
b34c161805 Use WellContainer<double> for RS / RV 2021-05-24 10:01:00 +02:00
Joakim Hove
89a712603f Use well index for misc perforation data 2021-05-24 09:14:36 +02:00
Joakim Hove
d6151e2f00 Use well index for perf water throughput 2021-05-24 09:14:36 +02:00
Joakim Hove
2f901f1012 Use well index when iterating over brine perforation rates 2021-05-24 09:14:36 +02:00
Joakim Hove
f9e142dc8d Use well index when iterating over polymer perforation rates 2021-05-24 09:14:36 +02:00
Joakim Hove
5437cfa37a Use well index when iterating over solvent perf rates 2021-05-24 09:14:36 +02:00
Arne Morten Kvarving
1614767362 GasLiftSingleWell: split typetag independent code to separate class 2021-05-21 09:09:10 +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
b0458cee33
Merge pull request #3268 from joakim-hove/wellstate-iget
Wellstate iget
2021-05-19 14:29:26 +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
bcfab1fed3 use if constexpr to eliminate some brine code 2021-05-18 15:04:47 +02:00
Arne Morten Kvarving
db668e8d80 make has_energy constexpr and use if constexpr to eliminate code 2021-05-18 15:04:47 +02:00
Arne Morten Kvarving
268201eeb1 make has_polymermw constexpr and use if constexpr to eliminate code 2021-05-18 15:04:47 +02:00
Arne Morten Kvarving
dd04eb128a use if constexpr to eliminate some zFraction code 2021-05-18 10:18:11 +02:00
Arne Morten Kvarving
83595d84c3 use if constexpr to eliminate some polymer code 2021-05-18 10:18:11 +02:00