Commit Graph

4017 Commits

Author SHA1 Message Date
Arne Morten Kvarving
6011a42246 added: MultisegmentWellAssemble::assemblePerforationEq
extracted from MultisegmentWell::assembleWellEqWithoutIteration
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
b1d1e47e28 added: MultisegmentWellAssemble::assembleInflowTerm
extracted from MultisegmentWell::assembleWellEqWithoutIteration
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
d5bbccde65 added: MultisegmentWellAssemble::assembleOutflowTerm
extracted from MultisegmentWell::assembleWellEqWithoutIteration
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
517dd49771 added: MultisegmentWellAssemble::assembleAccumulationTerm
extracted from MultisegmentWell::assembleWellEqWithoutIteration
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
1952ca1e5c use MultisegmentWellAssemble::assemblePressureEq in assembleICDPressureEq 2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
32dce644d3 added: MultisegmentWellAssemble::assembleTrivialEq
extracted from MultisegmentWellEval::assembleICDPressureEq
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
05a4ca85a7 added: MultisegmentWellAssemble::assemblePressureEq
extracted from MultisegmentWellEval::assembleDefaultPressureEq
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
d64508f3b8 added: MultisegmentWellAssemble::assemblePressureLoss
extracted from MultisegmentWellEval::handleAccelerationPressureLoss
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
4ebde4e003 added: MultisegmentWellAssemble
this handles assembly of the equation system for multisegment well.
start by moving assembleControlEq into the new class
2022-12-05 11:07:09 +01:00
Bård Skaflestad
4f38217fc8
Merge pull request #4302 from akva2/msw_equations
Added: MultisegmentWellEquations
2022-12-05 11:05:31 +01:00
Arne Morten Kvarving
97e1cdb662 added: MultisegmentWellEquations::extractCPRPressureMatrix()
this adds the cpr pressure matrix to a matrix.
this is the core of MultisegmentWell::addWellPressureEquations
use the new method in the implementation.
2022-12-05 10:13:55 +01:00
Arne Morten Kvarving
de8eedb9a6 added: MultisegmentWellEquations::extract(SparseMatrixAdapter)
this adds the well matrices to a sparse matrix adapter.
this is the core of MultisegmentWell::addWellContributions.
use the new method in the implementation.
2022-12-05 10:13:55 +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
d50aaf8ed4 added: MultisegmentWellEquations::recoverSolutionWell()
this recovers the well solution from a solution vector.
use the new method in the well implementation.
2022-12-05 10:13:55 +01:00
Arne Morten Kvarving
bc312d1117 added: MultisegmentWellEquations::solve()
this applies the inverted D matrix to the residual vector.
use the new method in the well implementation.
2022-12-05 10:13:55 +01:00
Arne Morten Kvarving
a7cb444328 MSWellHelpers: simplify interfaces
- avoid passing the matrix, only pass the solver. possible
  since setting up the solver is not done in here any more.
- avoid passing shared_ptr's
2022-12-05 10:13:55 +01:00
Arne Morten Kvarving
e67e58d0c8 added: MultisegmentWellEquations::createSolver
this applies compute the LU decomposition of the D matrix
2022-12-05 10:13:53 +01:00
Torbjørn Skille
8dec3958bd Updates related to unsupported keywords and options
Majority of unsupported keywords and unsupported keyword options are now critical (simulator will stop).
2022-12-02 12:46:43 +01:00
Kai Bao
3d86688d0f renaming local_comp_index to local_conn_index
in function WellState::reportConnections() since there is no
completion involved here.
2022-12-01 15:42:18 +01:00
Kai Bao
aaf76227f6 using correct CPI indices for connections
in WellState::reportConnections()
2022-12-01 15:16:35 +01:00
Arne Morten Kvarving
abf5f94561 added: MultisegmentWellEquations::apply(r)
this applies the equation system to a vector.
use the new method in the well implementation.
2022-12-01 10:36:40 +01:00
Arne Morten Kvarving
f2acbccc1a added: MultisegmentWellEquations::apply(x,Ax)
this applies the equation system to a vector.
use the new method in the well implementation.
2022-12-01 10:36:40 +01:00
Arne Morten Kvarving
8fe6b3968e added: MultisegmentWellEquations::init
this initializes the equation system.
use the new method in the well implementation.
2022-12-01 10:36:40 +01:00
Arne Morten Kvarving
ade6d99289 add two accessors in MultisegmentWellGeneric
for segment inlets and segment perforations
2022-12-01 10:25:59 +01:00
Arne Morten Kvarving
ac245a2e17 added: MultisegmentWellEquations::clear
this zeros the equation system.
use the new method in the well implementation.
2022-12-01 10:25:57 +01:00
Arne Morten Kvarving
57f09050fc add: MultisegmentWellEquations
this is a container for the multisegment well equation system
2022-12-01 10:25:28 +01:00
Atgeirr Flø Rasmussen
e23da0b6b7
Merge pull request #4301 from akva2/msw_avoid_mutable
MultisegmentWell: avoid mutable matrices/vectors
2022-12-01 08:03:01 +01:00
Arne Morten Kvarving
d1b4b1afae MultisegmentWellEval: remove mutable from matrices and vectors 2022-11-30 23:15:25 +01:00
Arne Morten Kvarving
2f0c68f574 MultisegmentWellEval: make assembleICDPressureEq non-const
this changes class state
2022-11-30 23:15:25 +01:00
Arne Morten Kvarving
c15925858f MultisegmentWellEval: make assembleDefaultPressureEq non-const
this changes class state
2022-11-30 23:15:25 +01:00
Arne Morten Kvarving
f6e12a86b3 MultisegmentWellEval: make assemblePressureEq non-const
this changes class state
2022-11-30 23:15:25 +01:00
Arne Morten Kvarving
1cde1335ac MultisegmentWellEval: make handleAccelerationPressureLoss non-const
this changes class state
2022-11-30 23:15:25 +01:00
Arne Morten Kvarving
fcf4da30d3 MultisegmentWellEval: make initMatrixAndVector non-const
this changes class state
2022-11-30 23:15:25 +01:00
Arne Morten Kvarving
eadf972014 MSWellHelpers: reverse order of template parameters
this way the matrix type and be deduced from passed parameters
2022-11-30 23:05:29 +01:00
Atgeirr Flø Rasmussen
7e8b0d5700
Merge pull request #4290 from totto82/refactor_primaryVars_Meaning
adapt to primary variable refactoring
2022-11-30 11:10:47 +01:00
Bård Skaflestad
e3d05d1129 Promote Segment Data in WRFTPLT to Supported Status
While there are a few arrays we admittedly don't create, the level
of support is now sufficiently complete that declaring values other
than 'NO' as "supported" is warranted.
2022-11-28 11:33:34 +01:00
Kai Bao
6102249466
Merge pull request #4289 from akva2/fix_thp_regression
fix regression in wells
2022-11-28 10:46:35 +01:00
Bård Skaflestad
fe7da56268
Merge pull request #4293 from akva2/stdwell_conn
added: StandardWellConnections
2022-11-25 15:31:53 +01:00
Arne Morten Kvarving
2671a3fb35 fixed: primary variables no longer needs to be mutable 2022-11-25 13:09:57 +01:00
Arne Morten Kvarving
13af642fe4 StandardWell: make updatePrimaryVariablesNewton non-const
this will obviously modify well state
2022-11-25 13:09:29 +01:00
Arne Morten Kvarving
64112f76b3 StandardWell: make updateWellState non-const
this will obviously modify well state
2022-11-25 13:09:29 +01:00
Arne Morten Kvarving
c9856b9b2a WellInterface: make updatePrimaryVariables non-const
this will obviously modify well state
2022-11-25 13:09:29 +01:00
Arne Morten Kvarving
fba6249dd8 WellInterface: make recoverWellSolutionAndUpdateWellState non-const
this will obviously modify well state
2022-11-25 13:09:29 +01:00
Arne Morten Kvarving
147f0eb2bd WellInterface: make initPrimaryVariablesEvaluation non-const
this will obviously modify well state
2022-11-25 13:09:29 +01:00
Tor Harald Sandve
bdb82c2f3d Rename PrimaryVarsMeaning{Water/Gas/Pressure/Brine} to {Water/Gas/Pressure/Brine}Meaning 2022-11-25 13:03:26 +01:00
Arne Morten Kvarving
549fcf0629 use Scalar not double 2022-11-25 12:56:49 +01:00
Arne Morten Kvarving
dfd68266e9 rename computeWellConnectionDensitesPressures to computeProperties
make computePressureDelta and computeDensities private
2022-11-25 12:56:49 +01:00
Arne Morten Kvarving
86bf452059 move computeWellConnectionDensitesPressures to StandardWellConnections 2022-11-25 12:56:47 +01:00
Arne Morten Kvarving
dcc333dac3 make member variables private in StandardWellConnections 2022-11-25 12:56:23 +01:00
Arne Morten Kvarving
1d058a4edf rename StandardWellConnections::getRho() to just rho() 2022-11-25 12:56:23 +01:00
Arne Morten Kvarving
9aeb48887c rename computePropertiesForWellConnectionPressure to computePropertiesForPressure
that it applies to connections are now implied by class
2022-11-25 12:56:23 +01:00
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
Arne Morten Kvarving
b08c165384 rename StandardWellGeneric to StandardWellConnections 2022-11-25 12:54:56 +01:00
Arne Morten Kvarving
0389465bbf StandardWellGeneric: clean includes and forwards 2022-11-25 12:54:53 +01:00
Tor Harald Sandve
22d27bdf5f Adapt to change of enum to enum class for primary variable meaning 2022-11-25 10:53:48 +01:00
Tor Harald Sandve
a190668800 adapt to rename of waterSaturationIdx -> waterSwitchIdx 2022-11-25 10:53:48 +01:00
Tor Harald Sandve
0c6d29a352 adapt to primary variable refactoring 2022-11-25 10:53:48 +01:00
Arne Morten Kvarving
c7016854d9 changed: make the deck an implementation detail in Opm::readDeck 2022-11-24 13:00:38 +01:00
Arne Morten Kvarving
f4f8c033d8 EclGenericVanguard: remove deck member 2022-11-24 12:10:52 +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
5b69890ece Report Solution GOR and OGR at Segment Level
This enables calculating the SOFRF and SGFRF summary vectors.
2022-11-22 18:06:05 +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
Markus Blatt
42fdc38ae0
Merge pull request #4273 from Tongdongq/add-test
Add test for cusparseSolver
2022-11-22 13:55:11 +01:00
Arne Morten Kvarving
3cd87a8c89 StandardWellPrimaryVariables: store values as Scalar 2022-11-22 13:11:17 +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
b5f5a24af6 relaxationFactorFractionsForProducer: no need to pass values any longer 2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
bc3680f822 updateNewton: avoid copying 2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
e5e6e21122 relaxationFactorRate: no need to pass entire vector 2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
2fbc699007 make relaxationFactorRate an anon helper 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
0cddc4516e make relaxationFactorFractions an anon helper in StandardWellPrimaryVariables 2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
7b8e88bdd5 move relaxationFactorFractionsForProducer to StandardWellPrimaryVariables 2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
cd3388f7c0 move processFractions 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
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
Tor Harald Sandve
f9ab7e6b07 remove derivative in thermal flux for injectors 2022-11-22 09:40:39 +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
Tong Dong Qiu
a8e568f4c5 Moved initializing CUDA device to constructor 2022-11-21 15:54:14 +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
Håkon Hægland
61ed803740 Do stage2 even if GLIFTOPT is not defined 2022-11-21 08:58:49 +01:00
Tong Dong Qiu
5620b08033 Fix segfaults rocalutionSolver 2022-11-18 14:19:10 +01:00
Tong Dong Qiu
21b23b7aa4 Combine multiple defines into one 2022-11-18 13:09:39 +01:00
Kai Bao
5e35477ce1 a little different form to keep the derivatives 2022-11-17 22:57:42 +01:00
Kai Bao
3ddb830ae9 not calculating emulsionViscosity for small liquid_fraction
it might introduce inf/nan in the Jacobian matrix.
2022-11-17 15:20:56 +01:00
Bård Skaflestad
936e9e87e7 Convey More Dynamic State Values per Segment to Output Layer
In particular, report local condition segment flow velocities,
segment holdup fractions, and segment phase viscosities.
2022-11-17 11:49:29 +01:00
Bård Skaflestad
085ccccb1e Capture More Dynamic State Per Segment
In particular, calculate segment flow velocities, segment holdup
fractions, and segment phase viscosities when updating the well
state.  This is purely for reporting purposes and does not affect
the multisegmented model.
2022-11-17 11:49:29 +01:00
Bård Skaflestad
2da83fa680 Expose Internal Support for Inferring Rs/Rv From Surface Volumes 2022-11-17 11:49:29 +01:00
Bård Skaflestad
7d9beb3506 Support Using Different Types for Surface and Reservoir Rates
Simplifies using pointers here.
2022-11-17 11:49:29 +01:00
Tong Dong Qiu
65128d1616 Removed unused reordering functions, file, header inclusions 2022-11-17 09:38:23 +01:00
Tong Dong Qiu
35287a61ff Remove FPGASolver and references 2022-11-17 09:38:01 +01:00
Arne Morten Kvarving
f9f6fdb3bf BlackoilAquiferModel: only include alugrid if it is to be used 2022-11-14 15:11:12 +01:00
Arne Morten Kvarving
bdb2738034 ISTLSolverEbos: instance for ALUGrid 2022-11-14 14:54:11 +01:00
Atgeirr Flø Rasmussen
5107bcfada
Merge pull request #4226 from hnil/remove_assert_cprw
removed assert in cprw for strictly positive diagonal well coupling
2022-11-14 12:42:37 +01:00
hnil
9c76c96f21 moved debug code into #if section 2022-11-14 11:36:48 +01:00
Tor Harald Sandve
76dc8255fc adapt to changes in temperature location in opm-common 2022-11-11 13:19:38 +01:00
Tor Harald Sandve
7553e22726 remove derivative in thermal flux for injectors 2022-11-10 12:57:21 +01:00
Bård Skaflestad
d388ce40e5 Revert to Original Rs/Rv Calculation Scheme for RESV Rates
Keep the alternative approach in place for reference and
experimental purposes, but disabled by a macro.
2022-11-10 09:41:47 +01:00
Bård Skaflestad
f0e2a1efe0 Make Reservoir Voidage Rate Calculator Independent
This commit adds a new overload of the calcReservoirVoidageRates()
member function.  The new overload does not depend on the user
calling defineState(), but instead takes state variables as direct
input arguments.

Reimplement the state-dependent overload in terms of the new
function.  The immediate use case is calculating additional dynamic
quantities per segment in a multisegmented well model, mostly for
reporting purposes.
2022-11-09 17:08:30 +01:00
Markus Blatt
9cb6d53dcb [bugfix] Do not unconditionally dereference std::optional.
In WellGroupHelpers we unconditional referenced the region
member of GPMaint. Unfortunately, that is a std:optional and
doing this can create quite some havoc.

Now we stop processing if it is unset.
2022-11-09 16:49:07 +01:00
Markus Blatt
4988f98060
Merge pull request #4178 from Tongdongq/rocalution
Add rocalutionSolver
2022-11-09 16:44:35 +01:00
Tong Dong Qiu
b51a4a863e Fix reduction calculation 2022-11-09 10:27:10 +01:00
Tong Dong Qiu
1dd6af15dc Print via fmt 2022-11-08 13:05:57 +01:00
Tong Dong Qiu
d3d9743b81 Simplify parameter 2022-11-08 10:03:15 +01:00
Tong Dong Qiu
8fbfd473ab Removed unnecessary stream clear 2022-11-08 10:03:15 +01:00
Tong Dong Qiu
f91154c165 Autodetect if transposing is needed 2022-11-08 10:03:09 +01:00
Kai Bao
97b016ef44 fixing some typos in MultisegmentWell_impl.hpp 2022-11-05 22:51:59 +01:00
Bård Skaflestad
1c0f1ad4d0
Merge pull request #4243 from blattms/drop-unused-LinearSolverRequireFullSparsityPattern
Remove ununsed ancient LinearSolverRequireFullSparsityPattern option.
2022-11-04 21:47:27 +01:00
Bård Skaflestad
6607121bcc
Merge pull request #4239 from GitPaean/well_state_change_num_segments
we do not copy SegmentState if the segment number changes
2022-11-04 21:22:52 +01:00
Bård Skaflestad
d095c8c287
Merge pull request #4242 from blattms/reactivate-use-gmres-flexible-solver
[bugfix] recover support for selecting GMRes as solver.
2022-11-04 21:18:30 +01:00
Markus Blatt
6f5931ca1b Remove ununsed ancient LinearSolverRequireFullSparsityPattern option.
It is unused since 2018 when we moved away from autodiff implementation.
2022-11-04 21:04:40 +01:00
Markus Blatt
2dc73a7c47 [bugfix] recover support for selecting GMRes as solver.
Previously, passing --use-gmres=true had now effect. Probably was lost
when introducing FlexibleSolver. With this change the FlexibleSolver
will now use GMRes if the option is true.

Closes #4240
2022-11-04 20:30:13 +01:00
Kai Bao
178d554d2c we do not copy SegmentState if the segment number changes 2022-11-04 16:38:57 +01:00
hnil
85bfa13c46 change std:cout to OPM::debug 2022-11-04 16:26:12 +01:00
Arne Morten Kvarving
35b66886a9 changed: pass the actual update value to relaxationFactorRate
this to avoid ussage of BVectorWell in interface. in preparation
for moving BVectorWell out of the well hierarchy.
2022-11-04 14:57:11 +01:00
Arne Morten Kvarving
26d9f18687 changed: move isPressureControlled to WellInterfaceGeneric
no typetag dependence. also no need for this to be virtual
2022-11-04 14:24:19 +01:00
Tong Dong Qiu
5dea01b9dc Remove unnecessary release() 2022-11-03 15:47:38 +01:00
Arne Morten Kvarving
0e2f7649e2 improve encapsulation 2022-11-03 15:47:38 +01:00
Arne Morten Kvarving
9ce8d1ceca adjust for ILU reorder removal 2022-11-03 15:47:38 +01:00
Tong Dong Qiu
5466fdd289 Add missing macro guards 2022-11-03 15:47:38 +01:00
Tong Dong Qiu
7e2a6800de Add test for rocalutionSolver 2022-11-03 15:47:32 +01:00
Bård Skaflestad
203ade29b8 Support Variable Length Connection Data in Distributed Wells
With the addition of tracer information in the data::Rates object
we must relax the assumption that the object is POD.  Switch to
using the Point2PointCommunicator protocol for gathering connection
solutions on the well's owner before transferring well solution
objects to the I/O rank.
2022-11-03 11:37:53 +01:00
Tor Harald Sandve
e33d7c6561 fix group switch logging 2022-11-03 09:40:58 +01:00
Tong Dong Qiu
ea73a1bf3c Add rocalutionSolver 2022-11-02 15:55:07 +01:00
Bård Skaflestad
a49f0bc8c2
Merge pull request #4189 from plgbrts/rwgsalt
removed RWGSALT from unsupported keywords list
2022-11-01 22:11:31 +01:00
hnil
a86bd1c585 removed assert in cprw for strictly positive diagonal well coupling 2022-11-01 21:39:55 +01:00
Bård Skaflestad
daf65f6472
Merge pull request #4225 from GitPaean/removing_number_segments
removing unused number_segments from MultisegmentWell
2022-11-01 15:24:22 +01:00
Kai Bao
cbb2e04b05 removing unused number_segments from MultisegmentWell 2022-11-01 14:42:23 +01:00
Bård Skaflestad
73466da197
Merge pull request #4224 from akva2/wellinterface_eval_rename_assemble
Rename WellinterfaceEval to WellAssemble
2022-11-01 13:51:08 +01:00
Arne Morten Kvarving
b700ec9b53 rename WellInterfaceEval to WellAssemble 2022-11-01 12:55:00 +01:00
Atgeirr Flø Rasmussen
e872cfb21d
Merge pull request #4194 from hnil/trueimpes_scaling_fix
- made heuristic scaling of trueimpes
2022-11-01 12:00:06 +01:00
Arne Morten Kvarving
411e4d07e7 WellInterfaceEval: separate from inheritance hierarcy 2022-11-01 11:45:15 +01:00
Arne Morten Kvarving
97367a1e95 move checkIndividualConstraints to WellConstraints 2022-11-01 08:57:02 +01:00
Arne Morten Kvarving
e884778e46 move activeInjectionConstraint to WellConstraints 2022-11-01 08:57:01 +01:00
Arne Morten Kvarving
06686702ea added: WellConstraints
this will hold the code for well constraints.
start by moving activeProductionConstraint to the new class
2022-11-01 08:56:41 +01:00
Bård Skaflestad
4c2ebbd445
Merge pull request #4223 from atgeirr/unhide-option
Unhide NewtonMaxIterations.
2022-10-31 17:48:02 +01:00
Atgeirr Flø Rasmussen
2192b3a86c Unhide NewtonMaxIterations. 2022-10-31 17:13:09 +01:00
Atgeirr Flø Rasmussen
16ca6a5ead
Merge pull request #4217 from blattms/Debian-fixes
Debian fixes (manpage and missing header include)
2022-10-31 16:29:54 +01:00
Bård Skaflestad
dea582d296
Merge pull request #4197 from akva2/well_group_constraints
Add class for well group constraints
2022-10-31 16:12:17 +01:00
Arne Morten Kvarving
796aa51e79 changed: move calculateBhpFromThp to WellBhpThpCalculator 2022-10-31 13:16:51 +01:00
Arne Morten Kvarving
0577516cfe changed: move updateThp to WellBhpThpCalculator 2022-10-31 13:16:16 +01:00
Arne Morten Kvarving
a4df84f785 fixed: guard against invalid dereference in getRho 2022-10-31 13:16:16 +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
42fff132b0 changed: drop wrapper MultisegmentWellGeneric::computeBhpAtThpLimitProdWithAlq 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
6e214557e2 changed: move computeBhpFromThpLimitProd to WellBhpThpCalculator 2022-10-31 13:15:18 +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
d4e06536a0 changed: move getTHPConstraint to WellBhpThpCalculator 2022-10-31 13:15:18 +01:00
Arne Morten Kvarving
cd734f7a0d added: WellBhpThpCalculator
this will hold the code for THP/BHP calculations.

first method moved there is wellHasThpConstraints
2022-10-31 13:15:18 +01:00
Arne Morten Kvarving
726e6699da move checkGroupConstraints into WellGroupConstraints 2022-10-31 13:14:51 +01:00
Arne Morten Kvarving
75dad9f4c4 move checkGroupConstraintsProd into WellGroupConstraints 2022-10-31 13:14:51 +01:00
Arne Morten Kvarving
698b748270 added: WellGroupConstraints
this holds the code for well group constraints.
move checkGroupConstraintsInj into the new class
2022-10-31 13:14:50 +01:00
Bård Skaflestad
2840e0cc5f
Merge pull request #4195 from akva2/well_group_controls
Add class for well group controls
2022-10-31 12:34:34 +01:00
Markus Blatt
50eff23710
Merge pull request #4219 from akva2/use_fmt
BlackoilWellModel: use fmt::format
2022-10-31 11:54:57 +01:00
Arne Morten Kvarving
7d72af43de BlackoilWellModelGeneric: use fmt::format 2022-10-31 11:07:20 +01:00
Arne Morten Kvarving
de13e5018a BlackoilWellModelConstraints: use fmt::format 2022-10-31 10:46:50 +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
Markus Blatt
d0816a2d35 Added mssing include of functional to StandardWellGeneric.hpp
Without including functional compilation fails with Debian experimental.
2022-10-31 10:12:14 +01:00
Arne Morten Kvarving
6f49aee719 move getGroupProductionTargetRate into WellGroupControls 2022-10-31 09:08:35 +01:00
Arne Morten Kvarving
2d4c522082 move getGroupInjectionTargetRate into WellGroupControls 2022-10-31 09:08:35 +01:00
Arne Morten Kvarving
cdbeef0a3e move getGroupProductionControl into WellGroupControls 2022-10-31 08:52:20 +01:00
Arne Morten Kvarving
cfd0eda7de added: WellGroupControls
this holds the code for well group controls.
move getGroupInjectionControl into the new class
2022-10-31 08:52:19 +01:00
Bård Skaflestad
86bbd38a55
Merge pull request #4185 from blattms/NewtonMaxIterations
Rename option FlowNewtonMaxIterations to NewtonMaxIterations.
2022-10-29 20:48:53 +02:00
Bård Skaflestad
7b499c4f0a
Merge pull request #4199 from akva2/well_test
Add class for well tests
2022-10-29 13:49:22 +02:00
Arne Morten Kvarving
9f78e0454d move guideRateUpdateIsNeeded into BlackoilWellModelGuideRates 2022-10-28 23:33:05 +02:00
Arne Morten Kvarving
d42cdd409b move assignGroupGuideRates into BlackoilWellModelGuideRates 2022-10-28 23:33:05 +02:00
Arne Morten Kvarving
5e157cd23b move calculateAllGroupGuideRates into BlackoilWellModelGuideRates 2022-10-28 23:33:05 +02:00
Arne Morten Kvarving
01dfe23a50 move assignWellGuideRates into BlackoilWellModelGuideRates 2022-10-28 23:24:29 +02:00
Arne Morten Kvarving
f19c7b2ee6 move getGuideRateInjectionGroupValues into BlackoilWellModelGuideRates 2022-10-28 22:54:54 +02:00
Arne Morten Kvarving
b6659d6960 move getGuideRateValues(Group) into BlackoilWellModelGuideRates 2022-10-28 22:53:33 +02:00
Arne Morten Kvarving
41b1a38de3 move getGuideRateValues(Well) into BlackoilWellModelGuideRates 2022-10-28 22:50:26 +02:00
Arne Morten Kvarving
dc607ce3ff add BlackoilWellModelGuideRates
start by moving getGuideRateValues
2022-10-28 22:40:38 +02:00
Bård Skaflestad
d1d5ff2831
Merge pull request #4208 from akva2/well_convergence
Add class for checking well convergence
2022-10-28 21:26:17 +02:00
Arne Morten Kvarving
f06264152c remove now unnecessary Bhp_ member in StandardWellGeneric 2022-10-28 19:48:01 +02:00
Arne Morten Kvarving
5d4c7f49a2 move checkConvergencePolyMW into WellConvergence 2022-10-28 19:47:59 +02:00
Arne Morten Kvarving
0f8ca0c529 add WellConvergence
move checkConvergenceControlEq into it
2022-10-28 19:47:55 +02:00
Arne Morten Kvarving
cc306a45b4 move updateGroupIndividualControl into BlackoilWellModelConstraints 2022-10-28 19:32:06 +02:00
Arne Morten Kvarving
e04f20af8e move actionOnBrokenConstraints into BlackoilWellModelConstraints 2022-10-28 19:32:02 +02:00
Arne Morten Kvarving
82cf0deef4 move checkGroupConstraints into BlackoilWellModelConstraints 2022-10-28 19:19:33 +02:00
Arne Morten Kvarving
df27ec5d4d move checkGroupProductionConstraints into BlackoilWellModelConstraints 2022-10-28 18:59:40 +02:00
Arne Morten Kvarving
2d9d452fff add BlackoilWellModelConstraints
start by moving hasTHPConstraints
2022-10-28 18:21:43 +02:00
Markus Blatt
2fdc9e6cc6 Remove references of flow i usage string of Newton method properties.
This makes them constent to NewtonMaxIterations
2022-10-28 16:41:54 +02:00
Markus Blatt
2c8a63fc3d Use consistent NewtonMaxIteration usage string.
Needed to prevent an exception. Apparently both the value and usage
sting must match each time we register a parameter no matter
whether the template parameters differs or not.
2022-10-28 16:41:54 +02:00
OPMUSER
bbd9d8bf58 Rename option FlowNewtonMaxIterations to NewtonMaxIterations.
Now it is consistent with other options (e.g. NewtonMinIterations
2022-10-28 16:41:54 +02:00
Arne Morten Kvarving
3fdf28508f move loadRestartData into BlackoilWellModelRestart 2022-10-28 15:30:09 +02:00
Arne Morten Kvarving
35386a79bf move loadRestartGuideRates(Config) into BlackoilWellModelRestart 2022-10-28 15:24:59 +02:00
Arne Morten Kvarving
2e433a5bc2 move loadRestartGuideRates(Target) into BlackoilWellModelRestart 2022-10-28 15:22:17 +02:00
Arne Morten Kvarving
ffeddfe280 move loadRestartGroupData into BlackoilWellModelRestart 2022-10-28 15:20:09 +02:00
Arne Morten Kvarving
0f853a8566 move loadRestartWellData into BlackoilWellModelRestart 2022-10-28 15:18:29 +02:00
Arne Morten Kvarving
09c1127c34 move loadRestartSegmentData into BlackoilWellModelRestart 2022-10-28 15:15:13 +02:00