Commit Graph

168 Commits

Author SHA1 Message Date
Stein Krogstad
21bed9e953 pass on (possibly copy of) current well-state 2025-01-29 14:44:44 +01:00
Arne Morten Kvarving
89dbda4621 changed: move GasLift to separate class
move to has-a instead of is-a for modelling in BlackoilWellModel
2025-01-06 15:15:59 +01:00
Arne Morten Kvarving
0ee1d2fae5 changed: use standard header guard structure for _impl.hpp clangd helpers 2025-01-03 09:25:49 +01:00
Tor Harald Sandve
eb89a07831 Dont iterate when computing bhp from thp for computing of the well potentials for gaslift optimization 2024-11-06 14:06:09 +01:00
jakobtorben
60bd3f5514 Remove unused num_cells argument from well equations 2024-10-10 20:26:13 +02:00
Stein Krogstad
427351cc12 Include checking for zero targets from groups where required 2024-05-23 14:55:37 +02:00
Arne Morten Kvarving
bac2087b85 WellProdIndexCalculator: template Scalar type 2024-05-22 15:21:37 +02:00
Arne Morten Kvarving
b9d03fc358 MultisegmentWell: use Scalar type 2024-05-22 14:33:36 +02:00
Arne Morten Kvarving
16f5290038 ParallelWellInfo: template Scalar type 2024-05-22 09:48:22 +02:00
Arne Morten Kvarving
81189b89c7 PerforationData: template Scalar type 2024-05-22 09:48:07 +02:00
Arne Morten Kvarving
d2cbf33b62 PerforationRates: template Scalar type 2024-05-22 09:48:06 +02:00
Atgeirr Flø Rasmussen
edf4be5f79
Merge pull request #5227 from akva2/improve_ide_experience
Improve IDE experience
2024-04-22 15:31:08 +02:00
Arne Morten Kvarving
67f1811234 GroupState: template Scalar type 2024-04-17 11:12:40 +02:00
Arne Morten Kvarving
be57843296 WellState: template Scalar type 2024-04-17 11:12:40 +02:00
Arne Morten Kvarving
58e8022bb1 MultisegmentWellEval: remove unnecessary Scalar template parameter
use the Scalar type from the FluidSystem
2024-03-08 15:13:53 +01:00
Arne Morten Kvarving
3475da7d8c Rename ebos_simulator members/parameters to simulator 2024-03-06 10:53:00 +01:00
Arne Morten Kvarving
865079bbe1 MultisegmentWell: improve IDE experience 2024-02-27 10:43:03 +01:00
Arne Morten Kvarving
3534c6d1fa mark overriden virtual method as such 2023-12-08 18:42:21 +01:00
Stein Krogstad
7aa50f149f updates 2023-12-07 13:09:00 +01:00
Stein Krogstad
94c0b49cf7 revert changes 2023-12-07 13:09:00 +01:00
Tor Harald Sandve
0f12977b17 only use d factor for gas wells 2023-11-14 12:45:25 +01:00
Kai Bao
e38e557bbc cleaning up to preapre for pull request 2023-09-29 10:55:19 +02:00
Stein Krogstad
035d216641 adding function iterateWellEqWithSwitching
when we do the local solve for well equations, control/status will be
updated during the iteration process, such that the converged well gets
correct control/status regarding to the current reservoir state.

various change in the other parts of the code were made to make the
function work as intended.
2023-09-29 10:51:04 +02:00
Bård Skaflestad
7f89276fe8 Hook New WBPn Calculation Up to Well Model
This commit activates the support for calculating WBPn summary
result values per well in parallel.  To affect the calculation we
add two new data members in BlackoilWellModelGeneric:

  - conn_idx_map_:
    Maps well's connection index (0..getConnections().size() - 1) to
    connections on current rank.  Its local() connections are
    negative 1 (-1) if the connection is not on current rank, and a
    non-negative value otherwise.  The global() function maps well
    connections on current rank to global connection ID for each
    well.  Effectively the reverse of local().  Finally, the open()
    function maps well connections on current rank to open/flowing
    connections on current rank.  Negative 1 if connection is not
    flowing.

  - wbpCalculationService:
    Parallel collection of WBPn calculation objects that knows how
    to exchange source and result information between all ranks in a
    communicator.  Also handles distributed wells.

We furthermore need a way to compute connection-level fluid mixture
density values.  For the standard well class we add a way to access
the StandardWellConnection's 'perf_densities_' values.  However,
since these are defined for open/flowing connections only, this
means we're not able to fully meet the requirements of the

  WELL/ALL

WPAVE depth correction procedure for standard wells.  The
multi-segmented well type, on the other hand, uses the fluid mixture
density in the associated well segment and is therefore well defined
for ALL connections.  OPEN well connections are supported for both
well types.
2023-07-10 13:42:46 +02:00
Arne Morten Kvarving
7b33cc6d62 move computeConnLevel(Inj|Prod)Ind to WellInterface
now code is shared between STW and MSW
2023-06-22 09:58:58 +02:00
Bård Skaflestad
b5517c8600
Merge pull request #4652 from akva2/update_ws_thp_prod_shared
move updateWellStateWithTHPTargetProd to WellInterface
2023-06-22 09:54:35 +02:00
Arne Morten Kvarving
01c4aa1927 move updateWellStateWithTHPTargetProd to WellInterface
to share implementation between STW and MSW
2023-06-22 09:10:38 +02:00
Arne Morten Kvarving
b55ca83917 changed: unify MultisegmentdWell::computePerfRate(Eval|Scalar) 2023-06-22 08:46:06 +02:00
Atgeirr Flø Rasmussen
bc9cfc8cd5 Add methods for getting and setting primary variables.
These can be used to manage state in the well models, and will
be used in the NLDD solver option. Also added the setupDomains()
method, as the getters and setters are working on a domain basis.
2023-06-13 15:31:30 +02:00
Arne Morten Kvarving
0406a033a2 introduce getMobility in WellInterface
we now share implementation between StandardWell and MultisegmentWell
2023-05-15 21:39:59 +02:00
Arne Morten Kvarving
5126097d7b changed: unify MultisegmentWell::getMobility(Eval|Scalar) 2023-05-15 21:38:39 +02:00
Kai Bao
5536b24a84 fixing the comilation from the reverted commit
the interface has changed.
2023-05-08 10:43:49 +02:00
Kai Bao
2d67d819e7 Revert "removing unused function solveEqAndUpdateWellState"
This reverts commit 7931e6e00a.
2023-05-08 10:43:49 +02:00
Arne Morten Kvarving
f06cc1f626 changed: simplify computePerfRate signatures
pass a PerforationRates ref instead of multiple references
to doubles
2023-05-04 13:33:45 +02:00
Kai Bao
7c06ec38a3 stricter tolerance for wells with zero rate target
for StandardWell only at this moment.
2023-03-30 15:49:27 +02:00
Kai Bao
7931e6e00a removing unused function solveEqAndUpdateWellState
from MultisegmentWell and WellInterface .
2023-03-27 13:26:00 +02:00
Kai Bao
2c5a4398c9 make sure zero production rates are obtained for the following wells
1. stopped production wells
2. production wells under zero rate control

We guarantee the objective through enforce zero values for the WQTotal
primary variable during the initialization and update process during the
Newton solution.
2023-03-27 13:24:08 +02:00
Atgeirr Flø Rasmussen
358d9997ee Fix a few warnings in recently added code. 2023-02-14 15:46:08 +01:00
Kai Bao
57bf959efd update well state when switching to THP control for producers
hopefully, it begins at a reasonably good initial point. When the Newton
iteration begins with certian solution region, the nonlinear solution
might fail.
2023-02-07 14:50:07 +01:00
Arne Morten Kvarving
61d485cbe5 remove unimplemented prototypes 2023-01-12 14:37:32 +01:00
Arne Morten Kvarving
469b38c321 remove unnecessary <Runspec.hpp> includes 2023-01-05 13:18:32 +01:00
Arne Morten Kvarving
bc0610171d MultisegmentWellEval: use symbols from primary variables 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
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
57f09050fc add: MultisegmentWellEquations
this is a container for the multisegment well equation system
2022-12-01 10:25:28 +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
Kai Bao
cbb2e04b05 removing unused number_segments from MultisegmentWell 2022-11-01 14:42:23 +01:00