Commit Graph

2266 Commits

Author SHA1 Message Date
Vegard Kippe
a75f58f19a Moved two lines 2023-08-31 16:11:29 +02:00
Vegard Kippe
deeecfcd1f Fixing indent 2023-08-31 16:11:28 +02:00
Vegard Kippe
edd421ac93 Adding hydrostatic and acceleration pressure losses to icd segments 2023-08-31 16:11:28 +02:00
Kai Bao
f7bd386402 adding the support for filtration_summary_keywords 2023-08-29 21:31:24 +02:00
Stein Krogstad
e7a0dbacf2 don't do rate-init for stopped/zero target 2023-08-29 14:52:09 +02:00
Håkon Hægland
2f9b136bb1 Implement support for GECON keyword
Implement support for item 2 and 3 of the GECON keyword
2023-08-29 01:07:21 +02:00
Kai Bao
6d011131cd UDQ for the injection concentration for WINJFCNC 2023-08-23 11:44:50 +02:00
Arne Morten Kvarving
92fa9577da consistently use std::size_t 2023-08-15 09:32:10 +02:00
Arne Morten Kvarving
896cb8484d added: option to disable the BDA solvers 2023-08-11 11:00:07 +02:00
Atgeirr Flø Rasmussen
1a59c91c51 Silence release-mode warning. 2023-08-09 12:06:20 +02:00
Kai Bao
c46f60103e adding perf_data comparison in equality operator for SingleWellState 2023-08-08 14:52:49 +02:00
hnil
c065d34d0e -- added more timing to get better coverage of amg solver
-- added includes needed
2023-07-24 12:28:08 +02:00
Bård Skaflestad
ac6b9b2f34
Merge pull request #4748 from plgbrts/gconprod
Enable items, 11, 12 and 13 of GCONPROD
2023-07-14 21:30:14 +02:00
Paul
ae553787ba Use struct for collecting group limit actions 2023-07-14 11:20:03 +02:00
Paul
1796b3343b improved messages text 2023-07-13 13:15:54 +02:00
Paul
7302c37b78 Enable items, 11, 12 and 13 of GCONPROD 2023-07-12 20:44:10 +02:00
Bård Skaflestad
8c9682ab7a Split Well and Group Initialization Out to Helper
In preparation of adding support for opening/creating wells or
groups in the middle of a report step.  This is needed if an
ACTIONX block runs something like WELOPEN or WELSPECS/COMPDAT.
2023-07-12 17:23:14 +02:00
Bård Skaflestad
e965f6f27f Prune Unused Well State Parameter
The WellState parameter in setCmodeGroup() became unused when we
split the GroupState out of the WellState in commit e1d117c59f.
2023-07-12 17:23:14 +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
ff9e6ca18a
Merge pull request #4745 from akva2/filtercake_separate_class
FilterCake: put code in separate class
2023-07-07 16:51:23 +02:00
Arne Morten Kvarving
60b92d02eb WellFilterCake: make stateful 2023-07-07 16:08:42 +02:00
Arne Morten Kvarving
dcf8a444fd changed: put calculation of filter cake multiplier in WellFilterCake 2023-07-07 16:08:20 +02:00
Arne Morten Kvarving
aaeedf4091 put updating of FilterCake multiplier in separate method 2023-07-07 16:08:20 +02:00
Arne Morten Kvarving
1e7ca08702 changed: put handling of filtration particle volume in separate class 2023-07-07 16:08:17 +02:00
Bård Skaflestad
95d715b807 Add Parallel Calculation Support for WBPn/WPAVE
This commit adds a parallel calculation object derived from the serial
PAvgCalculator class.  This parallel version is aware of MPI
communicators and knows how to aggregate contributions from wells that
might be distributed across ranks.

We also add a wrapper class, ParallelWBPCalculation, which knows how to
exchange information from PAvgCalculatorCollection objects on different
ranks and, especially, how to properly prune inactive cells/connections.
2023-07-07 15:01:05 +02:00
Stein Krogstad
b1c11f6d88 Move function to WellInterfaceGeneric 2023-07-07 13:13:43 +02:00
Stein Krogstad
252d08f1bd No need to loop over phases here 2023-07-07 13:13:43 +02:00
Stein Krogstad
2f8d210896 Also do explicit fallback for double-interp 2023-07-07 13:13:43 +02:00
Stein Krogstad
2dcebd4bdd Rephrase explicit to prev(uous) 2023-07-07 13:13:43 +02:00
Stein Krogstad
ab98e477c4 Use explicit rates as fallback for small FLO 2023-07-07 13:13:42 +02:00
Stein Krogstad
5212d20a96 Add explicit rates to well state 2023-07-07 13:12:34 +02:00
Kai Bao
e264042c62 refining the function updateInjFCMult
for code improvements.
2023-07-07 09:32:03 +02:00
Kai Bao
22269c92c3 adding regression tests for filtration cake model 2023-07-06 23:38:53 +02:00
Kai Bao
1981a3bf4d switching to scale the mobility instead of the well index
mostly to make the calculation of productivity easier.
2023-07-06 15:58:30 +02:00
Kai Bao
cb74d26e85 WIP in storing the filtration_particle_volume in BlackoilWellModelGeneric
instead of PerfData to handle the situation that well can be SHUT and
OPEN again.
2023-07-05 13:25:03 +02:00
Kai Bao
274c431492 tracking filtration particle volume instead of water injection volume
for filter cake calculation. The main reason is that the injection
concentration may vary during the simulation, which makes the tracking
of water injection volume is not very helpful when used for filter cake
calculation.
2023-07-05 13:25:03 +02:00
Kai Bao
eb08e2e863 cleaning up implementation related to filter cake 2023-07-05 13:25:03 +02:00
Kai Bao
7e5f1a1642 slightly different way to calculate the skin factor
for the radial model of the filter cake.

not tested yet.
2023-07-05 13:25:03 +02:00
Kai Bao
4cb3574e0f incoporate keyword WINJCLN
still in draft state.
2023-07-05 13:25:03 +02:00
Kai Bao
43196800b6 a draft version for for RADIAL model for WINJDAM 2023-07-05 13:25:03 +02:00
Kai Bao
aa5062683d a draft version for the linear geomery WINJDAM 2023-07-05 13:25:03 +02:00
Kai Bao
5e4cb8aeed WIP in using the filter cake to generate the skin factor 2023-07-05 13:25:03 +02:00
Kai Bao
49774186ab calculating the accumulative water injection volume
for each connection
2023-07-05 13:25:03 +02:00
Bård Skaflestad
77fe28979e Calculate Segment Phase and Mixture Densities for Summary Output
This commit adds logic and backing storage in the SegmentState to
provide the segment level summary vectors

  - SDENx -- Phase density of phase 'x' (O, G, W)
  - SDENM -- Mixture density without flowing fraction exponents
  - SMDEN -- Mixture density with flowing fraction exponents

We defer the calculation of SDENM and, especially, SMDEN, to the
MultisegmentWellSegments class since this class maintains the
current flowing fractions.
2023-07-05 11:05:26 +02:00
Alf Birger Rustad
93a0bb0de3 improve message when shutting well due to convergence issues 2023-07-04 14:15:53 +02:00
Atgeirr Flø Rasmussen
363163b156 Silence unused capture warning. 2023-06-28 16:21:05 +02:00
Bård Skaflestad
9de535098f
Merge pull request #3764 from atgeirr/aspin
Add nonlinear solver based on domain decomposition method
2023-06-28 15:49:56 +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
Kai Bao
f78f8e45f7 addressing the review comments 2023-06-27 14:46:11 +02:00
Arne Morten Kvarving
fffb3d9f0e suppress unused lambda capture warnings with clang 2023-06-27 14:35:35 +02:00
Arne Morten Kvarving
adfe80cba0 avoid dead stores 2023-06-27 13:40:54 +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
Arne Morten Kvarving
41a38cc9d6 WellInterfaceGeneric: add accessor for well_efficiency_factor 2023-06-27 13:22:08 +02:00
Arne Morten Kvarving
d1a2d27acb changed: move Eval and restrictEval to WellInterfaceIndices 2023-06-27 13:22:08 +02:00
Kai Bao
cacec2739c moving the inj_multiplier to BlackoilWellModelGeneric
to handle the situation that a well can be `SHUT` in the Schedule.

If stored in PerfData, when a well is `SHUT`, the inforamtion related to
WINJMULT will be discarded.

Before we want to change how the `PerfData` works, storing
`inj_multiplier` in BlackoilWellModelGeneric is the viable approach.
2023-06-27 12:49:25 +02:00
Kai Bao
b50c404247 adjusting the implementation of WINJMULT support
addn relaxed the absolute tolearnce of the parallel running test for
WINJMUT_MSW
2023-06-27 12:49:25 +02:00
Kai Bao
b1fad4bb10 store the inj_multiper in PerfData in WellState 2023-06-27 12:49:25 +02:00
Kai Bao
cc9ee9c059 support WINJMULT 2023-06-27 12:49:25 +02:00
Atgeirr Flø Rasmussen
15c1e38533 Silence unused variable/parameter warnings. 2023-06-23 16:24:18 +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
Bård Skaflestad
3219b9d36e
Merge pull request #4631 from akva2/unify_perf_rate
changed: unify computePerfRate(Eval|Scalar)
2023-06-22 09:35:36 +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
Arne Morten Kvarving
58bed1e30a changed: unify StandardWell::computePerfRate(Eval|Scalar) 2023-06-22 08:46:06 +02:00
Arne Morten Kvarving
e7738e70dc BlackoilWellModel: move numLocalNonshutWells to generic class 2023-06-22 08:27:05 +02:00
Arne Morten Kvarving
aaa1006e2b BlackoilWellModel: move numLocalWellsEnd to generic class 2023-06-22 08:26:01 +02:00
Arne Morten Kvarving
dd9a2835fe BlackoilWellModel: move getMaxWellConnections to generic class 2023-06-22 08:26:01 +02:00
Arne Morten Kvarving
7ab8d94215 BlackoilWellModel: move assignWellTracerRates to generic class 2023-06-22 08:26:00 +02:00
Bård Skaflestad
77adc6ea3b Add Container for Dynamic WBPn Source Values
This commit adds a new container class,

    ParallelPAvgDynamicSourceData

which inherits from PAvgDynamicSourceData and provides a parallel
view of source contributions.  Member function

    collectLocalSources

will call the user-provided source term evaluation function for each
source location in its purview--typically those locations owned by
the current MPI rank.  Those values will be distributed to other MPI
ranks through member function synchroniseSources which will fill the
base class' 'src_' data member, and become available to clients
through read-only item spans.
2023-06-21 12:06:49 +02:00
Bård Skaflestad
6464f5ee4e
Merge pull request #4716 from akva2/janitoring
Some janitoring
2023-06-21 09:46:57 +02:00
Arne Morten Kvarving
3c566a9e4e avoid dead store 2023-06-21 08:59:26 +02:00
Arne Morten Kvarving
2327768db6 anonymize unused parameter 2023-06-21 08:55:11 +02:00
Arne Morten Kvarving
f88bf57388 use temporary helper variable 2023-06-21 08:54:53 +02:00
Kai Bao
5f344eef26 avoid dividing by zero in updateWellStateRates() 2023-06-20 23:14:50 +02:00
Vegard Kippe
d6d4b94b25 Parameterized iteration limits in network solver 2023-06-16 12:15:06 +02:00
Atgeirr Flø Rasmussen
654df6fd59 Well additions for local solves.
Also, remove uneeded function updatePerforationIntensiveQuantities().
2023-06-15 16:49:12 +02:00
Atgeirr Flø Rasmussen
d46d23befd Silence shadowing warning. 2023-06-13 20:54: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
Kai Bao
62f5040aea addressing reviewing comments for PR #4682
no functionality change.
2023-06-08 12:32:55 +02:00
Kai Bao
1d7b33aa55 fixing the perf rates initialization with zero total_mobility 2023-06-08 11:41:17 +02:00
Atgeirr Flø Rasmussen
39825391b0
Merge pull request #4687 from plgbrts/resv-fix
correct reservoir rate constraint calculation
2023-06-06 13:21:58 +02:00
Tor Harald Sandve
0702b7d3e5 stop using saturated b-factors for case with zero rates 2023-06-06 09:51:19 +02:00
Paul
83c23b123a correct wrong flag for reservoir rate constraint calculation 2023-06-05 11:49:20 +02:00
Tor Harald Sandve
b99fbe0a97
Merge pull request #4620 from hakonhagland/wvfpdp
Add support for WVFPDP
2023-06-05 09:14:10 +02:00
Kai Bao
5d950eea46 fixing the fraction calculation when initializing perf rates 2023-06-02 23:26:20 +02:00
Håkon Hægland
7d68261d0b Removed unused variable
Removed an unused variable and fixed a bug that caused a warning.
2023-06-02 09:25:34 +02:00
Håkon Hægland
8843e8af66 Find thp iteratively 2023-06-02 09:25:34 +02:00
Håkon Hægland
79af105de5 Rebased on master 2023-06-02 09:25:34 +02:00
Håkon Hægland
64c041d08f Account for pressure loss also in thp 2023-06-02 09:25:34 +02:00
Håkon Hægland
54c7af85d4 Use new name from opm-common 2023-06-02 09:25:34 +02:00
Håkon Hægland
69a0d1e20e Add support for WVFPDP 2023-06-02 09:25:34 +02:00
Arne Morten Kvarving
f50c9a70ed fixed: forward struct as struct 2023-05-31 09:35:16 +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
Atgeirr Flø Rasmussen
ed91f7528b
Merge pull request #4664 from totto82/fix_gpmaint
dont store history of inactive gpmaint rates
2023-05-30 11:38:27 +02:00
Bård Skaflestad
3549d85d83
Merge pull request #4568 from totto82/2psolvent
Add gaswater solvent
2023-05-30 11:36:16 +02:00
Kai Bao
23c0126095
Merge pull request #4640 from steink/ms_pressure_eq_derivatives
Update of multisegment well pressure equations - testing
2023-05-26 22:57:23 +02:00
Tor Harald Sandve
7cf3f69cf9 Add gaswater solvent
Fix some places that assumed 3p + solvent
2023-05-26 16:24:38 +02:00
Kai Bao
35621058c6
Merge pull request #4654 from totto82/solvent_foam
Add solvent + foam simulator
2023-05-24 22:50:20 +02:00
Tor Harald Sandve
1592ef8bd2 solvent + foam simulator 2023-05-24 16:03:09 +02:00
Stein Krogstad
3beef758e4
Merge branch 'OPM:master' into ms_pressure_eq_derivatives 2023-05-24 13:35:11 +02:00
Arne Morten Kvarving
2630522d7f avoid unused variable warning with NDEBUG 2023-05-24 12:39:24 +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
Stein Krogstad
5c0b76f337 Revert to original segment density computations
(keep average version as option)
2023-05-23 12:44:06 +02:00
Tor Harald Sandve
86edaeae77 dont store history of inactive gpmaint rates 2023-05-23 11:02:22 +02:00
Stein Krogstad
51604e5956 Move hydro p-loss assembly to end of function 2023-05-16 13:26:58 +02:00
Stein Krogstad
a3860e7d0c Updates as requested PR review 2023-05-16 12:58:19 +02:00
Stein Krogstad
0417f101bf Use average density for hydro p-drop 2023-05-16 12:58:19 +02:00
Stein Krogstad
8ee3493aed don't upwind densitiy 2023-05-16 12:58:19 +02:00
Stein Krogstad
e5ac9f9dec Inluding all derivatives for reversed flow 2023-05-16 12:58:19 +02:00
Tor Harald Sandve
f5b44ad26d
Merge pull request #4650 from totto82/addPrecEnergy
Add energy + precipitation of salt in brine-gas simulator
2023-05-16 12:17:35 +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
5126097d7b changed: unify MultisegmentWell::getMobility(Eval|Scalar) 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
ee39117771 Add energy + precsalt simulator 2023-05-12 10:49:17 +02:00
Tor Harald Sandve
23e9bf599d Fixes related to rsw/rvw handling in standard well 2023-05-12 09:44:11 +02:00
Kai Bao
49a327f372 we should not request alq_value for injectors
through the function { return well_.wellEcl().alq_value(); }.

It will throw a runtime_error which is not properly caught.
2023-05-11 15:23:25 +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
Kai Bao
d30e1f7a2a adding comment to address reviewing comments for PR#4598 2023-05-08 13:55:30 +02:00
Kai Bao
926228401a moving function needRebalanceNetwork to BlackoilWellModelGeneric 2023-05-08 13:26:23 +02:00
Kai Bao
fa39f1f183 adding max_iter and relaxation_iter for updateWellControlsAndNetwork
to avoid getting stuck during the iteration.
2023-05-08 10:43:49 +02:00
Kai Bao
b9348ee435 try to honor the network balance tolerance
without considering the iteration number. Because of the different
implementaion from other simulators, it is difficult to honour
procedure-dependent parameters.
2023-05-08 10:43:49 +02:00
Kai Bao
6148e97771 we dampen the nodal pressure update for each iteration
to improve the network update convergence. The current network update is
somehow explicit.
2023-05-08 10:43:49 +02:00
Kai Bao
ee77fa122c updating the thp of the wells during the network update iteration 2023-05-08 10:43:49 +02:00
Kai Bao
bb7ed4d78e making sure to update the pressure when needing network balance 2023-05-08 10:43:49 +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
Kai Bao
8644801ac8 adding function balanceNetwork
not compiling yet due to the change in the master branch
2023-05-08 10:43:49 +02:00
Kai Bao
b3a6009b1b network pressure needs to be updated even without wells open
mostly to make the comparison plot against reference results easier for
the network nodal pressures.
2023-05-08 10:43:49 +02:00
Kai Bao
0f4da07aaf when a well is in a network node with nodal pressure
setting the dynamic thp limit with the the nodal pressure.
2023-05-08 10:43:49 +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
Bård Skaflestad
b4945a0a5e
Merge pull request #4615 from GitPaean/only_prediction_well_has_thp_constraint
only prediction wells can have THP constraint
2023-05-05 09:37:26 +02:00
Arne Morten Kvarving
59c9a139cc changed: simplify WellConnectionPressure calculation by passing a struct 2023-05-04 14:30:55 +02:00
Arne Morten Kvarving
fafca7b382 changed: introduce a struct StandardWellConnections::Properties
this holds the various properties for a connection
2023-05-04 14:30:33 +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
Arne Morten Kvarving
9bfe835652 changed: introduce a struct PerforationRates
this holds various rates for a perforation that used to be
kept as separate variables
2023-05-04 13:33:45 +02:00
Kai Bao
2b054ce2a2 updating the interval when doing bisectBracket()
to avoid getting stuck and iterate for no purpose. It might not affect the
result much, while from the code, it looks like it should be updated
iteratively.
2023-05-01 16:01:35 +02:00
Kai Bao
a2c6e674dc only prediction wells can have THP constraint 2023-04-27 14:00:49 +02:00
Markus Blatt
5a2b25ec31
Merge pull request #4609 from akva2/fix_wtest_for_newly_created_well
WellGroupHelpers: make sure we have a GuideRate value or potential for well
2023-04-27 09:17:14 +02:00
Arne Morten Kvarving
7f58ad69ac WellGroupHelpers: make sure we have a GuideRate value or potential for well
this is not the case when WTEST executes at the beginning
of (the first time step of) a report step if the well was created
at that report step. this led to an exception being thrown trying
to deref the potentials array
2023-04-26 15:55:56 +02:00
Atgeirr Flø Rasmussen
8ac8b207ca Minor adjustment avoids exception when used with FIELD group. 2023-04-26 11:51:57 +02:00
Kai Bao
79eeeae16e addressing the reviewing comments for PR #4596 2023-04-20 15:47:31 +02:00
Kai Bao
1542f2c087 refactor the network update
moving the well controls and network update out of assembleImpl to avoid
call assmebleImpl in a recursive manner
2023-04-20 14:59:50 +02:00
Tor Harald Sandve
ec4a927d1b
Merge pull request #4579 from hakonhagland/glwtest_it
Check all ALQ values when testing a gaslift well for reopening
2023-04-18 14:46:10 +02:00
Kai Bao
ceba5c468b
Merge pull request #4572 from GitPaean/tightenging_tolerance_for_zero_rate_wells
stricter tolerance for wells with zero rate target
2023-04-14 11:19:35 +02:00
Tor Harald Sandve
fcb6eeb0ea
Merge pull request #4575 from totto82/wgrupcon_no
Support WGRUPCON item 2 = no
2023-04-14 08:16:28 +02:00
Håkon Hægland
e241fccbca Only iterate wells activated for gaslift 2023-04-13 11:08:30 +02:00
Håkon Hægland
4ba5e3efad Iterate ALQ when testing gaslift well
When testing a gaslift well under THP control, if the
well does not converge with maximum alq, try to reduce alq
in increments until well equations converge.
2023-04-13 10:40:29 +02:00
Kai Bao
688d575802
Merge pull request #4584 from GitPaean/fixing_unopen_injector
checking Producer or Injector when comparing bhp against BHP constraint during well operability check
2023-04-13 09:27:46 +02:00
Arne Morten Kvarving
f2983ac6af minimum dune version required is now 2.7 2023-04-12 09:41:23 +02:00
Kai Bao
ed4aa75721 checking Producer or Injector when comparing bhp against BHP constraint
during well operability check.
2023-04-11 14:34:47 +02:00
Markus Blatt
734eb76910
Merge pull request #4573 from hakonhagland/glift_grad
Fix bug when recalculating gaslift gradient
2023-04-03 11:20:15 +02:00
Tor Harald Sandve
dbe8c3d294 Support WGRUPCON item 2 = no 2023-03-31 11:47:33 +02:00
Bård Skaflestad
c52ab4ccd5
Merge pull request #4347 from atgeirr/afr_well_assemble_separate
Implement functionality to add well source terms to the residual separately
2023-03-31 11:10:01 +02:00
Håkon Hægland
973a883043 Some minor changes as requested in review. 2023-03-31 09:26:28 +02:00
Håkon Hægland
c2916bc7d9 Fix bug when recalculating gaslift gradient
Fixes a bug in recalculateGradientAndUpdateData_() if gaslift stage2.
Also adds some more debugging output.
2023-03-30 17:44:21 +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
Bård Skaflestad
e9b372ff1c
Merge pull request #4563 from GitPaean/treating_zero_injection_rate_well_as_stoppped
for the wells under zero rate target control, the THP output will be zero
2023-03-30 13:03:36 +02:00
Bård Skaflestad
5a3deaf57b
Merge pull request #4571 from totto82/fixgl
Increase alq to its minimum value while checking that is does not violate its rate limits
2023-03-30 10:31:51 +02:00
Tor Harald Sandve
77ed90ceb8 Increase alq to its minimum value while checking that is does not violate its rate limits 2023-03-30 08:59:59 +02:00
Kai Bao
9304542dbe combining wellIsStopped and wellUnderZeroRateTaget
for better readability.
2023-03-29 14:40:50 +02:00
Kai Bao
b6eecf5c55 not updating the THP for zero rate controlled wells 2023-03-29 13:48:34 +02:00
Kai Bao
f4e0a996b9 wells under zero injection target are also treated as stopped well
when formulating the well control equations
2023-03-29 13:48:34 +02:00
Bård Skaflestad
9524348401
Merge pull request #4549 from totto82/resv_undersat
fix RESV for undersaturated wells
2023-03-29 10:35:33 +02:00
Tor Harald Sandve
57c1e52019 fix error message for rs/rsw =1 2023-03-29 08:47:28 +02:00
Tor Harald Sandve
a73f4078ef add missing include 2023-03-28 12:45:39 +02:00
Tor Harald Sandve
a2ae7d5bed Fix resv for groups 2023-03-27 16:03:40 +02:00
Tor Harald Sandve
42527ac829 fix RESV for undersaturated wells 2023-03-27 16:03:40 +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
hnil
aa40d2f0f3 -- prepared for possibliy of not using cached intentensive quantities 2023-03-24 19:57:31 +01:00
Bård Skaflestad
0a9d2a7099
Merge pull request #4543 from hnil/more-timings
added more timing macros
2023-03-22 10:51:28 +01:00
hnil
122a478341 added more timing macros 2023-03-21 22:44:14 +01:00
steink
c997b438dd assembleWellEq 2023-03-20 13:15:59 +01:00
Markus Blatt
5c1d964478
Merge pull request #4512 from akva2/rateconverter_compile_unit
RateConverter: introduce a compile unit
2023-03-15 20:54:26 +01:00
Bård Skaflestad
1ac190e4a0
Merge pull request #4518 from atgeirr/fix-zero-rate-control-eq
Treat rate control with zero target same as stopped well.
2023-03-10 16:12:08 +01:00
Atgeirr Flø Rasmussen
2964bd409e Use diagonal matrix block pointers for well source terms. 2023-03-08 16:41:36 +01:00
hnil
e705dc41c2 modification to to well assembly form well side to avoid asking for wells on all cells 2023-03-08 16:41:36 +01:00
Arne Morten Kvarving
3967eb001b RateConverter: prefer using 2023-03-08 15:40:18 +01:00
Arne Morten Kvarving
173e3900d4 RateConverter: move inferDissolvedVaporisedRatio to compile unit 2023-03-08 15:40:18 +01:00
Arne Morten Kvarving
8c233ffba2 RateConverter: move calcReservoirVoidageRates to compile unit 2023-03-08 15:40:18 +01:00
Arne Morten Kvarving
ae9ed506e8 RateConverter: move calcCoeff to compile unit 2023-03-08 15:40:18 +01:00
Arne Morten Kvarving
11602bbdda RateConverter: move calcInjCoeff to compile unit 2023-03-08 15:40:18 +01:00
Arne Morten Kvarving
7672e14890 RateConvert: introduce compile unit
move global rate reductions into it
2023-03-08 15:40:15 +01:00
Atgeirr Flø Rasmussen
60cdbb8cfd Treat rate control with zero target same as stopped well. 2023-03-08 15:32:55 +01:00
Arne Morten Kvarving
917af4e28e RateConverter: coalesce global reductions 2023-03-08 12:55:04 +01:00
Atgeirr Flø Rasmussen
fc06fc77c3
Merge pull request #4500 from GitPaean/unifying_interface_assemble_noiteration
make sure computeWellRatesWithBhpIterations honor bhp limit (can change) for StandardWell
2023-03-07 21:02:44 +01:00
Arne Morten Kvarving
7a90bd48b8 GasLiftSingleWell: avoid unused variable warning with NDEBUG 2023-03-07 11:22:01 +01:00
Arne Morten Kvarving
aeee2ad9d3 RateConverter: throw an exception, not a bare string 2023-03-06 13:08:33 +01:00
Kai Bao
2152ac6465 make sure computeWellRatesWithBhpIterations honor bhp limit
for StandardWell
2023-03-02 23:53:56 +01:00
Atgeirr Flø Rasmussen
8efb30d2bb
Merge pull request #4482 from totto82/addGasWaterEnergy
Add gaswater energy simulator
2023-02-28 08:01:06 +01:00
Kai Bao
460aa5027b not considering wells with wrong flow direction as converged
under THP constraint, well can get converged with wrong flow direction
(e.g. a producer is injecting), becasue we cut off the wrong flow
direction as zero rate in the VFP evaluation
2023-02-24 14:30:45 +01:00
Tor Harald Sandve
5028e0fbf1 Add gaswater energy simulator 2023-02-23 09:25:50 +01:00
Bård Skaflestad
4e8381b6f9
Merge pull request #4370 from totto82/computeCVIR
compute CVIR and CVPR
2023-02-22 17:38:33 +01:00
Arne Morten Kvarving
bdd75a3a59 SingleWellState: serialize PerfData 2023-02-22 13:59:59 +01:00
Arne Morten Kvarving
8d339c464c PerfData: add serialization support 2023-02-22 13:59:59 +01:00
Tor Harald Sandve
054d832bff compute CVIR and CVPR 2023-02-22 08:54:47 +01:00
Bård Skaflestad
37959ee26a
Merge pull request #4468 from vkip/fix_connpress_report
Fixing MSW connection pressure output
2023-02-17 17:44:39 +01:00
Vegard Kippe
f527267593 Fixing MSW connection pressure output 2023-02-17 12:17:41 +01:00
Bård Skaflestad
981299c2e0
Merge pull request #4461 from totto82/injalq
Fix default alq injector
2023-02-17 11:58:03 +01:00
Arne Morten Kvarving
72133deadc added: support for loading serialized state from .OPMRST file 2023-02-16 13:48:36 +01:00
Arne Morten Kvarving
28e7da5468 BlackoilWellModelGeneric: add serialization support 2023-02-16 11:19:06 +01:00
Arne Morten Kvarving
90fbdcee0a WGState: add serialization support 2023-02-16 10:48:34 +01:00
Arne Morten Kvarving
d9c801033a cosmetics 2023-02-16 09:52:36 +01:00
Arne Morten Kvarving
b7a531b93a WellState: add serialization support 2023-02-16 09:43:39 +01:00
Arne Morten Kvarving
6d93b2d12f ALQState: add serialization support 2023-02-16 08:35:34 +01:00
Arne Morten Kvarving
b87bf2b3ae GroupState: add serialization support 2023-02-15 22:57:44 +01:00
Arne Morten Kvarving
1a5ae624b1 GroupState: add gpmaint_state to comparison operator 2023-02-15 22:51:19 +01:00
Arne Morten Kvarving
7f36bac579 WellContainer: add serialization support 2023-02-15 21:55:19 +01:00
Atgeirr Flø Rasmussen
e1942d145f
Merge pull request #4437 from akva2/singlewellstate_serialize
SingleWellState: add serialization support
2023-02-15 15:29:08 +01:00
Bård Skaflestad
3be62f4bb6
Merge pull request #4460 from totto82/fixVREP
FIX VREF for groups with both gas and water injectors
2023-02-15 14:34:52 +01:00
Arne Morten Kvarving
60a5273d0e SingleWellState: add serialization of dynamic state 2023-02-15 13:56:25 +01:00
Tor Harald Sandve
be2b021167 Fix default alq injector 2023-02-15 13:42:50 +01:00
Tor Harald Sandve
5356dbbaa8 FIX VREF for groups with both gas and water injectors 2023-02-15 13:35:12 +01:00
Arne Morten Kvarving
482c32b117 SegmentState: add serialization support 2023-02-15 12:59:18 +01:00
Atgeirr Flø Rasmussen
358d9997ee Fix a few warnings in recently added code. 2023-02-14 15:46:08 +01:00
Bård Skaflestad
d45a08a6cf
Merge pull request #4455 from akva2/perforationdata_missing_include
PerforationData: add missing include
2023-02-13 17:40:50 +01:00
Arne Morten Kvarving
2ed2734365 PerforationData: add missing include 2023-02-13 16:15:45 +01:00
Arne Morten Kvarving
a72a9e55a0 BlackoilWellModel: prefer std::make_unique 2023-02-13 16:04:03 +01:00
Kai Bao
0d00337275
Merge pull request #4409 from GitPaean/update_well_state_with_thp_target2
update well state when switching to THP control for producers
2023-02-10 16:08:32 +01:00
Bård Skaflestad
2156e16478
Merge pull request #4453 from akva2/regionaveragecalculator_missing_include
RegionAverageCalculator: add missing include
2023-02-10 16:02:47 +01:00
Arne Morten Kvarving
7a5f60a7bd RegionAverageCalculator: add missing include 2023-02-10 15:09:16 +01:00
Markus Blatt
8b7c87ba52
Merge pull request #4434 from akva2/parwelmorepriv
ParallelWellinfo: make some more templates private
2023-02-09 16:51:32 +01:00
Arne Morten Kvarving
997284ca52 TargetCalculator: add missing include 2023-02-08 09:26:11 +01:00
Arne Morten Kvarving
8bc996e291 ParallelWellinfo: make some more templates private
to encapsulate some headers in compile unit. also clean
up include list in the process
2023-02-07 15:53:11 +01:00