Commit Graph
23057 Commits
Author SHA1 Message Date
jakobtorben 8ff335c2f2 Refactor test_GpuPressureTransferPolicy to separate tests 2025-09-18 16:54:05 +02:00
jakobtorben 807a558cc5 Improve logic for selecting AMG solvers between CPU and GPU accelerators 2025-09-18 16:54:02 +02:00
jakobtorben c36d3f1b99 Add CPR GPU preconditioner using shared implementation for CPU/GPU 2025-09-18 16:25:51 +02:00
jakobtorben 0762097411 Make GpuVector support default constructing vectors and resizing 2025-09-18 16:25:51 +02:00
jakobtorben 50998073ec Add well operator check in ISTLSolverGPUISTL 2025-09-18 16:25:51 +02:00
jakobtorben fc3e9209ef Implement CPR weight calculation for gpu-ISTL 2025-09-18 16:25:49 +02:00
jakobtorben cea8d4c87f Introduce GpuPressureTransferPolicy and gpu operations for CPR-AMG 2025-09-18 11:00:54 +02:00
Tobias Meyer Andersen df807606a7 Merge pull request #6472 from jakobtorben/fix_mpi_parallel_ISTLSolverGPUISTL
Fix MPI parallel ISTLSolverGPUISTL and register parallel GPU preconditioners
2025-09-18 09:40:28 +02:00
Atgeirr Flø Rasmussen 0f3db11be4 Merge pull request #6467 from totto82/check_network_conv
Check whether network is converged before accepting the iteration
2025-09-18 09:28:31 +02:00
Bård Skaflestad 3c5e25428a Merge pull request #6479 from akva2/janitoring_py_classes
Some janitoring in python classes
2025-09-17 17:17:46 +02:00
Arne Morten Kvarving 484e61b573 Merge pull request #6478 from akva2/update_py_packaging
python packaging: update to use python_simulator_modules target
2025-09-17 15:04:28 +02:00
Arne Morten Kvarving b68e6567f8 Some janitoring in python classes
- add some breathing space in headers
- remove Opm:: for symbols in Opm namespace
- use type-aligned &/*
- add "IDE helper structure"
- add some const
- add a type alias to reduce long statements
- reformat some clang-format atrocities
- return directly in a switch clause
2025-09-17 14:59:42 +02:00
Arne Morten Kvarving 26660b6640 python packaging: update to use python_simulator_modules target 2025-09-17 14:53:52 +02:00
Bård Skaflestad 6e3b1916b4 Merge pull request #6477 from jakobtorben/fix_hypre_test_version_compatibility_issue
Fix version compatibility issue in Hypre test
2025-09-17 14:26:41 +02:00
Arne Morten Kvarving dc2300f524 Merge pull request #6075 from svenn-t/pygaswater
Python gas-water simulator
2025-09-17 13:52:30 +02:00
jakobtorben 5f862ee513 Fix version compatibility issue in Hypre test 2025-09-17 13:30:01 +02:00
Tor Harald Sandve 9d4015354e Merge pull request #6476 from totto82/fix_event
Use WELL_STATUS_CHANGE instead of REQUEST_SHUT/OPEN WELL
2025-09-17 13:29:26 +02:00
Tor Harald Sandve 877414445b Use WELL_STATUS_CHANGE instead of REQUEST_SHUT/OPEN WELL 2025-09-17 11:43:16 +02:00
Håkon Hægland 3c6313b619 Custom target to build all simulator modules
Create a convenience target to build all Python simulator modules.
2025-09-17 10:06:50 +02:00
Svenn Tveit 753fcc2ec4 Cleaned up formatting 2025-09-17 10:06:50 +02:00
Svenn Tveit a69e10485b Clarify ordering and clean up doc in rest of the tests 2025-09-17 10:06:50 +02:00
Håkon Hægland b5e7ccc0b1 Clarify why test case ordering is necessary
and delete comment in code about static variables that can no longer be
reproduced.
2025-09-17 10:06:49 +02:00
Svenn Tveit 67a701ef4f Tests for PyGasWaterSimulator 2025-09-17 10:06:49 +02:00
Svenn Tveit 32dd09c78f Add Python gas-water simulator and refactor to template base class
Extend the Python blackoil simulator to support two-phase gas-water
simulations by extracting common functionality into a template base
class and implementing proper module separation.

- Extract PyBaseSimulator<TypeTag> template base class containing all
  common simulator functionality (20+ methods including advance, run,
  step, property access, and MPI handling)
- Add PyGasWaterSimulator for two-phase gas-water simulations using
  FlowGasWaterProblem TypeTag with oil phase disabled
- Split Python modules to avoid ODR violations:
  - BlackOil.so for PyBlackOilSimulator (FlowProblemTPFA)
  - GasWater.so for PyGasWaterSimulator (FlowGasWaterProblem)
- Implement proper template instantiation control with explicit
  instantiations per module

- Eliminate ~400 lines of code duplication between simulators
- Clean inheritance hierarchy: derived classes contain only constructors
- Type-safe specialization through OPM's TypeTag property system
- Separate docstring generation for each simulator type
- Independent build targets with shared infrastructure

- Update CMakeLists.txt to support multiple pybind11 modules
- Add docstrings_gw_simulators.json for gas-water simulator documentation
- Remove centralized Pybind11Exporter.cpp in favor of distributed exports
- Implement proper build dependencies and custom targets

This establishes a scalable foundation for extending OPM's Python
bindings to support additional simulator types (thermal, polymer,
solvent) while maintaining type safety and avoiding symbol conflicts.

Files changed: 21 files, 915 insertions, 428 deletions
2025-09-17 10:06:44 +02:00
Tor Harald Sandve 6c82c449bb Check whether network is converged before accepting the iteration 2025-09-17 09:57:30 +02:00
Tor Harald Sandve 0bbb885093 Merge pull request #6463 from totto82/bug_fix_global_is_GRUP
Dont include temporary stopped wells among the wells considered for group control
2025-09-17 08:34:32 +02:00
Kai Bao 1d20cd56d3 Merge pull request #6050 from totto82/wecon10
Support opening of following-on well
2025-09-16 20:53:07 +02:00
jakobtorben 4aed1f7e02 Register MPI parallel GPU preconditioners 2025-09-16 14:47:02 +02:00
jakobtorben fe523aa21e Fix GPU-ISTL solver parallel setup 2025-09-16 14:47:02 +02:00
jakobtorben 06853bd69e Fix GPU communication object lifetime in FlexibleSolverWrapper 2025-09-16 14:46:58 +02:00
Atgeirr Flø Rasmussen 4ca1699c78 Merge pull request #6473 from GitPaean/aicd_item22
incorporating the item 22 of WSEGAICD
2025-09-16 13:51:38 +02:00
Bård Skaflestad 8a70daa790 Merge pull request #6474 from kjetilly/cstdint
Added include of cstdint
2025-09-16 13:45:48 +02:00
Tor Harald Sandve 6cf9dc2ce6 add regression test 2025-09-16 13:10:37 +02:00
Kai Bao 76504060eb incorporating the item 22 of WSEGAICD 2025-09-16 11:44:34 +02:00
Kjetil Olsen Lye 06c58b5b1b Added include of cstdint 2025-09-16 11:20:00 +02:00
Atgeirr Flø Rasmussen 9fb3de576e Merge pull request #6469 from GitPaean/cleaning_up_blackoilprimaryvariable
some cleaning up in blackoilprimaryvariables
2025-09-16 10:56:23 +02:00
Bård Skaflestad acdabd98d5 Merge pull request #6471 from atgeirr/compact-enums
Adapt to reduced enum sizes in upstream.
2025-09-16 09:05:54 +02:00
Atgeirr Flø Rasmussen 1c78cb8b68 Merge pull request #6468 from totto82/dont_use_classical
Dont go back to classical approach during un-converged operability check
2025-09-16 08:32:59 +02:00
Kai Bao 68c7850308 removing assignMassConservative() from blackoilprimaryvariables 2025-09-15 22:40:01 +02:00
Atgeirr Flø Rasmussen 5e9d03a312 Adapt to reduced enum sizes in upstream. 2025-09-15 16:33:28 +02:00
Tor Harald Sandve 76a8e267b6 dont update group data before the well container is created 2025-09-15 16:13:21 +02:00
Atgeirr Flø Rasmussen 4e9f94afad Merge pull request #5971 from kjetilly/blackoilfluidstategpu
Tests for BlackOilFluidState on the GPU
2025-09-15 15:23:41 +02:00
Kai Bao b2d5a48487 some cleaning up in blackoilprimaryvariables 2025-09-15 14:34:09 +02:00
Tor Harald Sandve b1d3a22112 Dont go back to classical approach during un-converged operability check 2025-09-15 14:20:06 +02:00
Kjetil Olsen Lye 38a2e20e2c Removed unused variables 2025-09-15 14:08:52 +02:00
Arne Morten Kvarving c167c4c8ab Merge pull request #6466 from multitalentloes/extract_invariants
Extract loop invariant in matrix assembly
2025-09-15 13:56:05 +02:00
Kjetil Olsen Lye d9fa3f100d Formatting 2025-09-15 13:20:54 +02:00
Kjetil Olsen Lye 4398ee56c3 Adding tests for BlackOilFluidState and ConditionalStorage on GPU 2025-09-15 13:20:54 +02:00
Tobias Meyer Andersen 3fe4b533e0 updated comment 2025-09-15 11:48:57 +02:00
Tobias Meyer Andersen 4414ae6846 fetch timestepsize outside of loop 2025-09-15 11:28:15 +02:00