Release Highlights
- New linear solver defaults which may alter simulation results slightly, but frequently gives markedly improved computational performance, especially for CO2 storage processes
- Foundations for future experiments using the four-byte
float
type instead of the eight-bytedouble
type as the primary array element in order to save memory - Fixing two-phase gas/water and gas/oil model initialisation (equilibration)
- Additional summary vectors to better analyse CO2 storage processes, motivated by the 11th SPE comparative solutions project (https://www.spe.org/en/csp/)
- Simulator is now able to make better usage of the Damaris middleware if enabled (https://project.inria.fr/damaris/)
- Better handling of zero flow-rate targets/limits at the well and group layers
- Revised data structures and parameter tuning to better exploit GPU acceleration in the linear solver
- Initial and experimental support for compositional simulations–currently supporting 2 to 7 components
- More relaxed requirements for the non-linear domain decomposition (NLDD) solver
- Simulator now supports the
EQUALREG
keyword.
What's Changed
- Template Scalar type for well state related classes by @akva2 in #5291
- fixed: do not send and recv from same buffer by @akva2 in #5297
- WellGroupHelpers: template Scalar type by @akva2 in #5295
- Improve IDE experience by @akva2 in #5227
- BlackoilWellModel: template Scalar type by @akva2 in #5299
- BSD versions of getopt(), including macOS, require options first. by @atgeirr in #5301
- fixed: use the eclipse grid from the eclipse state in test_nonnc by @akva2 in #5304
- Redistribute gaslift for groups with alq limit by @totto82 in #5296
- Adding flowexp_blackoil by @GitPaean in #5298
- Aquifer: use Scalar type by @akva2 in #5309
- Fixes uninitialized variable warning with gcc-12 by @blattms in #5311
- FlowExp: spring cleaning by @akva2 in #5310
- Avoid getting parameters in hot path. by @atgeirr in #5318
- Add GPU Direct by @multitalentloes in #5145
- Allow Python bindings to control MPI setup in the OPM::Main constructor by @hakonhagland in #5325
- Fix gas-water initialization with transision zone by @totto82 in #5293
- Bug fix massGas in place by @daavid00 in #5324
- remove usage of thrust by @multitalentloes in #5332
- Accumulate CNV Pore-Volume Sum for Interior Cells Only by @bska in #5307
- Add parameter InputSkipMode to parameterise SKIP100 and SKIP300 by @vkip in #5329
- Bugfix: initialize the input temperature in restart run without temperature in the restart file by @totto82 in #5331
- Report CNV Violation Pore-Volume Fraction to INFOITER by @bska in #5302
- Tag 'BASIC=0' as allowed in RPTRST by @vkip in #5335
- Add HIP support by @multitalentloes in #5253
- Enforce Relaxed Tolerances Not Stricter Than Strict by @bska in #5337
- Add GMST and modify GMTR output the maximum trapped CO2 in the gas phase by @totto82 in #5344
- Reset gpmain state when rate is zero by @totto82 in #5350
- Update GMDS and GMGP definitions in GenericOutputBlackoilModule.cpp by @gdfldm in #5292
- fix typo that would cause crash cuda aware openmpi by @multitalentloes in #5368
- fixed: build with dune-fem 2.9 by @akva2 in #5363
- Rerun UDQ Assignments After Action Processing by @bska in #5330
- amgclSolverBackend: fix for block_size == 1 by @akva2 in #5378
- Overlap creation of jacobian matrix with GPU data transfers by @razvnane in #5256
- When checking for zero target rates, also check wells under group control where required by @steink in #5232
- Bugfix: Avoid possible use of out-of-scope temporary. by @atgeirr in #5393
- only trying to link darmaris when requested by @GitPaean in #5391
- [FIX]: Build issue if OpenMP is not present by @daavid00 in #5399
- fix compile rocsparseWellContributions by @razvnane in #5400
- Small fixes related to thp-control/vfp-extrapolation by @steink in #5395
- Detect oscillation in just one phase. by @atgeirr in #5398
- Support for CNAMES by @svenn-t in #5405
- Collect Well Level Control Limits/Targets for Summary Output by @bska in #5409
- Add Newton update damping when domain solution oscillates. by @atgeirr in #5342
- Enable WTMULT as an Input Operation by @bska in #5411
- only allocate trans_ for globalTrans_ by @GitPaean in #5406
- Fix modifications of TRANX/Y/Z in parallel (e.g. MULTIPLY of TRANX in EDIT) by @totto82 in #5414
- Add ability to pass multiple variables to Damaris using DamarisWriter class. by @jcbowden in #5352
- Ensure 'mid' is always initialized. by @atgeirr in #5420
- Ghost entries skipped for ILU apply and SpMV operator in all levels of AMG/CPR hierarchy by @lisajulia in #5182
- Prevent spurious warnings about NNCs when applying EDITNNC in parallel. by @blattms in #5351
- trying to release global transmissibility earlier to flatten the peak memory usage in the function finishInit() by @GitPaean in #5419
- Fix to error in Clang: use 'template' keyword to treat 'data' ... by @daavid00 in #5422
- Partitioning tracers by @svenn-t in #5268
- Do NOT delete files recursively by @vkip in #5427
- Add and use DamarisOutput::handleError() helper. by @atgeirr in #5430
- fix option for output every timestep by @totto82 in #5426
- Stablize python test by @GitPaean in #5431
- avoid mass creation with drsdt by @totto82 in #5407
- Only indicate problems for exceptions whem updating well potentials, by @blattms in #5423
- [fix] Do not count experiencing nans as error in PRT file. by @blattms in #5434
- fixed: linking of some cuda tests with shared libraries by @akva2 in #5401
- Allow GCONPROD item 11-13 to actually take effect. by @vkip in #5432
- WECON RATE limit should not be applied if the well is under zero group rate target by @GitPaean in #5424
- Minor updates in preparation for New defaults #5157. by @steink in #5435
- Output maximum/minimum saturations directly for restart hysteresis by @totto82 in #5402
- changed: remove hipification at configure time by @akva2 in #5444
- Add cudilu lu splitting by @multitalentloes in #5404
- Add sphinx documentation for Python bindings and GitHub action workflow to push to GitHub pages by @hakonhagland in #5243
- Bump urllib3 from 2.2.1 to 2.2.2 in /python/sphinx_docs by @dependabot in #5457
- Bump jinja2 from 3.1.3 to 3.1.4 in /python/sphinx_docs by @dependabot in #5456
- Bump idna from 3.6 to 3.7 in /python/sphinx_docs by @dependabot in #5458
- Bump requests from 2.31.0 to 2.32.2 in /python/sphinx_docs by @dependabot in #5459
- NewtonMethod: split parameters and properties by @akva2 in #5460
- basicproperties: split out params by @akva2 in #5461
- Quell some gcc12 warnings by @akva2 in #5464
- make sure a well exists in the process before closing it due to group action by @GitPaean in #5462
- WIP: Enabling automatic choke to model a sub-sea manifold in an extended network by @plgbrts in #4935
- add missing include and damaris reference file update support by @akva2 in #5465
- Autotune thread block size by @multitalentloes in #5433
- Avoid buffers exceeding intmax in MPI calls by @vkip in #5473
- Handle empty or invalid OMP_NUM_THREADS by Flow default by @vkip in #5454
- Move documentation by @lisajulia in #5475
- Use the failure flag of the tasklet runner to detect a failure while … by @lisajulia in #5478
- rocsparse CPR initial version by @razvnane in #5408
- Add the metis partitioner as a command line option as well by @lisajulia in #5477
- Output support for RSWSAT and RVWSAT by @daavid00 in #5483
- Feature/documentation dispatch by @lisajulia in #5489
- Fix/actionx compdat by @lisajulia in #5488
- Improve parallel network test. by @atgeirr in #5497
- Move vtk parameters to Opm::Parameters namespace by @akva2 in #5493
- Use cell temperature in perforated cell to compute reservoir rates by @totto82 in #5490
- Fix the usage of the COMPDAT keyword in an ACTIONX for the NLDD solver for sequential runs by @lisajulia in #5505
- Convmix by @totto82 in #5491
- Write vtk (if enabled) for dry runs by @daavid00 in #5499
- Support type-tag free parameter system by @akva2 in #5511
- Add OpmCuILU0 and clean up cuistl by @multitalentloes in #5441
- Add failing tests to show error rising from connections that are open… by @lisajulia in #5502
- rename GMIM to GMTR by @totto82 in #5530
- Flowexperimental: set MatrixAddWellContribution default to false. by @atgeirr in #5526
- Pass gas mass rate to summary by @totto82 in #5528
- Fix typo, use 2 processes for testing parallel runs with COMPDAT in A… by @lisajulia in #5531
- Ensure default ALQ is set for all production wells on all processes by @vkip in #5534
- New defaults by @totto82 in #5157
- Allow Hysteresis option 4 by @totto82 in #5273
- fixed: do not try to hide parameters that are not registered without MPI by @akva2 in #5539
- More helpful message for PETGRID. by @atgeirr in #5541
- added: (restart-)serialization test for MixingRateControls by @akva2 in #5543
- Add float support to simulators: Batch 1 by @akva2 in #5542
- Remove check for active wells for drift compensation by @totto82 in #5110
- restore all flags for alugrid test by @akva2 in #5545
- Support float simulators - batch 2 by @akva2 in #5548
- Make CPR reuse setup option only apply to CPR by @jakobtorben in #5445
- ActionHandler: instance for float by @akva2 in #5549
- BUGFIX Fix no wells case by @totto82 in #5546
- Float support in simulators: Batch 4 by @akva2 in #5551
- Make local solver in NLDD a runtime specified ISTLSolver by @jakobtorben in #5553
- Generalize thread block tuner by @multitalentloes in #5451
- Support deactivation of individual DRSDT/DRVDT/DRSDTCON regions by @totto82 in #5527
- Revise Mixture Density Method for No-Flow Producers by @bska in #5479
- Float support in simulators: Batch 3 by @akva2 in #5550
- ISTLSolverBda: avoid using deprecated Dune::CollectiveCommunication by @akva2 in #5558
- Add action-parsing-strictness command line parameter by @lisajulia in #5547
- Intercept CPRW if MICP or polymer injectivity is used. by @atgeirr in #5557
- refactor cuistl to gpuistl by @multitalentloes in #5554
- amgcpr: use override by @akva2 in #5561
- Output CNV Histogram to INFOITER File by @bska in #5338
- Avoid updating max Rs first step after restart. by @vkip in #5537
- Avoid deleting derivative i.e. getting "wrong" matrix in case of zero… by @hnil in #5236
- Avoid capturing structured bindings. by @atgeirr in #5566
- Float support in simulators: Batch 5 by @akva2 in #5556
- add python packaging fluff by @akva2 in #5567
- fixed: make python simulator object depend on copy_python by @akva2 in #5569
- Import opm-models by @akva2 in #4627
- Add float blackoil simulator by @akva2 in #5560
- Fix build without float simulators by @akva2 in #5576
- update the name of the solver to fit with gpuistl by @multitalentloes in #5591
- reolve gpuistl macro todo by @multitalentloes in #5593
- MPIPacker: mark buffer const in unpacker functions by @akva2 in #5598
- compositional cleaning up by @GitPaean in #5600
- fixed: make sure we have valid indices in readInitialCondition_ by @akva2 in #5604
- Set correct target iterations in SimpleIterationTimestepControl by @jakobtorben in #5476
- update OpmCuILU0 to OpmGpuILU0 by @multitalentloes in #5606
- Apply well/group efficiency factors for connection energy rates. by @vkip in #5323
- BUGFIX fix injection bhp pressure for CO2/H2 STORE by @totto82 in #5602
- Adding a separate CNV and total tolerance for energy (default is kept as is) by @vkip in #5321
- Split out vtk module parameters to separate translation units by @akva2 in #5612
- Quell some clang warnings by @akva2 in #5614
- fixing some of output by @hnil in #5305
- Testing: Disallow switcing to group controls during local well solves by @steink in #5613
- setting up logging so flowexp variants can report parsing errors by @GitPaean in #5618
- Avoid adding gas lift of non-open wells to network by @vkip in #5601
- xmfData to ymfData, typo correction by @GitPaean in #5623
- Make SolverAdapter explicitly depend on the communication object by @kjetilly in #5617
- Fixed indexing error in PID controller by @erikhide in #4855
- Implement 'RFIP' and 'SFIP' Mnemonics For RPTRST by @bska in #5621
- Support RPTSCHED WELLS=N by @vkip in #5626
- AquiferNumerical: speed up calculations. by @atgeirr in #5632
- Update THP also for zero-rate wells by @steink in #5634
- add ad & TwoPhaseMaterial gpu instantiation tests by @multitalentloes in #5597
- add changes to fix the order by @ElyesAhmed in #5630
- changed: don't store schedule keywords unless required in simulators by @akva2 in #5635
- set newton tolerance to be 1.e-7 for compositional running by @GitPaean in #5638
- Revert #5613 but keep as option by @steink in #5642
- Convergence monitors by @jakobtorben in #5590
- Actually use fixed ordering (to get reproducible results in parallel) by @vkip in #5646
- supporting ZMF explicit solution by @GitPaean in #5625
- Correctly treat transmissibilities for PINCH option(4) ALL. by @blattms in #5577
- Also perform regression tests for PINCH(4) being ALL. by @blattms in #5647
- Enable EQUALREG for Array Operations by @bska in #5648
- Support for 2 to 7 components in flowexp_comp by @kjetilly in #5645
- Adjust packaging for pybind bump by @akva2 in #5644
- Handle cleaning of filter cake in a more intuitive way by @vkip in #5627
- small range fix for flowexp_comp by @GitPaean in #5650
- Compile only a select number of components. by @kjetilly in #5651
- Add dampening to the injectivity multipliers (WINJMULT) by @vkip in #5631
- Add mixed precision ilu0 on gpu by @multitalentloes in #5552
- Bug fix in rocsparsesolver by @razvnane in #5655
- Initialise Fluid-in-Place Balance Sheets at Restart by @bska in #5653
- Remove the need for add well contributions to matrix for NLDD by @jakobtorben in #5341
- Delay stopping wells after local well solves until global update agrees (rebased) by @atgeirr in #5659
- Remove unused num_cells argument from well equations by @jakobtorben in #5660
- Use Rank's Local Cells for Tracer Concentration Restart by @bska in #5670
- Fix memory bug in setPrimaryVars for MSW by @bska in #5676
- Fix gas-water restart by @bska in #5681
- avoid declaring t1 outside lambda by @bska in #5683
- Handle WELPI from ACTIONX Separately From Constraints by @bska in #5700
- fixed: set active indices in fieldprops by @bska in #5703
- Update flow manpage with help2man. by @bska in #5709
New Contributors
- @gdfldm made their first contribution in #5292
- @dependabot made their first contribution in #5457
- @erikhide made their first contribution in #4855
Full Changelog: release/2024.04/final...release/2024.10/final