Commit Graph

6133 Commits

Author SHA1 Message Date
Tobias Meyer Andersen
3d67191d49 working MP for gpu DILU 2024-10-15 13:22:55 +02:00
Tobias Meyer Andersen
1d49eadd15 add mixed precision option to gpudilu class 2024-10-14 16:17:56 +02:00
Bård Skaflestad
257e5a2d2a Add Protocol for Populating Saturation Function End Points per Cell
This commit introduces a set of callback functions, packaged in an
abstract base class SatfuncCheckPointInterface<Scalar>, for querying
and populating the saturation function end-points that get probed by
the individual consistency checks.  Member function

    SatfuncCheckPointInterface::pointID(cellIdx)

translates the active cell index 'cellIdx' into a point ID, assumed
to be unique on at least the current MPI rank.  This function will
return 'nullopt' if the 'cellIdx' is not eligible for this
particular end-point.  This typically happens for the region based
tabulated (unscaled) saturation function checks when the 'cellIdx'
happens to be in a region that's already been visited.  Member
function

    SatfuncCheckPointInterface::populateCheckPoint(cellIdx, endPoints)

fills in (assigns) all data members of the 'endPoints' structure
with the pertinent values for the active cell 'cellIdx'.

We implement this interface for the tabulated/unscaled end-points in
derived class UnscaledSatfuncCheckPoint<Scalar> and for the scaled
end-points in derived class ScaledSatfuncCheckPoint<Scalar>.  The
former keeps track of which saturation regions have been visited
and short-circuits its 'pointID()' member function based on that
information while the latter uses an instance of the former in order
initialise the 'endPoints' structure in its populateCheckPoint()
member function.
2024-10-11 11:47:50 +02:00
jakobtorben
60bd3f5514 Remove unused num_cells argument from well equations 2024-10-10 20:26:13 +02:00
Atgeirr Flø Rasmussen
064a66e794
Merge pull request #5659 from atgeirr/delay-well-stop-by-one-iteration-rebased
Delay stopping wells after local well solves until global update agrees (rebased)
2024-10-10 17:37:24 +02:00
Atgeirr Flø Rasmussen
a7efc0091d
Merge pull request #5341 from jakobtorben/NLDD_remove_need_for_addWellContrib
Remove the need for add well contributions to matrix for NLDD
2024-10-10 16:23:52 +02:00
Atgeirr Flø Rasmussen
6602c8be7f Reformulate a nonzero rate criterion. 2024-10-10 16:17:38 +02:00
Stein Krogstad
a94d667462 Don't stop wells unless global update agrees 2024-10-10 16:17:38 +02:00
jakobtorben
e790972201 PR review changes 2024-10-10 15:51:53 +02:00
Atgeirr Flø Rasmussen
0ff3d63c0a
Merge pull request #5653 from bska/fix-rst-inplace
Initialise Fluid-in-Place Balance Sheets at Restart
2024-10-10 15:43:03 +02:00
Atgeirr Flø Rasmussen
fc43d3ba44
Merge pull request #5655 from BigDataAccelerate/fix_type
Bug fix in rocsparsesolver
2024-10-10 15:34:03 +02:00
jakobtorben
22af0bd2ae Pre-calculate local perforated cell indexes in subdomains 2024-10-10 15:12:48 +02:00
jakobtorben
61d61541d6 Remove reallocatin of temporary local variables 2024-10-10 15:12:48 +02:00
jakobtorben
3ea5c5820e Add well operator for NLDD domains 2024-10-10 15:12:48 +02:00
Kjetil Olsen Lye
9bc7155cf3
Merge pull request #5552 from multitalentloes/add_mixed_precision_ilu0_and_dilu_on_gpu
Add mixed precision ilu0 on gpu
2024-10-10 13:03:14 +02:00
Bård Skaflestad
71079ce737 Initialise Fluid-in-Place Balance Sheets at Restart
Commit 6ba9dc086 (PR #5626) moved the balance sheet report output
logic ahead of the timestep.  As a consequence, the output module's
'inplace_' and 'initialInplace_' data members must be fully
initialised the first time we call 'writeReports()' if the run
requests balance sheet output.

This commit initialises those objects by calling calc_inplace() from
EclWriter<>::endRestart().  Doing so restores the behaviour from
before PR #5626.  Note, however, that using this value for
'initialInplace_' is incorrect as the simulator then, in a restarted
run, will calculate recovery factors based on the fluid distribution
at the restart time instead of at the start of the base run.
Nevertheless this is, as alluded to earlier, how the simulator has
always performed.  The behaviour is just a little more explicit now.
2024-10-10 12:47:13 +02:00
Bård Skaflestad
9344423d04 Varnish EclWriter::beginRestart() Implementation
In particular,

  - Split some long lines
  - Mark objects 'const' where possible
  - Reduce scope of objects
  - Add braces to single statement control structures
  - Prefer pre-increment
  - Prefer type deduction for induction variables
2024-10-10 11:35:21 +02:00
Vegard Kippe
a2882dc0c8 Resetting WINJMULT dampening factors before fixed BHP calculations 2024-10-10 09:25:28 +02:00
Razvan Nane
82f32be1d9 fix typo in rocsparsesolver 2024-10-09 20:27:01 +02:00
jakobtorben
e53a3fd3f4 Remove unused well apply 2024-10-08 19:36:34 +02:00
Vegard Kippe
5d1b29ac72 Account for param_ move to parent class 2024-10-08 15:49:11 +02:00
Vegard Kippe
ac5de96ad4 Add dampening to the injectivity multipliers (WINJMULT) 2024-10-08 15:49:10 +02:00
Kai Bao
cfac494507
Merge pull request #5627 from vkip/fc_clean
Handle cleaning of filter cake in a more intuitive way
2024-10-08 13:54:14 +02:00
Vegard Kippe
a62a326cfa Removing unnessary arrays and eliminate some code duplication 2024-10-08 11:47:47 +02:00
jakobtorben
08bbbbf9fb Map well solution recovery vector to perforated well cells 2024-10-08 11:34:12 +02:00
Bård Skaflestad
6a7efcbcaa
Merge pull request #5645 from kjetilly/flowexp_components
Support for 2 to 7 components in flowexp_comp
2024-10-08 09:25:08 +02:00
Vegard Kippe
ca9cad3f07 Properly update multipliers after cleaning, and ensure that the cleaning occurs before the multipliers are applied to the well. 2024-10-07 19:35:10 +02:00
Vegard Kippe
136bd93fd6 Fix linear case 2024-10-07 19:35:10 +02:00
Vegard Kippe
e19063d957 Fix 'off-by-a-step' error in filter cake cleaning + refactor slightly 2024-10-07 19:35:10 +02:00
Vegard Kippe
60d622fa12 Handle cleaning of filter cake in a more intuitive way, also report actual thickness for radial case 2024-10-07 19:35:10 +02:00
jakobtorben
3680c21f32 Map perforated cell index to global index for CPR weights and add well contrib to matrix 2024-10-07 17:44:23 +02:00
jakobtorben
58a8d5ee41 Map global index to local subdomain index in well operator 2024-10-07 09:13:00 +02:00
jakobtorben
60ece76adf Make well equations use only perforated cells 2024-10-07 09:12:59 +02:00
Bård Skaflestad
779522fff1 Enable EQUALREG for Array Operations
The keyword's implementation has reached a point where we can
justify its addition to the simulator's feature set.
2024-10-06 15:22:37 +02:00
Markus Blatt
ed0e37e31d
Merge pull request #5577 from blattms/feature/full-pinch-option-4-all
Correctly treat transmissibilities for PINCH option(4) ALL.
2024-10-04 16:45:46 +02:00
Arne Morten Kvarving
55c42d7b83 one translation unit per instance 2024-10-04 14:45:34 +02:00
Bård Skaflestad
0b94f11b5c
Merge pull request #5625 from GitPaean/zmf_supporet
supporting ZMF explicit solution
2024-10-04 09:16:25 +02:00
Markus Blatt
a04b73d554
Merge pull request #5646 from vkip/actually_USE_fixed_order
Actually use fixed ordering (to get reproducible results in parallel)
2024-10-04 08:22:58 +02:00
Atgeirr Flø Rasmussen
9654215223
Merge pull request #5590 from jakobtorben/convergence_monitors
Convergence monitors
2024-10-04 08:21:03 +02:00
Vegard Kippe
099dabd8a9 Actually update the criterion to use fixed ordering.. 2024-10-04 00:09:04 +02:00
jakobtorben
b830208573 PR review changes 2024-10-03 18:05:06 +02:00
Kai Bao
29deffda26 addressing reviewing comments for PR OPM/opm-simulators#5625 2024-10-03 16:06:23 +02:00
Stein Krogstad
5713c68992 Add option to check group constraints during local well solve - set default to true 2024-10-03 11:36:17 +02:00
jakobtorben
ff20c1f809 Fix calculation of distance 2024-10-03 08:56:39 +02:00
jakobtorben
6ff83e19ae Write penalty count to infoiter file 2024-10-03 08:56:39 +02:00
jakobtorben
71a64fbd13 Ensure correct propagation of failed report 2024-10-03 08:56:39 +02:00
jakobtorben
6d53daaa42 Store report of failed step before cutting from convergence monitoring 2024-10-03 08:56:39 +02:00
jakobtorben
eef0ba50bf Change non-convergence monitor to checking if number of non-converged has increased 2024-10-03 08:56:39 +02:00
jakobtorben
cda47a6387 Register convergence monitoring parameters 2024-10-03 08:56:39 +02:00
jakobtorben
5f17c9de6a Cut timestep if penlaty exceeds limit 2024-10-03 08:56:39 +02:00