Commit Graph

6343 Commits

Author SHA1 Message Date
Markus Blatt
c9b34a2f68 Switch default load balancer to Zoltan with vertex = all cells of a well
The new loadbalancer approach will create a graph representing the grid
where all cells that a well perforates are represented by one
vertex. The weight of that cell will be the number of cells it
represents. Also the weights of the faces will be added up due to the
merging of cells. A cell that is not perforated by any well is still
represented by one vertex with weight one.

In the old default appoach the number of vertices in the grid was
equal to the number of cells. Vertex weights were not used. For each
well we added an edge between all its perforated cells for which we
did set a very edge weight to force the cells to the same process
during partitioning.

For realistic cases we have seen improvements across the board due to
this. E.g. this resolved convergence issues on hard cases. Because of
that this becomes the default with this.
2024-12-13 14:56:08 +01:00
Bård Skaflestad
340855a41d Chase API Update
The WBP result type is now top-level.
2024-12-11 15:34:36 +01:00
Arne Morten Kvarving
61b7b0c113
Merge pull request #5762 from jakobtorben/hypre_integration
Add Hypre BoomerAMG Support
2024-12-11 10:52:55 +01:00
Bård Skaflestad
67fb9e7b59
Merge pull request #5777 from atgeirr/faster-openmp-props
Use regular OpenMP for loop, then iterate over chunks inside.
2024-12-11 10:40:54 +01:00
Atgeirr Flø Rasmussen
6d43c1b715 Use regular OpenMP for loop, then iterate over chunks inside.
Avoiding the mutex-based ThreadedEntityIterator gives a good speedup,
the overhead from the single extra loop over the grid for initialization
should be small in comparison.
2024-12-11 10:24:41 +01:00
jakobtorben
1536de038b Document the HyprePreconditioner class 2024-12-10 17:08:18 +01:00
jakobtorben
d663f16bea Add tests for Hypre Preconditioner 2024-12-10 17:08:18 +01:00
jakobtorben
e60aa7da13 Propagate need for recreating solver properly for two level methods 2024-12-10 17:08:18 +01:00
Arne Morten Kvarving
3b67d6dc54 Small fixes for hypre integration (#1)
* use appropriate hypre init function

* properly handle hypre without device support

* don't add hypre preconditioner to factory if scalar type does not match
2024-12-10 17:08:18 +01:00
jakobtorben
6fa9c25ba5 Move Hypre initialization and finalization out to Main 2024-12-10 17:08:18 +01:00
jakobtorben
56897e6d11 Guard Hypre preconditioner creation with HAVE_HYPRE macro 2024-12-10 17:08:18 +01:00
jakobtorben
1af2556385 Add support for GPU with Hypre 2024-12-10 17:08:18 +01:00
jakobtorben
032a7f5ad8 Create coarse matrix with contiguous memory layout 2024-12-10 17:08:18 +01:00
Tor Harald Sandve
b7d3a57b0b
Merge pull request #2970 from totto82/remove16day
remove 16 days restriction for timestep in predicition mode
2024-12-10 11:43:38 +01:00
Tor Harald Sandve
1180ad2652 Allow for the third group switch 2024-12-10 09:41:21 +01:00
Tor Harald Sandve
efe0192cca
Merge pull request #5789 from vkip/tracer_xflow_inj_report
Ensure tracer flow for cross-flowing injector connections is included
2024-12-09 14:24:55 +01:00
Tor Harald Sandve
96da980897
Merge pull request #5753 from totto82/maxGroupChange
Alternative way of avoiding group control oscillations
2024-12-09 11:24:21 +01:00
Vegard Kippe
2b59222abc Ensure tracer flow for cross-flowing injector connections is included 2024-12-06 15:26:19 +01:00
Tor Harald Sandve
095c0457bc Code improvment for the group control switching
Pass the controls as enums not strings
Avoid pair as key in map
2024-12-06 13:56:00 +01:00
Markus Blatt
0e22cc1552
Merge pull request #5746 from lisajulia/feature/ms-wells-solving
Feature/ms wells - part 2: Solving, straightforward option
2024-12-06 09:16:20 +01:00
Atgeirr Flø Rasmussen
848e4718b1
Merge pull request #5786 from jakobtorben/expose_finesmoother_parameters_in_CPR_setup
Expose finesmoother pre/post smooth parameters in CPR setup
2024-12-05 15:36:07 +01:00
Bård Skaflestad
ed5f93dcba
Merge pull request #5784 from akva2/always_initial_fip
fixed: always calculate initial FIP
2024-12-05 14:58:10 +01:00
Arne Morten Kvarving
d8a7875f9b fixed: always calculate initial FIP
this can be used by various Schedule keywords even if FIP is not in RPTSOL
2024-12-05 14:18:01 +01:00
jakobtorben
27caf3cca7 Expose finesmoother pre/post smooth parameters in CPR setup 2024-12-05 13:05:32 +01:00
Markus Blatt
e24d355e66
Merge pull request #5749 from michal-toth/feature/graph-of-grid
Zoltan partitioner with all perforated cells of a well merged to one vertex
2024-12-05 12:05:16 +01:00
Markus Blatt
5d4f578319
Merge pull request #5731 from akva2/validation_cleanup
ValidationFunctions: some cleanup
2024-12-05 10:56:06 +01:00
Tor Harald Sandve
738eb761c2 Only restrict oscillation for iter > nupcol 2024-12-04 10:45:23 +01:00
Tor Harald Sandve
128e80ec7a Maximum allowed oscillation for groups part 2
Set a parameter for maximum allowed oscillation of group controls
The parameter is only used for iter > nupcol
2024-12-04 09:17:46 +01:00
Arne Morten Kvarving
73c45c7282 bump minimum dune version to 2.9 2024-12-03 13:59:53 +01:00
Tor Harald Sandve
933d2949be Also check group constrains for iter > nupcol 2024-12-03 09:21:38 +01:00
Tor Harald Sandve
73a28a7abb Maximum allowed oscillation for groups part 1 2024-12-03 09:21:38 +01:00
Michal Tóth
cab7636fc5 Setup parameters for Zoltan partitioner with GraphOfGrid (from opm-grid). 2024-12-02 11:30:40 +01:00
Atgeirr Flø Rasmussen
b6f23f6fe5
Merge pull request #5773 from akva2/fix_msw_deadlock
fixed: well model could deadlock
2024-12-02 10:36:07 +01:00
Atgeirr Flø Rasmussen
e936a224a2
Merge pull request #5770 from vkip/thpres_rst_rstout
Write correct THRESHPR values also from restart
2024-12-02 10:32:52 +01:00
Tor Harald Sandve
42e17219b6
Merge pull request #5724 from totto82/changeNUPCOL
Changes in how the simulator handles NUPCOL
2024-12-02 10:29:09 +01:00
Arne Morten Kvarving
67765a3f08 fixed: well model could deadlock
if umfpack encounters a singular matrix on any process,
the exception propagated up across communication boundaries
leading to deadlock as the other processes tried to do global
reductions
2024-11-29 14:17:43 +01:00
Vegard Kippe
4555716dd8 Ensure all processors have the same thpres_ array also when we do not restart 2024-11-28 19:22:21 +01:00
Vegard Kippe
4bb50eb1d8 Simply return thpres_ vector as restart vector 2024-11-28 18:40:16 +01:00
Vegard Kippe
2b4e09bc51 Write correct THRESHPR values also from a restart. 2024-11-28 14:44:53 +01:00
Arne Morten Kvarving
4d5a67fa82 added: ability to pass command line parameters from python 2024-11-28 09:14:53 +01:00
jakobtorben
30e3dc3582 Only apply Hypre AMG one V-cycle 2024-11-27 17:09:14 +01:00
jakobtorben
9d47aa605e Add property tree to constructor 2024-11-27 17:09:14 +01:00
jakobtorben
6d22b4f72a Optimise the transfer of memory between Dune and Hypre 2024-11-27 17:09:14 +01:00
jakobtorben
84193fa53d Set Hypre AMG parameters to Jutul default 2024-11-27 17:09:14 +01:00
jakobtorben
10f7a85532 Add Hypre preconditioner 2024-11-27 17:09:14 +01:00
Tor Harald Sandve
d0bcf54b00
Merge pull request #5767 from totto82/network_sub_iter
Network sub iter
2024-11-27 15:48:12 +01:00
Atgeirr Flø Rasmussen
92c9d88c1b
Merge pull request #5743 from vkip/thpres_restart
Restore threshold pressures from restart
2024-11-27 15:16:38 +01:00
Tor Harald Sandve
8479655deb Set 20 as number of sub-iterations for the network 2024-11-27 14:21:05 +01:00
Tor Harald Sandve
e043dc6e50 Change default max iterations for network 2024-11-27 14:21:05 +01:00
Tor Harald Sandve
93206349c8 Add sub iterations for balancing the network 2024-11-27 14:21:05 +01:00