Commit Graph
8077 Commits
Author SHA1 Message Date
Tor Harald Sandve 208c266e8e Some more minor speedup 2026-02-18 11:31:27 +01:00
Tor Harald Sandve bf1013cee5 Store and use thermalHalfTransmissbilities from nbInfo 2026-02-18 11:31:27 +01:00
Tor Harald Sandve d853e349b5 compute well temperature in TEMP module 2026-02-18 11:31:27 +01:00
Tor Harald Sandve 7155ab4c70 reuse darcy flux in temperatureModule 2026-02-18 11:31:27 +01:00
Tor Harald Sandve 26d5a3497f Speedup the temperature module
- Use its own fluidstate and Evaluation class to avoid having to add an extra derivative to the main equations
- Sotre the scaling factor to avoid calling the parameter all the time
2026-02-18 11:31:27 +01:00
Bård Skaflestad 858eb9298d Merge pull request #6832 from akva2/mark_fmt_strings_runtime_nvcc
mark format string as runtime
2026-02-18 09:10:21 +01:00
Atgeirr Flø Rasmussen 7d6feee0d9 Merge pull request #6676 from multitalentloes/make_newtranfluxmodule_gpu_friendly
make more files gpu-compatible
2026-02-18 08:47:36 +01:00
Tobias Meyer Andersen c828cb37bb add empty() to views 2026-02-17 16:28:21 +01:00
Kai Bao 464aa27674 Merge pull request #6836 from GitPaean/not_setting_FLD_to_NONE
not setting FLD to be NONE for group
2026-02-17 15:53:49 +01:00
Arne Morten Kvarving 13c195ac39 mark format string as runtime 2026-02-17 15:41:14 +01:00
Tobias Meyer Andersen 1f7b248016 Merge pull request #6670 from multitalentloes/add_reset_to_gpu_matrices
Add reset to gpu matrices
2026-02-17 15:14:16 +01:00
Bård Skaflestad 08c25aebab Merge pull request #6833 from hakonhagland/fix_ac_comm_sum
Fix missing communication in auto choke underperformance check
2026-02-17 14:57:20 +01:00
Håkon Hægland 818a33ce17 Fix missing communication in auto choke underperformance check
sumWellSurfaceRates() only returns rank-local rates, but
isAutoChokeGroupUnderperforming_() compared them directly against the
full group target. Add comm_.sum() to aggregate rates across all ranks
before the comparison.
2026-02-17 14:22:33 +01:00
Tobias Meyer Andersen bb7a3c15a8 renamme resetMatrix() 2026-02-17 14:08:34 +01:00
Kai Bao 5bf33bd753 not setting FLD to be NONE for group
since SingleWellState::GroupTarget does not get group target from a
group under FLD control.
2026-02-17 14:03:19 +01:00
Tor Harald Sandve a539d10330 Merge pull request #6805 from totto82/outher_network_iter
dont add outer network iter for ctrl change
2026-02-17 11:14:57 +01:00
Arne Morten Kvarving 3d08f3bb96 remove unused variable 2026-02-17 10:55:58 +01:00
Tor Harald Sandve 6d3c77344f Merge pull request #6813 from totto82/fixTEMPdisc
Only use bhp well temperature for RESV calculations for THERMAL not TEMP
2026-02-16 14:36:24 +01:00
Atgeirr Flø Rasmussen bfaf9aa07a Merge pull request #6796 from totto82/store_rock_fraction
Store rock fraction in problem
2026-02-16 12:47:33 +01:00
Tor Harald Sandve d1604b4279 Store rock fraction in problem 2026-02-16 12:25:01 +01:00
Atgeirr Flø Rasmussen 538788f7e0 Merge pull request #6779 from jakobtorben/fix_bug_in_nldd_relaxed_tolerance
Fix bug in NLDD relaxed tolerance logic
2026-02-13 14:03:12 +01:00
Håkon Hægland 0b5342fa7e Fix serial (non-MPI) build for reservoir coupling
Guard RateKind usage with #ifdef RESERVOIR_COUPLING_ENABLED in
GroupStateHelper declaration, call site, and implementation. In
serial builds, ReservoirCoupling.hpp is not included so RateKind
is not declared.

Add missing isSlaveGroup() stub to the non-MPI RescoupProxy,
matching the existing isMasterGroup() stub.
2026-02-13 13:30:54 +01:00
Markus Blatt bd7404482f Merge pull request #6732 from hakonhagland/mg_gpmaint
Reservoir coupling: Mark GPMAINT unsupported for master/slave groups
2026-02-13 11:15:52 +01:00
Bård Skaflestad 22803ee245 Merge pull request #6825 from akva2/fix_rocm_build
fix breakage for gpu bridge with no cuda
2026-02-13 09:55:24 +01:00
Arne Morten Kvarving d3ddee8f55 fix breakage for gpu bridge with no cuda 2026-02-13 09:19:59 +01:00
Håkon Hægland b955b5bc8f Defer GPMAINT throw to parallel sync point
Wrap the updateGpMaintTargetForGroups() call in a try/catch using
OPM_PARALLEL_CATCH_CLAUSE so that the GPMAINT-unsupported error
is catched before any collective operation in case the throw
were ever to fire on only some ranks.
2026-02-12 17:37:33 +01:00
David Landa Marban 42eebc0bac Addressing review 2026-02-12 15:23:00 +01:00
David Landa Marban e453c4c74c BFLO[G|O|W][I|J|K][|-] summary keywords 2026-02-12 14:54:25 +01:00
Håkon Hægland c72dc16ece Mark GPMAINT unsupported for master/slave groups 2026-02-12 14:28:14 +01:00
Håkon Hægland e996f0d373 Replace bool parameters with RateKind enum in reservoir coupling rate getters
The three bool parameters (res_rates, is_injection, network) had only 5 valid
combinations out of 8 possible. The new ReservoirCoupling::RateKind enum
names these directly, preventing invalid states and improving readability.
2026-02-12 14:27:49 +01:00
Håkon Hægland d3ce1b5a26 Add network surface rates to slave group production data for reservoir coupling
When updateNetworkLeafNodeProductionRates() calls sumWellPhaseRates() with
network=true for a master group, the network parameter was previously ignored.
The slave always computed rates with network=false, so efficiency factors were
applied even when GEFAC/WEFAC item 3 is "NO".

This commit adds a new field `network_surface_rates` to SlaveGroupProductionData
that contains rates computed with network=true (where efficiency factors are 1.0
for groups/wells with GEFAC/WEFAC item 3 = "NO").

Changes:
- Add network_surface_rates field to SlaveGroupProductionData struct
- Update MPI traits to serialize the new field
- Add collectSlaveGroupNetworkSurfaceProductionRates_() on slave side
- Pass network parameter through getReservoirCouplingMasterGroupRate_()
- Add getMasterGroupNetworkProductionSurfaceRate() to retrieve network rates
2026-02-12 14:27:49 +01:00
Håkon Hægland e3b626b61a Fix HDF5 compile error with serial HDF5 + MPI
Guard parallel HDF5 calls (H5Pset_fapl_mpio, H5Pset_dxpl_mpio) with
H5_HAVE_PARALLEL in addition to HAVE_MPI. The existing HAVE_MPI guard
is insufficient because MPI availability does not imply HDF5 was built
with parallel support. When only serial HDF5 is installed, these
functions are not declared (hidden behind #ifdef H5_HAVE_PARALLEL in
H5FDmpio.h), causing a compile error.

The CMake safety check in opm-simulators_prereqs_hook that should
disable HDF5 in this scenario runs before find_package(HDF5), so it
never fires on a fresh build.
2026-02-12 13:11:54 +01:00
Markus Blatt fdae7bdef1 Merge pull request #6781 from hakonhagland/fix_rc_log_msgs
Improve reservoir coupling log readability
2026-02-12 09:23:07 +01:00
Tor Harald Sandve d1cc27928c Only use bhp well temperature for RESV calculations for THERMAL not TEMP 2026-02-11 08:34:40 +01:00
Kai Bao 85af872630 remove the usage of Schedule::filterConnections() 2026-02-06 10:17:07 +01:00
Håkon Hægland 71dc14aee8 Improve reservoir coupling log readability
- Add Logger::debug() method for debug-level logging
- Add formatDays() helper using unit::day for human-readable time display
- Change verbose MPI communication messages from info to debug level
  so they only appear in .DBG file, not .PRT file or stdout
- Add info-level message showing sync step coordination:
    "Choosing next sync time between master and N active slave process(es): X days"
2026-02-05 16:45:52 +01:00
Markus Blatt 857ed5b074 Merge pull request #6775 from hakonhagland/fix_mpi_disconnect
Fix MPI intercommunicator disconnect at reservoir coupling simulation end
2026-02-05 16:28:01 +01:00
Tor Harald Sandve 8197ac51ad dont add outer network iter for ctrl change 2026-02-05 10:12:20 +01:00
Kai Bao 9d8061b13d Merge pull request #6764 from GitPaean/none_group_control_throw
throw if a well under GRUP control while does not have calculated group target
2026-02-04 21:46:01 +01:00
Håkon Hægland 39633e1361 Fix MPI intercommunicator disconnect at reservoir coupling simulation end
When reservoir coupling simulation ends, the master previously crashed during
MPI_Finalize() with "ompi_dpm_dyn_finalize: error -12" because slaves
terminated before master could cleanly disconnect the intercommunicators
created by MPI_Comm_spawn().

The fix implements a synchronous terminate/continue protocol:
- Master sends terminate signal (0=continue, 1=terminate) at each iteration
- Slave does blocking receive at start of each iteration
- When master finishes, it sends terminate=1 and both sides call
  MPI_Comm_disconnect() before MPI_Finalize()
2026-02-04 10:35:42 +01:00
Håkon Hægland 11d537ed21 Merge pull request #6771 from hakonhagland/fix_master_fsos
Reservoir coupling: Add isFirstSubstepOfSyncTimestep() check for sendMasterGroupTargetsToSlaves()
2026-02-04 10:13:40 +01:00
Håkon Hægland 9d2b8174aa Merge pull request #6766 from hakonhagland/fix_logging_rank0
Reservoir coupling: Fix Logger to check for rank for OpmLog messages
2026-02-04 09:47:58 +01:00
Markus Blatt a304fdc988 Merge pull request #6765 from hakonhagland/fix_logging_rank0_2
Fix some logging fallout messages to non-zero MPI ranks
2026-02-04 08:49:32 +01:00
Markus Blatt 8b3ee3b255 Merge pull request #6762 from hakonhagland/fix_mpi_comm
Reservoir coupling: Fix MPI synchronization in receiveGroupTargetsFromMaster()
2026-02-04 08:41:24 +01:00
Arne Morten Kvarving bcec82763b fixed: move getNumThreads into TU
openmp is only enabled for the library right now, which meant
this function ended up with the wrong implementation in the
separate simulator binaries
2026-02-03 13:26:31 +01:00
Kai Bao 1fed80ab45 If a well is under GRUP control and can not calculate group target
we set it to be under BHP control. It is in line with the current
fallback to use BHP to assemble the well control equation and at the
same time, it makes the well control mode more clear.
2026-02-03 11:31:00 +01:00
Kai Bao 11c95cf224 throw if well does not have group target
if it is under GRUP control and OPEN.
2026-02-03 11:29:52 +01:00
Arne Morten Kvarving 0d44fc57cc changed: do not instance Dune::UMFPack for float
in dune 2.11 the class cannot be instanced for floats
2026-02-02 10:43:56 +01:00
Vegard Kippe 2720d54fc9 Fix RESV issue for injectors 2026-01-30 09:07:56 +01:00
Jakob Torben 2c4769845d Fix bug in NLDD relaxed tolerance logic 2026-01-28 23:28:31 +01:00