Commit Graph

341 Commits

Author SHA1 Message Date
Arne Morten Kvarving
3745a4c02d clean up Units.hpp includes
include it where required instead of relying on other
headers to pull it in
2023-01-16 12:21:29 +01:00
Arne Morten Kvarving
1bf36dfc08 MultisegmentWell: move code using WellSegments to compile unit 2023-01-12 14:37:32 +01:00
Arne Morten Kvarving
ff0f9c05f0 MultisegmentWell: avoid use of sstream 2023-01-02 15:24:35 +01:00
Arne Morten Kvarving
4c3d933835 MultisegmentWell: use {fmt} to format error messages 2022-12-23 09:39:29 +01:00
Tor Harald Sandve
5854b8a7a1 Support gas dissolution in water (Rsw)
- adapt to interface change in waterPvt()
- add gas + water + disgasw simulator

Note
- MSW is not supported
- EQUIL initialization is not supported
2022-12-21 13:13:52 +01:00
Arne Morten Kvarving
c1e05fae18 MultisegmentWellSegments: make members private
and add various read-only accessors
2022-12-19 16:03:54 +01:00
Arne Morten Kvarving
12b15b5038 move updateUpwindingSegments to MultisegmentWellSegments 2022-12-19 16:03:54 +01:00
Arne Morten Kvarving
ef7b2aca4e move computeSegmentFluidProperties to MultisegmentWellSegments 2022-12-19 16:03:54 +01:00
Arne Morten Kvarving
4a9cedf452 move getSegmentSurfaceVolume to MultisegmentWellSegments 2022-12-19 16:03:53 +01:00
Arne Morten Kvarving
5755c94256 move segment_inlets_ to MultisegmentWellSegments 2022-12-19 16:03:27 +01:00
Arne Morten Kvarving
2766427df0 move segment_perforations_ and perforation_segment_depth_diffs_ to MultisegmentWellSegments 2022-12-19 16:03:26 +01:00
Arne Morten Kvarving
aa684a10b8 added: MultisegmentWellSegments
this is a container class for per-segment properties in MultisegmentWell
2022-12-19 15:55:20 +01:00
Arne Morten Kvarving
654c252bb8 MultisegmentWellAssemble: simplify assembleControlEq
by passing primary variables
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
e1cd54b267 MultisegmentWell: move updateUpwindingSegments to MultisegmentWellPrimaryVariables 2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
37607c570a MultisegmentWell: move updateWellStateFromPrimaryVariables to MultisegmentWellPrimaryVariables 2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
dbdcb2d5ce MultisegmentWell: move getWQTotal to MultisegmentWellPrimaryVariables
also drop otherwise unused getSegmentWQTotal
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
6b47f9bf1a MultisegmentWell: move getQs 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
b112a793c5 MultisegmentWell: move updatePrimaryVariablesNewton 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
10a671e88c MultisegmentWell: make updateWellState non-const
this will obviously update state
2022-12-16 15:05:06 +01:00
Arne Morten Kvarving
f17a90170d use exception classes from opm-common 2022-12-13 12:56:13 +01:00
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
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
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
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
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
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
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
Kai Bao
6102249466 Merge pull request #4289 from akva2/fix_thp_regression
fix regression in wells
2022-11-28 10:46:35 +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
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
Arne Morten Kvarving
d2c028fb74 StandardWell_impl.hpp: remove some unused headers 2022-11-22 10:37:41 +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