Commit Graph
23762 Commits
Author SHA1 Message Date
Arne Morten Kvarving bf64b4310a bump minimum cmake version to 3.23
common buildsystem now uses file sets
2026-01-22 12:56:16 +01:00
Håkon Hægland 1ae9d880ca Merge pull request #6737 from hakonhagland/gconsump_eff
Fix GCONSUMP efficiency factor application
2026-01-22 12:23:07 +01:00
Markus Blatt 5b942ef9cb Merge pull request #6709 from hakonhagland/gcw_auto_choke
Refactor auto choke group controlled wells exclusion logic in GroupStateHelper
2026-01-22 10:32:19 +01:00
Håkon Hægland 14d178952a Merge pull request #6746 from hakonhagland/ctest_err_msg
Improve error message for missing simulator binary in regression tests
2026-01-22 10:17:57 +01:00
Håkon Hægland 3903701283 Also suggest cmake tool abstraction
Also suggest build with cmake tool abstraction command line
2026-01-21 15:55:28 +01:00
Håkon Hægland 6fd1142db5 Improve error message for missing simulator binary in regression tests
Add a check in run-regressionTest.sh that provides a clear error message
with build instructions when the simulator binary is not found.
2026-01-21 15:31:03 +01:00
Bård Skaflestad 3e7575c0c4 Merge pull request #6743 from akva2/fix_installation_hip_headers
fix installation paths for generated headers
2026-01-21 15:22:44 +01:00
Håkon Hægland 327dcd5a3c Make GCONSUMP test DATA files runnable with flow simulator
Update GCONSUMP.DATA and GCONSUMP_COMPLEX.DATA to be valid input for
full simulation runs while preserving their unit test functionality:

- Fix EQUIL datum depth to match gas-oil contact (7020 → 7000)
- Fix PVTO bubble point relationship (Rs/Pbub must be monotonic)
- Extend PVDG pressure range to cover reservoir pressure (→ 300 bar)
- Adjust SGOF Sg_max to avoid floating-point SOGCR precision issue
2026-01-21 14:58:28 +01:00
Bård Skaflestad 3d27706e57 Merge pull request #6745 from akva2/bump_c11
remove C99 package
2026-01-21 13:15:12 +01:00
Arne Morten Kvarving 4e97ecfdb9 remove C99 package 2026-01-21 11:45:28 +01:00
Arne Morten Kvarving abbc57dfb6 Merge pull request #6744 from akva2/fix_python_tests_data_race
python tests: add output-dir parameters
2026-01-21 11:03:48 +01:00
Arne Morten Kvarving 43f03706ad python tests: add output-dir parameters
avoid races on the UNRST file when tests run in parallel
2026-01-21 10:28:24 +01:00
Arne Morten Kvarving 3b4e281e89 fix installation paths for generated headers 2026-01-21 09:56:21 +01:00
Arne Morten Kvarving a61eaa40f5 Merge pull request #6738 from akva2/message_file_in_workspace
put message file in workspace
2026-01-20 13:02:28 +01:00
Arne Morten Kvarving 65bcf659e5 Merge pull request #6739 from akva2/disable_cartgrid_gr
disable cartgrid_gr test
2026-01-20 11:56:49 +01:00
Arne Morten Kvarving c6d736f6ec disable cartgrid_gr test
it causes oob memory accesses and thus nondeterministic behavior.
2026-01-20 11:36:02 +01:00
Arne Morten Kvarving 59a95f6ac7 put message file in workspace
/tmp is not the same when built in docker
2026-01-20 10:59:10 +01:00
Håkon Hægland f1510deb50 Fix GCONSUMP efficiency factor application
The GCONSUMP efficiency factor calculation was incorrectly applying group
efficiency factors to the groups themselves, rather than following the
the pattern used elsewhere in the code base:
  - Groups are NOT affected by their own efficiency factors
  - Parent groups apply child efficiency factors when accumulating contributions

Changes:
  - Fix GroupState::update_gconsump() to implement correct efficiency pattern
  - Add test suite with simple and complex hierarchy scenarios
2026-01-20 09:28:36 +01:00
Markus Blatt dbaaf241a2 Merge pull request #6710 from hakonhagland/gs_target_refact
Refactor target calculation in GroupStateHelper into helper methods
2026-01-19 16:55:59 +01:00
Markus Blatt 1bc2fd8637 Merge pull request #6704 from hakonhagland/rc_fix_sync
Reservoir Coupling: Fix sync of group data to only occur on first substep
2026-01-19 16:43:14 +01:00
Bård Skaflestad 3a344d7762 Merge pull request #6736 from akva2/janitoring_clang
remove unused lambda captures
2026-01-19 15:47:18 +01:00
Arne Morten Kvarving f7cf7d83fc remove unused lambda captures 2026-01-19 14:31:55 +01:00
Håkon Hægland 4f9bd3b471 Clarify comment 2026-01-19 12:18:08 +01:00
Håkon Hægland bb59fa82d1 Condensing and polishing comment wordings 2026-01-19 11:36:14 +01:00
Håkon Hægland e2c0f9d473 Merge pull request #6734 from hakonhagland/ucgd_deflog
Remove deferred_logger from updateAndCommunicate()
2026-01-19 08:48:26 +01:00
Tor Harald Sandve 77a05c23c8 Merge pull request #6725 from totto82/gsatprod6
accumulate satellite production/gaslift in gaslift code
2026-01-19 08:16:51 +01:00
Håkon Hægland 7f288000e2 Remove deferred_logger from updateAndCommunicate()
Removed deferred_logger parameter from updateAndCommunicate() and
updateAndCommunicateGroupData()
2026-01-17 06:15:44 +01:00
Håkon Hægland 8b2d3815f9 Fix rebase issues 2026-01-16 17:02:27 +01:00
Håkon Hægland a207ee3ac0 Refactor target calculation in GroupStateHelper into helper methods
Extract duplicated target calculation algorithm from four methods
into two reusable helper methods:

- getLocalReductionLevel_(): Finds the deepest level in the group chain
  where a group has both a guide rate and group-controlled wells (GCW > 0)

- applyReductionsAndFractions_(): Applies local reductions, add-back
  (when applicable), and guide rate fractions to calculate the portion
  of a top-level group target assigned to a bottom group

The refactored methods are:
- checkGroupConstraintsInj()
- checkGroupConstraintsProd()
- getWellGroupTargetInjector()
- getWellGroupTargetProducer()

This is a pure refactoring with no functional change. The helper methods
use templates for the reduction and fraction lambdas to avoid std::function
overhead in case of performance-critical code.
2026-01-16 16:54:34 +01:00
Håkon Hægland 75b00ea4f3 Refactor auto choke GCW exclusion logic in GroupStateHelper
Move the auto choke exclusion logic out of the well loop in
updateGroupControlledWellsRecursive_() and into a new helper method
isAutoChokeGroupUnderperforming_(). The calculation determines whether
to exclude all wells in an auto choke group from the Group Controlled
Wells (GCW) count based on whether the group is meeting its target rate.

The original code recalculated this group-level decision redundantly
for each well in the loop, even though the result is the same for all
wells. The refactored code computes it once before the loop.

This is a pure refactoring with no functional change.
2026-01-16 16:36:40 +01:00
Atgeirr Flø Rasmussen cdc61cefd2 Merge pull request #6705 from hakonhagland/deflog
Refactor DeferredLogger as a mutable pointer into GroupStateHelper
2026-01-16 16:04:30 +01:00
Tor Harald Sandve 28ae2158d8 add GSATPROD6 as parallel test 2026-01-16 13:38:06 +01:00
Tor Harald Sandve f11647bcf0 Add GSATPROD 6 as regression test 2026-01-16 10:54:06 +01:00
Tor Harald Sandve 3e0976af4b Add satelite production to network rates (also compute for groups with zero wells) 2026-01-16 10:12:47 +01:00
Tor Harald Sandve 53ad152929 accumulate satelite gaslift in network model 2026-01-16 09:17:09 +01:00
Tor Harald Sandve cf2a262b10 accumulate satelite production/gaslift in gaslift code 2026-01-16 09:17:09 +01:00
Bård Skaflestad cd78cb9790 Merge pull request #6731 from akva2/janitoring
add missing include
2026-01-15 16:36:47 +01:00
Arne Morten Kvarving f0a9e26f02 add missing include 2026-01-15 15:12:11 +01:00
Håkon Hægland 30fcf3b8a3 Use group state helper logger
Use groupStateHelper logger instead of creating an explicit logger.
2026-01-15 09:09:11 +01:00
Håkon Hægland 4b0d7dee7c Remove unused loggers 2026-01-15 09:05:49 +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
Håkon Hægland e5e589f54b Always extract the logger from groupStateHelper
Don't create extra deferred loggers that do not match
the logger in groupStateHelper
2026-01-14 09:49:36 +01:00