Commit Graph

72 Commits

Author SHA1 Message Date
Arne Morten Kvarving
62297b2a63 MultisegmentWell: move getSegmentRate to MultisegmentWellPrimaryVariables 2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
99020fe33b MultisegmentWell: move getBhp to MultisegmentWellPrimaryVariables 2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
bb377c0a47 MultisegmentWell: move getSegmentPressure to MultisegmentWellPrimaryVariables 2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
f99ecd15ac MultisegmentWell: move getSegmentRateUpwinding to MultisegmentWellPrimaryVariables 2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
8e9b004cfc MultisegmentWell: move surfaceVolumeFraction to MultisegmentWellPrimaryVariables 2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
2e2a49b935 MultisegmentWell: move volumeFractionScaled to MultisegmentWellPrimaryVariables 2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
e539614fff MultisegmentWell: move volumeFraction to MultisegmentWellPrimaryVariables 2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
b112a793c5 MultisegmentWell: move updatePrimaryVariablesNewton to MultisegmentWellPrimaryVariables 2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
6404d69201 MultisegmentWell: move processFractions to MultisegmentWellPrimaryVariables 2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
5212e9c100 MultisegmentWell: move updatePrimaryVariables to MultisegmentWellPrimaryVariables 2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
e1fccd47dc added: MultisegmentWellPrimaryVariables
this is a container class for the primary variables in
multisegment well
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
f782673b2d MultisegmentWell: make updatePrimaryVariables non-const
this will obviously update state
2022-12-16 15:07:35 +01:00
Arne Morten Kvarving
ef992080cf MultisegmentWell: make updatePrimaryVariablesNewton non-const
this will obviously update state
2022-12-16 15:07:12 +01:00
Arne Morten Kvarving
ac91db281a MultisegmentWell: make processFractions non-const
this updates state
2022-12-16 15:06:36 +01:00
Arne Morten Kvarving
6b61af21b3 MultisegmentWell: make initPrimaryVariablesEvaluation non-const
this will obviously update state
2022-12-16 15:06:03 +01:00
Arne Morten Kvarving
2d154b50bb added: MultisegmentWellEquations::residual()
this returns a const reference to the residual vector.
use this in MultisegmentWellEval
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
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
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
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
57f09050fc add: MultisegmentWellEquations
this is a container for the multisegment well equation system
2022-12-01 10:25:28 +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
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
910f10d43b
Merge pull request #4280 from akva2/well_instantations_simplify
simplify instantations
2022-11-21 16:27:16 +01:00
Arne Morten Kvarving
8a32d6bf33 simplify instantations
more readable
2022-11-21 12:48:50 +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
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
Kai Bao
178d554d2c we do not copy SegmentState if the segment number changes 2022-11-04 16:38:57 +01:00
Arne Morten Kvarving
b700ec9b53 rename WellInterfaceEval to WellAssemble 2022-11-01 12:55:00 +01:00
Arne Morten Kvarving
411e4d07e7 WellInterfaceEval: separate from inheritance hierarcy 2022-11-01 11:45:15 +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
4fcb1e9d37 changed: move calculateThpFromBhp to WellBhpThpCalculator 2022-10-31 13:15:18 +01:00
Arne Morten Kvarving
0f8ca0c529 add WellConvergence
move checkConvergenceControlEq into it
2022-10-28 19:47:55 +02:00
Tor Harald Sandve
7b90d35f21 fixup from PR comments 2022-10-18 12:58:07 +02:00
Tor Harald Sandve
9538db85b1 set thp msw 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
Kai Bao
9056bf3d98 removing the usage of GTotal 2022-10-13 22:13:45 +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
Kai Bao
2f19d4586e avoiding wrong sign for QTotal primary variable for top segment
for multisegment wells.
2022-09-14 14:21:03 +02:00