Commit Graph
24610 Commits
Author SHA1 Message Date
Arne Morten Kvarving 3856715bcc HypreCpuTransfers: split in two files
cpu code in linalg/hypreinterface, gpu code in
linalg/gpuistl/hypreinterface
2026-05-18 09:44:39 +02:00
Arne Morten Kvarving 79be046813 HypreErrorHandling: move out of gpuistl
put in new folder/namespace linalg/hypreinterface
2026-05-18 09:28:11 +02:00
Arne Morten Kvarving 7b2ad981bb HypreDataStructures: move out of gpuistl
put in new folder/namespace linalg/hypreinterface
2026-05-18 09:22:14 +02:00
Arne Morten Kvarving 9be8d7e55e HypreUtils: move out of gpuistl
put in new folder/namespace linalg/hypreinterface
2026-05-18 09:08:42 +02:00
Bård Skaflestad 70e938a414 Merge pull request #7050 from akva2/dev_simulators
Add option to use the development simulator binaries (e.g. flow_blackoil) in regression tests
2026-05-15 14:54:29 +02:00
Arne Morten Kvarving b7b1db57b0 add dev_simulator to all damaris tests 2026-05-15 11:11:27 +02:00
Arne Morten Kvarving 0cbe605699 add option to use development simulator binaries in damaris tests 2026-05-15 11:11:27 +02:00
Arne Morten Kvarving 495c4c0eea add dev_simulator to all split comm tests 2026-05-15 11:11:27 +02:00
Arne Morten Kvarving 2f8e900909 add option to use development simulator binaries in split comm tests 2026-05-15 11:11:27 +02:00
Arne Morten Kvarving b73789cedf add dev_simulator to all comparison tests 2026-05-15 11:11:27 +02:00
Arne Morten Kvarving a5407b87f5 add option to use development simulator binaries in comparison tests 2026-05-15 11:11:27 +02:00
Arne Morten Kvarving a387877b8a add dev_simulator to all parallel restart tests 2026-05-15 11:11:27 +02:00
Arne Morten Kvarving a87457e16b add option to use development simulator binaries in parallel restart tests 2026-05-14 13:45:06 +02:00
Arne Morten Kvarving 011c230d9b add dev_simulator to all parallel tests 2026-05-14 13:45:06 +02:00
Arne Morten Kvarving a51b1890eb add option to use development simulator binaries in parallel tests 2026-05-14 13:45:06 +02:00
Arne Morten Kvarving b3a7d705ad add dev_simulator to all restart tests 2026-05-14 13:45:06 +02:00
Arne Morten Kvarving dad4b2da60 add option to use development simulator binaries in restart tests 2026-05-14 13:45:06 +02:00
Arne Morten Kvarving a12d251033 add dev_simulator to all runSimulator tests 2026-05-14 13:45:06 +02:00
Arne Morten Kvarving 18dc94b478 add option to use development simulator binaries in simulator run tests 2026-05-14 13:45:06 +02:00
Arne Morten Kvarving 274ad770a0 add dev_simulator to all regression tests 2026-05-14 13:45:06 +02:00
Arne Morten Kvarving 8a94bbc5f5 add option to use development simulator binaries in regression tests 2026-05-13 13:45:40 +02:00
Bård Skaflestad bc0626acff Merge pull request #7045 from GitPaean/allow_default_values
defaulted item values should be allowed for partially supported keywords
2026-05-12 09:26:59 +02:00
Kai Bao 98f9c665d9 defaulted item values should be allowed
for partially supported keywords.
2026-05-11 23:07:27 +02:00
Atgeirr Flø Rasmussen 63a05a4cf4 Merge pull request #7037 from multitalentloes/extract_gaswatertypetag
extract gaswater typetag info from cpp
2026-05-07 10:59:19 +02:00
Bård Skaflestad 33efbc9f1f Merge pull request #7040 from multitalentloes/remove_amg_macro
remove unused AMG macros
2026-05-07 10:46:55 +02:00
Tobias Meyer Andersen 3071269b64 remove unused AMG macros 2026-05-07 10:26:23 +02:00
Atgeirr Flø Rasmussen a0dc8b1ff3 Merge pull request #7036 from atgeirr/unify-gitignore
Unify .gitignore files.
2026-05-06 15:13:39 +02:00
Tobias Meyer Andersen 96d028f3af update cmake 2026-05-06 13:29:32 +02:00
Bård Skaflestad fb979cb5c3 Merge pull request #7035 from atgeirr/add-more-tracy-hooks
Add more tracy hooks
2026-05-05 17:17:55 +02:00
Bård Skaflestad be161f7d74 Merge pull request #7032 from GitPaean/scalar_getFirstPerforationFluidStateInfo
not using Evaluation for saltConcentration for getFirstPerforationFluidStateInfo()
2026-05-05 17:11:49 +02:00
Atgeirr Flø Rasmussen 8a3c342c8a Unify .gitignore files. 2026-05-05 15:24:05 +02:00
Atgeirr Flø Rasmussen 3252e487e4 Add some extra profiling blocks 2026-05-05 14:29:10 +02:00
Atgeirr Flø Rasmussen 26bd980e3d Speedup communication by doing single sum(). 2026-05-05 14:29:10 +02:00
Atgeirr Flø Rasmussen 390e807aa3 Add some more high-level tracy hooks.
Mostly for looking at TemperatureModel performance.
No hooks in inner loops (cell or connection loops), so runtime with tracy
active should be very close to without.
2026-05-05 11:51:00 +02:00
Bård Skaflestad 19d3256a24 Merge pull request #7034 from akva2/no_warning_parmetis_serial
fixed: do not print warning about missing ParMETIS in serial builds
2026-05-05 09:32:41 +02:00
Tobias Meyer Andersen c9cd630a25 Merge pull request #7027 from kjetilly/intensive_quantities_2
GPU portability: OPM_HOST_DEVICE/OPM_THROW additions and fluidSystem() use
2026-05-05 09:27:44 +02:00
Arne Morten Kvarving bae64e9121 fixed: do not print warning about missing ParMETIS in serial builds 2026-05-05 08:52:30 +02:00
Kjetil Olsen Lye b2ca7e8769 GPU portability: OPM_HOST_DEVICE/OPM_THROW additions and fluidSystem() use
Decorates inline helpers in blackoil*modules.hh, blackoilprimaryvariables.hh,
directionalmobility.hh, tpfalinearizer.hh, NewTranFluxModule.hpp,
TemperatureModel.hpp and BlackOilEnergyIntensiveQuantitiesGlobalIndex.hpp
with OPM_HOST_DEVICE, replaces a few raw `throw`s with OPM_THROW, and
switches static `FluidSystem::` accesses to instance-based
`fluidState.fluidSystem()` / `getFluidSystem()` so the same code works
when the fluid system lives on the device.  Test
test_gpu_linear_two_phase_material.cu picks up the matching template
adjustments.
2026-05-05 07:55:21 +02:00
Tobias Meyer Andersen b5d83be5d8 Merge pull request #7026 from kjetilly/intensive_quantities_1
gpu_smart_pointer: extend GPU smart-pointer utilities
2026-05-04 16:22:22 +02:00
Kai Bao a2e584a0ed not using Evaluation for saltConcentration for getFirstPerforationFluidStateInfo
its derivative should not be used anyway.
2026-05-04 15:32:02 +02:00
Tobias Meyer Andersen 8096d5ba32 Remove unneeded preprocessor guard 2026-05-04 14:55:40 +02:00
Tor Harald Sandve 42990edc31 Merge pull request #7025 from hakonhagland/fix_mg_gr_dist2
Reservoir coupling: Cap master-group targets at slave potential
2026-05-04 10:36:05 +02:00
Håkon Hægland f61b1c1163 Cap RC master-group targets at slave potential
When a reservoir-coupling master group's guide-rate-distributed
production target exceeds the slave's reported potential, the slave
cannot deliver the requested rate and the shortfall is lost from the
parent group's total.  Cap each capacity-limited group's target at
the slave's potential and redistribute the surplus to sibling master
groups via the standard FractionCalculator / localReduction
machinery, so the parent (typically FIELD) can still meet its
overall target.

The redistribution is implemented in
RescoupConstraintsCalculator::calculateMasterGroupConstraintsAndSendToSlaves
and is structured as four phases:

  Pre-phase: restore master-group control modes from the Schedule
    (restoreMasterGroupControlsFromSchedule_); switch master groups
    of inactive slaves to individual control so they do not consume
    a share of the parent's target
    (excludeInactiveSlaveMasterGroupsFromDistribution_); recompute
    GCW and FIELD target reduction (updateGCWAndTargetReductions_).

  Phase 1: compute initial guide-rate-distributed targets per
    master group via GroupConstraintCalculator.

  Phase 2: cap-and-redistribute.  Groups whose target exceeds the
    slave-reported potential are capped, switched to individual
    control, and the FIELD reduction is recomputed.  Uncapped
    groups are then re-evaluated and absorb the surplus.  Finally
    all master groups are switched to individual control with their
    final allocated targets.

  Phase 3: send the (target, cmode, per-rate-type limits) triples
    to each activated slave.

The driver runs on every rank of the master communicator: its
helpers call collective MPI operations
(updateGroupControlledWells does comm_.sum, GroupConstraintCalculator
and updateGroupTargetReduction walk GroupStateHelper which is
collective).  The slave-facing MPI sends in
sendSlaveGroupConstraintsToSlave_ are rank-0-only inside the
underlying helpers, so the Phase-3 loop is safe to enter from every
rank.  A trailing GroupState::communicate_rates(comm) aggregates any
per-rank-partial reduction rates so the post-redistribution state is
consistent across master ranks.

Supporting changes:

* GroupStateHelper::updateGroupControlledWells -- conditional GCW
  for master groups: GCW=1 under FLD/NONE control, GCW=0 under
  individual control.  Without this the calculator cannot
  distinguish between capped groups (excluded from distribution)
  and uncapped groups (absorbing the surplus).

* BlackoilWellModel::updateGroupControls -- guard at the top that
  skips master groups, plus a new isReservoirCouplingMasterGroup
  forwarding method on the RescoupProxy facade.  Master-group
  controls and targets must be read-only outside the constraint
  calculator; the guard prevents checkGroupHigherConstraints and
  updateGroupIndividualControl from modifying them during the
  assemble() Newton iteration.

Known limitations, deferred to follow-up work:

* A master group with GCONPROD CONTROL_MODE set to a
  rate mode (ORAT, WRAT, ...) AND RESPOND_TO_PARENT = YES has both
  an own rate limit and parent control available.  The current GCW
  logic returns 0 in this case and excludes the group from the
  FractionCalculator guide-rate sum, so Phase 1's localFraction
  yields a wrong target.  Typical RC setups have master groups
  acting as pure routing nodes (CONTROL_MODE = FLD or NONE) and are
  unaffected.

* Injection -- the cap-and-redistribute pass currently applies only
  to production master groups.  Per-phase injection extension
  requires a slave-reported injection potential on
  SlaveGroupInjectionData (currently absent) plus the parallel set
  of helpers.

* Finished slaves -- the inactive-slave handling covers only the
  not-yet-activated case.  A slave run can finish before the master;
  detecting that finish is a separate PR with its own MPI-protocol
  changes.
2026-05-01 08:20:37 +02:00
Kjetil Olsen Lye 1ce9999f45 gpu_smart_pointer: extend GPU smart-pointer utilities
Adds host-side allocator helpers, host/device-decorated raw-pointer
accessors and small additions to MiniVector that the rest of the GPU
intensive-quantities work depends on.  Updates test_gpu_smart_pointers.cu
to cover the new behaviour.
2026-04-30 20:50:30 +00:00
Bård Skaflestad 0116ca6531 Merge pull request #7022 from GitPaean/correcting_EQUIL_support
updating the EQUIL keyword item names in PartiallySupportedFlowKeywords
2026-04-30 15:52:43 +02:00
Kai Bao ed25b00a54 Merge pull request #7024 from GitPaean/linearsolver_injectivity
fall back to use ilu0 preconditioner for polymer injectivity run instead of throw
2026-04-30 15:47:35 +02:00
Kai Bao 8e1d439515 fall back to use ilu0 preconditioner for polymer injectivity run
instead of throw, so that those cases can be run with default
parameters.
2026-04-30 14:49:02 +02:00
Kjetil Olsen Lye 49dc9bcb18 Basic .clang-tidy and recommendation to use it (#7023)
* Added .clang-tidy

* Added description in CONTRIBUTION.md
2026-04-30 13:52:56 +02:00
Kai Bao c67ad2bea6 updating the EQUIL keyword item names in PartiallySupportedFlowKeywords 2026-04-29 22:54:02 +02:00
Bård Skaflestad 04873a8eb9 Merge pull request #7019 from GitPaean/DEBUGLOG_co2_ptflash_ecfv
Add DEBUGLOG backend to PTFlash example co2_ptflash_ecfv
2026-04-29 14:05:49 +02:00