Commit Graph
23699 Commits
Author SHA1 Message Date
Håkon Hægland bb59fa82d1 Condensing and polishing comment wordings 2026-01-19 11:36:14 +01:00
Håkon Hægland fe6b508b28 Fix reservoir coupling sync to only occur on first substep
The master-slave synchronization code in beginTimeStep() was executing
on every internal substep within a "sync" timestep. This is incorrect
because:

1. The SubStepIteration loop typically splits a sync timestep into
   multiple smaller internal substeps for numerical stability
2. After the first internal substep, master and slaves are at different
   simulation times and cannot exchange data correctly
3. Repeated sync attempts would cause deadlocks or incorrect data

This fix adds an isFirstSubstepOfSyncTimestep flag to track whether we
are at the start of a coordinated "sync" timestep. The flag is:
- Set to true before each SubStepIteration::run() call
- Cleared to false after the first runSubStep_() returns
2026-01-14 17:10:40 +01:00
Bård Skaflestad a34d561f40 Merge pull request #6720 from atgeirr/fix-newton-iter-summary
Ensure correct summary output for iteration counts.
2026-01-14 16:59:26 +01:00
Atgeirr Flø Rasmussen 3c53df1d86 Ensure correct summary output for iteration counts. 2026-01-14 15:48:08 +01:00
Michal Tóth f5b16a0535 Merge pull request #6728 from michal-toth/bugfix/amgcpr-hasdiagonal
Bugfix: enable diagonal solve in amgcpr:pre
2026-01-14 11:40:00 +01:00
Bård Skaflestad 7be056eff8 Merge pull request #6730 from akva2/janitoring_cxx20
Janitoring: Some minors + quell c++-20 warning
2026-01-14 11:17:19 +01:00
Arne Morten Kvarving 71a754acd9 quell deprecated enum in arithmetic warning with c++-20 2026-01-14 10:31:24 +01:00
Arne Morten Kvarving e3c85f9ff2 cosmetics 2026-01-14 09:57:12 +01:00
Arne Morten Kvarving ac43a93722 avoid c style cast 2026-01-14 09:57:12 +01:00
Arne Morten Kvarving 45eae665c2 use fmt 2026-01-14 09:57:12 +01:00
Bård Skaflestad 31cd0da897 Merge pull request #6729 from akva2/norne_pass_num_procs
pass number of procs to plotting script
2026-01-13 17:15:21 +01:00
Arne Morten Kvarving 28a8a1cdfb pass number of procs to plotting script 2026-01-13 14:27:02 +01:00
Michal Tóth 6486d30dcd Bugfix: enable diagonal solve 2026-01-13 12:10:45 +01:00
Bård Skaflestad 4e3b17f5a0 Merge pull request #6519 from ElyesAhmed/eqLOPT3-tilt
Support Cell Subdivision in Tilted Geometry Equilibration
2026-01-13 11:35:08 +01:00
ElyesAhmed bd150f022a Update InitStateEquil_impl.hpp
fix cmath include
2026-01-13 10:33:23 +01:00
Bård Skaflestad 0b6613dd41 Merge pull request #6727 from GitPaean/gcon_vrep
Check phase activity before querying active phase index when calculating the group injecting VREP target.
2026-01-13 10:17:18 +01:00
Arne Morten Kvarving 052015c4c8 Merge pull request #6726 from akva2/cppcheck_ignore_list
add cppcheck ignore list
2026-01-13 10:13:23 +01:00
Kai Bao 29f747f079 Check phase activity before querying active phase index
when calculating the group injecting VREP target.
2026-01-12 22:56:14 +01:00
Arne Morten Kvarving f03d351343 add cppcheck ignore list
running cppcheck on these files takes 30h on the ci server.
cost outweighs benefit
2026-01-12 15:37:19 +01:00
Elyes Ahmed 894222ef54 fix deduction failures and declarations 2026-01-12 14:26:30 +01:00
Tor Harald Sandve c8045c9998 Merge pull request #6697 from totto82/1p_osc
Also detect Oscillations if only for single component
2026-01-12 10:12:06 +01:00
Elyes Ahmed 0c8a1fe22c using std:hypot for norms 2026-01-12 09:50:36 +01:00
Elyes Ahmed 98c6bcaf80 The new methods subdivides each cell into upper and lower halves like for N<0.
We need cross-section areas and vertical depth (TVD) for titled grid
TVD is computed rather using cell depth
TVD = reference_depth + (z - reference_z) * cos(dipAngle)   + lateral_distance * sin(dipAngle) * cos(azimuth_difference)
dip-angle is computed from cell corner geometry via normal vector cross product, providing both dip angle and azimuth vector
2026-01-12 09:50:36 +01:00
Elyes Ahmed 4c5c4a4d4e Simple and Accurate Methods
For the simple we assume areas uniformly change with depth : A(z) = Area/cos(θ)
Weight approximating  1/cos(θ)
where dip-angle is computed from cell corner geometry via normal vector cross product, providing both dip angle and azimuth vector

For the accurate method we compute cross-section areas using shoelace formula: A(z) = sum_ij (xj*yj+1 − xj+1*yj)
Weight is then w = A(z)*∆zi
2026-01-12 09:50:36 +01:00
Markus Blatt da457c0aa4 Merge pull request #6304 from aritorto/addGRtest
Add run simulator for CARFIN, refine entire grid
2026-01-09 15:36:33 +01:00
Antonella Ritorto 10036150b7 Add run simulator for CARFIN, refine entire grid 2026-01-09 15:08:57 +01:00
Håkon Hægland 356574bd5e Merge pull request #6719 from hakonhagland/phase_ref
Fix dangling reference in InjectionTargetCalculator
2026-01-09 12:11:37 +01:00
Håkon Hægland 5fd90634ed Fix dangling reference in InjectionTargetCalculator
Store injection_phase by value instead of by reference to prevent
dangling reference when the calculator is returned from a function.

The previous code stored a const reference to the Phase parameter,
which works when the calculator is constructed and used within the
same scope (e.g., in GroupStateHelper::checkGroupConstraintsInj).
However, when the calculator is returned from a e.g a function
the temporary Phase value passed to the constructor is destroyed, leaving
a dangling reference that can cause undefined behavior.
2026-01-09 11:35:11 +01:00
Bård Skaflestad 07385a396e Merge pull request #6718 from akva2/hybrid_newton_no_tensorflow
HybridNewton: no longer requires tensorflow
2026-01-09 11:33:59 +01:00
Bård Skaflestad 69f771a6cc Merge pull request #6717 from akva2/serialized_ilu
use ilu in serialize restart test
2026-01-09 11:33:21 +01:00
Arne Morten Kvarving d51ed2603d HybridNewton: no longer requires tensorflow 2026-01-09 11:16:37 +01:00
Arne Morten Kvarving 1bbb649359 use ilu in serialize restart test
the reuse of operators in cprw lead to differences since
we end up with different preconditioners in the two runs
2026-01-09 08:56:12 +01:00
Tor Harald Sandve 243f8fc69d Merge pull request #6703 from hakonhagland/ghc_test
Extend group constraint tests with multi-group hierarchy
2026-01-09 08:52:21 +01:00
Tor Harald Sandve 782bde2982 Merge pull request #6098 from totto82/stdW_inner
Also solve std for every inner iterations as default
2026-01-08 14:41:13 +01:00
Atgeirr Flø Rasmussen 5276fdbd5b Merge pull request #6716 from daavid00/warnings
Fix warnings for builds with -DWITH_NDEBUG=1
2026-01-08 13:07:59 +01:00
David Landa Marban 71c48581c6 Fix warnings for builds with -DWITH_NDEBUG=1 2026-01-08 10:42:49 +01:00
Bård Skaflestad 5be7d53bef Merge pull request #6715 from bska/revise-summary-eval-api
Chase Summary::Eval() API Change
2026-01-07 12:32:30 +01:00
Bård Skaflestad 04af1c78da Chase Summary::Eval() API Change
In particular, switch to passing a collection of pointers through
the Summary::DynamicSimulatorState object instead of passing
references to individual state objects.  This is in preparation of
adding more state objects, in particular for summary quantities at
the region level without having to pay a large API cost for each of
those.

To this end also switch the output module's initialInPlace()
function to returning a pointer--with nullptr being "no such
value"--instead of a reference to an optional<>.
2026-01-07 11:26:43 +01:00
Atgeirr Flø Rasmussen b3c54790d4 Merge pull request #6682 from totto82/norm_temp
Scale energy norm with time and pore-volume
2026-01-06 22:13:09 +01:00
Tor Harald Sandve d797881c2b Scale energy norm with time and porevolume 2026-01-06 14:57:03 +01:00
Bård Skaflestad d7b5c8e49a Merge pull request #6714 from bska/no-np8-tests-if-insufficient-hardware
Add Parallel Tests Only if Sufficient System CPUs
2026-01-06 12:12:54 +01:00
Bård Skaflestad d0e2821ee2 Add Parallel Tests Only if Sufficient System CPUs
In particular, don't register a parallel test into the test suite if
the local computer system does not have at least as many CPU cores
as requested by the specific test.  We might for instance be running
on an older or lower-end laptop and don't want to confuse the user
by false negative test failures.

As an example, the SPE9_CP_SHORT+8 test (PR #6232) requires a system
with at least eight CPUs which is not always available.
2026-01-06 11:32:26 +01:00
Tor Harald Sandve 5509deb543 Merge pull request #6684 from totto82/drift_temp2
Add option for drift compensation for TEMP
2026-01-06 09:53:56 +01:00
Tor Harald Sandve 1fb7eb9a1f Add option for drift compensation for TEMP
Compensate for mass loss in the energy equation to avoid unphysical temperatures
Activated by default --enable-droft-compensation-temp (Default = true)
2026-01-05 12:58:07 +01:00
Håkon Hægland f884b31c38 Merge pull request #6712 from hakonhagland/cmake_python_tests
Add python_tests target and test fixtures for Python tests
2026-01-05 11:12:39 +01:00
Bård Skaflestad 5590180092 Merge pull request #6713 from akva2/absolute_revs
add support for absolute revisions
2026-01-05 10:56:56 +01:00
Arne Morten Kvarving 727abede2c add support for absolute revisions 2026-01-05 09:17:16 +01:00
Håkon Hægland 044e6a700b Add python_tests target and test fixtures for Python tests
Add CMake infrastructure to simplify building and running Python tests:

- Add `python_tests` target: builds only Python modules and test files
  Usage: `ninja python_tests`

- Add test fixtures: running `ctest -R python_basic` now automatically
  builds the required Python modules first via FIXTURES_REQUIRED

This allows one to quickly iterate on Python tests without building
unrelated C++ test binaries.
2026-01-05 08:54:17 +01:00
Håkon Hægland c442f2da69 Cleanup 2026-01-04 10:39:19 +01:00
Håkon Hægland 70096bec80 Extend group constraint tests with multi-group hierarchy
This commit extends the test_group_higher_constraints test suite with:

1. Extended hierarchy: Added MANI-2 group (with WELL-B) under PLAT to
   create realistic group competition scenarios where fractions < 1.0.
   The new hierarchy is:

     FIELD -> PLAT -> MANI -> WELL-A, WELL-A2
                   -> MANI-2 -> WELL-B
           -> PLAT-2 -> WELL-C

2. New tests for getWellGroupTargetProducer():
   - TestWellGroupTargetProducerIndividualControl: WELL-A under ORAT
   - TestWellGroupTargetProducerGrupControl: WELL-A under GRUP
   - TestWellGroupTargetProducerWithSiblingIndividualControl: WELL-A
     under GRUP with sibling WELL-A2 under ORAT (demonstrates case
     where reduction != addback)

3. Updated existing tests:
   - TestGroupHigherConstraintsWithGuideRate: scale now 0.922 (was 1.39)
   - TestGroupHigherConstraintsProdWithoutGuideRate: scale now 0.901
2026-01-03 16:30:09 +01:00