Kai Bao
b1974bbe45
recovering the SHUT during iteration beahvoir in prepareWellBeforeAssembling
...
when local_well_solver_control_switching_ is off
and incoporating commenst regarding resetting wellStatus_ in StandardWell within
the function iterateWellEqWithSwitching.
2023-09-29 10:55:19 +02: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
Tor Harald Sandve
c239427233
add solvent contribution to the gas potential
2023-09-06 13:23:55 +02:00
Arne Morten Kvarving
92fa9577da
consistently use std::size_t
2023-08-15 09:32:10 +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
Bård Skaflestad
82a2d284fb
Merge pull request #4686 from GitPaean/support_winjmult_rebase
...
Support WINJMULT
2023-06-27 15:40:06 +02:00
Bård Skaflestad
37fe56451b
Merge pull request #4719 from akva2/connection_rate_to_connections
...
Move connection rate helpers to StandardWellConnections
2023-06-27 15:19:57 +02:00
Arne Morten Kvarving
fffb3d9f0e
suppress unused lambda capture warnings with clang
2023-06-27 14:35:35 +02:00
Arne Morten Kvarving
62a2ee1713
StandardWell: move connectionRatezFraction to Connections class
2023-06-27 13:23:21 +02:00
Arne Morten Kvarving
56014ccff9
StandardWell: move connectionRatePolymer to Connections class
2023-06-27 13:22:08 +02:00
Arne Morten Kvarving
bf5108d09f
StandardWell: move connectionRatesMICP to Connections class
2023-06-27 13:22:08 +02:00
Arne Morten Kvarving
2f6623993a
StandardWell: move connectionRateFoam to Connections class
2023-06-27 13:22:08 +02:00
Arne Morten Kvarving
73ece47d97
StandardWell: move connectionRateBrine to Connections class
2023-06-27 13:22:08 +02:00
Kai Bao
cc9ee9c059
support WINJMULT
2023-06-27 12:49:25 +02:00
Arne Morten Kvarving
9f681e8193
put formating of invalid d-value error in helper function
2023-06-23 10:49:19 +02:00
Arne Morten Kvarving
bbdfa35a62
changed: put calculation of injection gas-water perf rates in separate method
2023-06-23 10:45:10 +02:00
Arne Morten Kvarving
79c4797cd5
changed: put calculation of injection gas-oil perf rates in separate method
2023-06-23 10:33:07 +02:00
Arne Morten Kvarving
e0003eb6d6
changed: put calculation of gas-oil volume ratio in separate method
2023-06-23 09:40:09 +02:00
Arne Morten Kvarving
fdfd181629
changed: put calculation of vaporized and dissolved water volume ratio in separate method
2023-06-23 09:40:07 +02:00
Arne Morten Kvarving
516320699e
changed: put calculation of production gas-water perf rates in separate method
2023-06-23 09:35:02 +02:00
Arne Morten Kvarving
21aa783d88
changed: put calculation of production gas-oil perf rates in separate method
2023-06-23 09:29:49 +02:00
Arne Morten Kvarving
e7bb51740e
cosmetics
2023-06-23 08:47:11 +02:00
Arne Morten Kvarving
a994394dca
changed: use {fmt} in connectionRateEnergy
2023-06-22 14:40:45 +02:00
Arne Morten Kvarving
9574e40ac4
changed: put calculation of energy connection rate in separate method
2023-06-22 14:40:45 +02:00
Arne Morten Kvarving
b3fd64d915
changed: put calculation of polymer connection rate in separate method
2023-06-22 14:40:45 +02:00
Arne Morten Kvarving
4041644171
changed: put calculation of foam connection rate in separate method
2023-06-22 14:40:45 +02:00
Arne Morten Kvarving
c239cbd14f
changed: put calculation of zFraction connection rate in separate method
2023-06-22 14:35:41 +02:00
Arne Morten Kvarving
b1cafa25ca
changed: put calculation of micp connection rates in separate method
2023-06-22 14:35:41 +02:00
Arne Morten Kvarving
8b38943485
changed: put calculation of brine connection rate in separate method
2023-06-22 14:35:40 +02:00
Arne Morten Kvarving
768a4903a3
reorganize (Std|MS)Well::computeWellPotentials
...
put shared parts in WellInterfaceGeneric::computeWellPotentials and
WellInterfaceGeneric::checkNegativeWellPotentials
2023-06-22 11:28:59 +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
Arne Morten Kvarving
c234d4faa5
StandardWell: use scalar mobilities in computeConnLevel(Inj|Prod)Ind
...
unifies code with MultisegmentWell
2023-06-22 09:56:48 +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
58bed1e30a
changed: unify StandardWell::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
Håkon Hægland
64c041d08f
Account for pressure loss also in thp
2023-06-02 09:25:34 +02:00
Arne Morten Kvarving
127ddd44a2
supress unused capture warning with clang
...
a bug in clang causes it to emit unused lambda captures
here due to the if constexpr usage. use standard (void)
trick to suppress it
2023-05-31 09:35:16 +02:00
Tor Harald Sandve
1592ef8bd2
solvent + foam simulator
2023-05-24 16:03:09 +02:00
Tor Harald Sandve
cf169167d0
Merge pull request #4591 from totto82/fix_rswrvw_well
...
Fixes related to rsw/rvw handling in standard well
2023-05-24 08:27:06 +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
e406d2f0a1
StandardWell::getMobility: use if constexpr
2023-05-15 21:38:39 +02:00
Arne Morten Kvarving
c0bc0abc73
StandardWell::getMobility: use Scalar relperms when possible
2023-05-15 21:38:39 +02:00
Arne Morten Kvarving
35c56e4ce4
changed: unify StandardWell::getMobility(Eval|Scalar)
2023-05-15 21:38:37 +02:00
Arne Morten Kvarving
1b073185a1
fixed: copy the mobility values into the temporary Eval vector
2023-05-12 15:13:34 +02:00
Tor Harald Sandve
23e9bf599d
Fixes related to rsw/rvw handling in standard well
2023-05-12 09:44:11 +02:00
Arne Morten Kvarving
c18fb6a577
changed: store rates in an array in SingleWellState
...
introduce an enum for indexing into the array. this again
allows us to coalesce 4 parallel reductions into one.
2023-05-09 12:26:18 +02:00
Arne Morten Kvarving
e4c15531a8
Merge pull request #4626 from akva2/simplify_wellconnection_pressures
...
Simplify WellconnectionPressures properties signatures
2023-05-08 10:22:44 +02:00
Arne Morten Kvarving
59c9a139cc
changed: simplify WellConnectionPressure calculation by passing a struct
2023-05-04 14:30:55 +02:00