Arne Morten Kvarving
1aa74a9830
move wellSurfaceVolumeFraction to StandardWellPrimaryVariables
2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
2fb53a4ef6
move wellVolumeFractionScaled to StandardWellPrimaryVariables
2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
d6a6671eb0
move wellVolumeFraction to StandardWellPrimaryVariables
2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
93a151f6e1
move (most of) updatePrimaryVariables to StandardWellPrimaryVariables
2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
f55d4334f1
move (most of) updateWellStateFromPrimaryVariables 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
Bård Skaflestad
9cde51cbc6
Merge pull request #4276 from akva2/stdwell_assemble
...
Added: StandardWellAssemble
2022-11-22 13:09:46 +01:00
Markus Blatt
d8ca55fe34
Merge pull request #4265 from totto82/well_temp
...
adapt to changes in temperature location in opm-common
2022-11-22 12:26:46 +01:00
Arne Morten Kvarving
3033f3784b
changed: make StandardWellEquations data members private
...
use a friend declaration for StandardWellEquationAccess to
give the assembler access to the matrices/vectors.
2022-11-22 12:22:18 +01:00
Arne Morten Kvarving
5eac7cae4e
added: StandardWellEquations::residual()
...
this returns a const reference to the residual vector.
use this in StandardWellEval::getWellConvergence
2022-11-22 12:22:18 +01:00
Arne Morten Kvarving
5bab68cb1f
added: StandardWellEquationAccess
...
this is a proxy class for accessing the equation system
in StandardWellAssemble.
use the new class for vector/matrix access in StandardWellAssemble.
2022-11-22 12:22:18 +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
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
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
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
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
97d158da38
added: StandardWellEquations::init
...
this initializes the equation system.
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
Markus Blatt
58d8ca144e
Merge pull request #4259 from blattms/do-dereference-unset-optional
...
[bugfix] Do not unconditionally dereference std::optional.
2022-11-22 10:26:30 +01:00
Bård Skaflestad
910f10d43b
Merge pull request #4280 from akva2/well_instantations_simplify
...
simplify instantations
2022-11-21 16:27:16 +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
5c26be0c28
Merge pull request #4214 from totto82/glift3_fix
...
Fixes related to gaslift stage 2
2022-11-21 14:40:52 +01:00
Bård Skaflestad
c3dceef6e0
Merge pull request #4237 from akva2/relax_factor_pass_double
...
changed: pass the actual update value to relaxationFactorRate
2022-11-21 13:49:02 +01:00
Kai Bao
48fa688a17
Merge pull request #4274 from GitPaean/handle_small_fractions_for_sicd
...
not calculating emulsionViscosity for small liquid_fraction
2022-11-21 13:26:17 +01:00
Kai Bao
9a1520a367
Merge pull request #4262 from totto82/fixInjTemp2
...
remove derivative in thermal flux for injectors
2022-11-21 13:25:24 +01:00
Arne Morten Kvarving
8a32d6bf33
simplify instantations
...
more readable
2022-11-21 12:48:50 +01:00
Tor Harald Sandve
c45d90650e
fix checking of group target
...
- use the actual delta rate in checkOilTarget etc
- add check for total gas rate = gas rate + alq
2022-11-21 09:17:24 +01:00
Tor Harald Sandve
7d7b2803a5
renaming and adding more comments based on review
2022-11-21 08:58:49 +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
Tor Harald Sandve
1a09608263
Fix removeSurplus alq
...
Add water rate target limit
Add the gradient to the checkXXXTarget so that surplus alq is removed
until it would go below the target. I.e. the group still want to produce it target
2022-11-21 08:58:49 +01:00
Tor Harald Sandve
cd09c130b3
pass group name to getRateWithGroupLimit to avoid checking for that
2022-11-21 08:58:49 +01:00
Håkon Hægland
c313a0a4b2
Remove unused variables
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
Håkon Hægland
686a6a969d
Calculate gradients with group limits.
...
Take into account group limits when calculating gradients for individual
wells in stage 2 of gas lift optimization.
2022-11-21 08:58:49 +01:00
Håkon Hægland
9c61262329
Changed formatting.
2022-11-21 08:58:49 +01:00
Håkon Hægland
bc566e3981
Also check LRAT group target in stage2
...
Also account for a group LRAT limit when removing surplus ALQ in gaslift
optimization stage 2.
2022-11-21 08:58:49 +01:00