Skip to content

OPM-Simulators 2024.10 Release

Latest
Compare
Choose a tag to compare
@bska bska released this 08 Nov 11:07
· 356 commits to master since this release

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-byte double 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

Full Changelog: release/2024.04/final...release/2024.10/final