Commit Graph

18284 Commits

Author SHA1 Message Date
Bård Skaflestad
93c368cbfa Revise Mixture Density Method for No-Flow Producers
This commit switches the approach introduced in commit eeb1b7e36 (PR
#3169) to using a mobility weighted average of cell level densities
for the connection level mixture densities in no-flow producing
wells.  We also use the recent stoppedOrZeroRateTarget() predicate
to identify those no-flow producing wells instead of inspecting the
connection flow rates.

The mobility weighted average gives a more monotone pressure buildup
for the stopped wells and this is usually what the engineer wants.
This revised approach furthermore needs fewer cell-level dynamic
properties so simplify the computeProperties() signature by
introducing a structure for the property callback functions and
update the callers accordingly.
2024-08-22 14:51:00 +02:00
Bård Skaflestad
586d8e2ddc Generate Property Object Directly
This commit switches computePropertiesForPressures() to return a
Properties object directly instead of populating an object
constructed in the caller.  There is just a single call site for
this function so there's no benefit to using an out parameter here.
While here, also collect the property callbacks into a structure to
simplify the function signature.  This also enables not filling in
the solvent properties unless solvent is active in the run.  Update
caller accordingly.
2024-08-22 14:51:00 +02:00
Bård Skaflestad
6f2ee80e41 Refactor Perforation Pressure Property Helper Function
In particular, split the sections of the main loop out to helper
functions

  - calculatePerforationOutflow() uses the global container factory
    to compute the outflow from each connection
  - initialiseConnectionMixture() computes the 'mix' array depending
    on the local flowing conditions of the connection.  We have
    renamed 'x' and 'mix' arrays to 'currentMixture' and
    'previousMixture' respectively to give more descriptive names in
    the process.

We've also split out the redistribution of the individual phases to
the new private helper functions reapportionGasOilMixture() and
reapportionGasWaterMixture() in order to reduce the cognitive load
of the main loop in computePropertiesForPressures().  While here,
employ pointer arithmetic to expose the underlying structure of the
assignment expressions.
2024-08-22 14:51:00 +02:00
Bård Skaflestad
fa199461b5 Varnish Parts of Well Implementation
In particular

  * Split some long lines
  * Reverse conditions to reduce nesting
  * Mark potentially unused arguments as [[maybe_unused]]
  * Try to remove redundant calculations
  * Mark some objets 'const' where possible
2024-08-22 14:51:00 +02:00
Tor Harald Sandve
66fd1dfcf3
Merge pull request #5527 from totto82/pvtnum_drdsdtcon
Support deactivation of individual DRSDT/DRVDT/DRSDTCON regions
2024-08-22 14:30:03 +02:00
Kjetil Olsen Lye
c4f686227b
Merge pull request #5451 from multitalentloes/generalize_thread_block_tuner
Generalize thread block tuner
2024-08-22 12:56:14 +02:00
Tobias Meyer Andersen
8a1dfceeed clang format OpmCuilu0.cpp 2024-08-22 10:24:17 +02:00
Tobias Meyer Andersen
45f6116d5e clang format autotuner 2024-08-22 10:23:36 +02:00
Tobias Meyer Andersen
dcdce71d4b add more explanations 2024-08-22 10:17:53 +02:00
Tobias Meyer Andersen
8b50c90fd1 make use of OpmLog for printing tuning result 2024-08-22 10:07:06 +02:00
Atgeirr Flø Rasmussen
9b4c51de7e
Merge pull request #5553 from jakobtorben/add_support_for_changing_local_solver_in_NLDD
Make local solver in NLDD a runtime specified ISTLSolver
2024-08-22 09:45:32 +02:00
Tor Harald Sandve
b0bfe9f1c1 Adapt to mixControl moving from genericProblem 2024-08-21 16:03:59 +02:00
jakobtorben
1f285ae0d5 Make local solver in NLDD a runtime specified ISTLSolver 2024-08-21 14:24:23 +02:00
Bård Skaflestad
b74d84404e
Merge pull request #5551 from akva2/float_support4
Float support in simulators: Batch 4
2024-08-21 13:57:24 +02:00
Arne Morten Kvarving
267d282d1d NonlinearSolver: optionally instantiate for float 2024-08-21 10:12:25 +02:00
Arne Morten Kvarving
d938d821ad EclGenericWriter: optionally instantiate for float 2024-08-21 10:05:04 +02:00
Arne Morten Kvarving
6a364ea961 GenericOutputBlackoilModule: optionally instantiate for float 2024-08-21 09:56:01 +02:00
Arne Morten Kvarving
aadc5cb69c GenericOutputBlackoilModule: obtain data using appropriate overload 2024-08-21 09:49:22 +02:00
Bård Skaflestad
5914744f7c
Merge pull request #5546 from totto82/fix_no_wells
BUGFIX Fix no wells case
2024-08-21 09:36:16 +02:00
Bård Skaflestad
5fd5027ebd
Merge pull request #5549 from akva2/actionhandler_float
ActionHandler: instance for float
2024-08-21 09:22:13 +02:00
Tor Harald Sandve
fffa19e757 Only resize drsdt related vectors when needed 2024-08-21 09:17:25 +02:00
Tor Harald Sandve
914f0b8644 Support deactivation of individual DRSDT/DRVDT/DRSDTCON regions 2024-08-21 09:17:25 +02:00
Tor Harald Sandve
e584e05435 Fix shut wells case for output of gas mass injected rates 2024-08-21 08:50:57 +02:00
Atgeirr Flø Rasmussen
908a9b37ff
Merge pull request #5445 from jakobtorben/make_cpr_reuse_option_only_apply_to_cpr
Make CPR reuse setup option only apply to CPR
2024-08-21 08:45:09 +02:00
Bård Skaflestad
e0e60fec8e
Merge pull request #5548 from akva2/float_support2
Support float simulators - batch 2
2024-08-20 18:48:00 +02:00
jakobtorben
5d54c50ba0 Add method for defining if preconditioners should be recreated 2024-08-20 17:57:38 +02:00
Tobias Meyer Andersen
ae4e6a65fc make autotuner use lambda that only depends on blocksize 2024-08-20 15:06:59 +02:00
Tobias Meyer Andersen
14ea44246a add autotuner 2024-08-20 13:35:33 +02:00
Arne Morten Kvarving
d762f2b29c ActionHandler: optionally instantiate for float 2024-08-20 12:31:10 +02:00
Arne Morten Kvarving
bc1fd4f01c BlackoilWellModelGeneric: optionally instantiate for float
BlackoilWellModelRestart: optionally instantiate for float
these need to be in the same commit due to circular dependencies
2024-08-20 12:31:07 +02:00
Arne Morten Kvarving
dcbd1c7baf BlackoilWellModelGeneric: convert input data to appropriate Scalar type 2024-08-20 12:31:07 +02:00
Bård Skaflestad
ac1cbd8987
Merge pull request #5545 from akva2/try_fix_alugrid_full_param
restore all flags for alugrid test
2024-08-20 11:57:30 +02:00
Kai Bao
5866e9af84
Merge pull request #5535 from GitPaean/relocate_mixing_control
relocating mixControls_ form FlowGenericProblem to FlowProblem
2024-08-20 11:50:39 +02:00
Arne Morten Kvarving
62daa16304 ParallelWBPCalculation: optionally instantiate for float 2024-08-20 11:41:12 +02:00
Arne Morten Kvarving
35b93eed14 ParallelPAvgCalculator: optionally instantiate for float 2024-08-20 11:36:24 +02:00
Arne Morten Kvarving
86b3879806 ParallelPAvgDynamicSourceData: optionally instantiate for float 2024-08-20 11:08:34 +02:00
Atgeirr Flø Rasmussen
1615719993
Merge pull request #5110 from totto82/fixDrift
Remove check for active wells for drift compensation
2024-08-20 09:53:25 +02:00
Bård Skaflestad
afe34e1868
Merge pull request #5542 from akva2/float_support1
Add float support to simulators: Batch 1
2024-08-20 09:29:40 +02:00
Arne Morten Kvarving
a69ffde5e4 restore all flags for alugrid test 2024-08-20 09:15:27 +02:00
Bård Skaflestad
f9ce09acd7
Merge pull request #5543 from akva2/add_mixingratecontrols_serialization_test
added: (restart-)serialization test for MixingRateControls
2024-08-19 22:34:52 +02:00
Bård Skaflestad
36494d19f8
Merge pull request #5541 from atgeirr/warn-petgrid
More helpful message for PETGRID.
2024-08-19 17:03:25 +02:00
Arne Morten Kvarving
965c89d7a2 added: (restart-)serialization test for MixingRateControls 2024-08-19 14:03:47 +02:00
Arne Morten Kvarving
14bc929fb0 ParallelOverlappingILU0: optionally instantiate for float 2024-08-19 13:51:15 +02:00
Arne Morten Kvarving
f94f1d1012 MILU: optionally instantiate for float 2024-08-19 13:50:08 +02:00
Arne Morten Kvarving
554bb7d8b7 StandardWellConnections: optionally instantiate for float 2024-08-19 13:47:49 +02:00
Arne Morten Kvarving
5c37e497cc StandardWellAssemble: optionally instantiate for float 2024-08-19 13:46:50 +02:00
Arne Morten Kvarving
3e6afbe480 StandardWellPrimaryVariables: optionally instantiate for float 2024-08-19 13:45:34 +02:00
Arne Morten Kvarving
bee3dea736 WellConvergence: optionally instantiate for float 2024-08-19 13:44:35 +02:00
Arne Morten Kvarving
7105fb8601 MultisegmentWellAssemble: optionally instantiate for float 2024-08-19 13:41:17 +02:00
Arne Morten Kvarving
aceadc5e88 WellAssemble: optionally instantiate for float 2024-08-19 13:40:12 +02:00