Recent Releases of gpu-ISTL - Extending OPM Flow with GPU Linear Solvers

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers - release/2025.04/final

Release Highlights

  • Support for well on/off cycling (WCYCLE keyword)
  • Fix for initial in-place fluid volumes reported to the .PRT file, both in base runs and in restarted runs
  • Initial support for reservoir coupling
  • Initial support for calculating and reporting per-cell quantities in compositional runs
  • Support mnemonic value WELLS=2 in the RPTSCHED keyword
  • Performance improvements in property evaluation
  • Initial support for deferring property evaluation dedicated hardware accelerators/GPUs
  • Support for the AmgX library of linear solvers
  • Support version 11 of the libfmt library
  • New and experimental consistency checks for saturation functions, especially for end-point scaling. Off by default.

What's Changed

  • Enable New Saturation Function Consistency Checks by @bska in https://github.com/OPM/opm-simulators/pull/5596
  • FIX gas-water restart by @totto82 in https://github.com/OPM/opm-simulators/pull/5668
  • In partitioning, only account for wells that will be active at some point in time by @vkip in https://github.com/OPM/opm-simulators/pull/5609
  • in flowexp_blackoil, invalidate output data after solution is updated by @GitPaean in https://github.com/OPM/opm-simulators/pull/5664
  • Separate non-DUNE methods in LevelCartesianIndexMapper by @aritorto in https://github.com/OPM/opm-simulators/pull/5649
  • Fix issue with stopped injectors in thermal runs by @totto82 in https://github.com/OPM/opm-simulators/pull/5605
  • Bugfixes #5609 by @vkip in https://github.com/OPM/opm-simulators/pull/5686
  • enableThresholdPressure_ initialized to be false by @GitPaean in https://github.com/OPM/opm-simulators/pull/5691
  • Add Logging for Python Actions by @bska in https://github.com/OPM/opm-simulators/pull/5699
  • ecl style output for compositional simulation by @GitPaean in https://github.com/OPM/opm-simulators/pull/5687
  • fixed: set active indices in fieldprops by @akva2 in https://github.com/OPM/opm-simulators/pull/5701
  • Print gpus used on simulator startup by @multitalentloes in https://github.com/OPM/opm-simulators/pull/5611
  • fixed: division by zero if no gpu device was found by @akva2 in https://github.com/OPM/opm-simulators/pull/5705
  • Update flow manpage with help2man. by @blattms in https://github.com/OPM/opm-simulators/pull/5708
  • fixed: test-suites needs a name by @akva2 in https://github.com/OPM/opm-simulators/pull/5710
  • dont switch from GRUP if checkgroupconstrainswelliterations=false by @totto82 in https://github.com/OPM/opm-simulators/pull/5695
  • Fix gaslift 1 by @totto82 in https://github.com/OPM/opm-simulators/pull/5694
  • fixed: building pypi release packages by @akva2 in https://github.com/OPM/opm-simulators/pull/5719
  • Add LINRAD (hybrid linear-radial) filter cake model by @vkip in https://github.com/OPM/opm-simulators/pull/5717
  • Added the missing plus in gplv3+ for the Python packages. by @blattms in https://github.com/OPM/opm-simulators/pull/5722
  • Removed GPL copyright header from licensed under Boost license. by @blattms in https://github.com/OPM/opm-simulators/pull/5721
  • Fix index bug in gpubridge separate wells by @razvnane in https://github.com/OPM/opm-simulators/pull/5720
  • Correctly mark data files with ODBL and DBCL license by @blattms in https://github.com/OPM/opm-simulators/pull/5723
  • Gpu support co2gaspvt by @multitalentloes in https://github.com/OPM/opm-simulators/pull/5636
  • fixed: RESTART_SCHED parameter never took effect by @akva2 in https://github.com/OPM/opm-simulators/pull/5725
  • fixed: fmt::join is in ranges.h using {{fmt11}} by @akva2 in https://github.com/OPM/opm-simulators/pull/5726
  • Avoid potential segfault due to invalid vector.end() after erase() by @vkip in https://github.com/OPM/opm-simulators/pull/5740
  • Activate New Regression Tests for ACTIONX Name Matching by @bska in https://github.com/OPM/opm-simulators/pull/5750
  • Do not try to compute initial solution for inactive multi-segment wells split across processors by @vkip in https://github.com/OPM/opm-simulators/pull/5751
  • Make sure all errors from parsing show up in the log files. by @blattms in https://github.com/OPM/opm-simulators/pull/5707
  • Feature/ms wells - part 1: Initial assembly of B C D and the residual by @lisajulia in https://github.com/OPM/opm-simulators/pull/5680
  • Cmake: Use upper case for COMPONENTS of FindSuiteSparse by @blattms in https://github.com/OPM/opm-simulators/pull/5745
  • dont shut well with GRUP control that struggles to converge by @totto82 in https://github.com/OPM/opm-simulators/pull/5735
  • Well testing using gas lift facilities by @svenn-t in https://github.com/OPM/opm-simulators/pull/5757
  • Subtract reduction rate for current group when checking higher group constraints by @steink in https://github.com/OPM/opm-simulators/pull/5729
  • Only update target of group-controlled wells during updateAndCommunicate by @steink in https://github.com/OPM/opm-simulators/pull/5748
  • Support GCONSUMP on multiple levels in the group hierarchy by @vkip in https://github.com/OPM/opm-simulators/pull/5739
  • Use formattedErrors() and simplify. by @atgeirr in https://github.com/OPM/opm-simulators/pull/5765
  • Update second stage preconditioner for CPR instead of recreate by @jakobtorben in https://github.com/OPM/opm-simulators/pull/5758
  • Restore threshold pressures from restart by @vkip in https://github.com/OPM/opm-simulators/pull/5743
  • Network sub iter by @totto82 in https://github.com/OPM/opm-simulators/pull/5767
  • added: ability to pass command line parameters from python by @akva2 in https://github.com/OPM/opm-simulators/pull/5760
  • Changes in how the simulator handles NUPCOL by @totto82 in https://github.com/OPM/opm-simulators/pull/5724
  • Write correct THRESHPR values also from restart by @vkip in https://github.com/OPM/opm-simulators/pull/5770
  • fixed: well model could deadlock by @akva2 in https://github.com/OPM/opm-simulators/pull/5773
  • bump minimum dune version to 2.9 by @akva2 in https://github.com/OPM/opm-simulators/pull/5500
  • changed: do not use boost.test in testtaskletsfailure by @akva2 in https://github.com/OPM/opm-simulators/pull/5782
  • Zoltan partitioner with all perforated cells of a well merged to one vertex by @michal-toth in https://github.com/OPM/opm-simulators/pull/5749
  • fixed: always calculate initial FIP by @akva2 in https://github.com/OPM/opm-simulators/pull/5784
  • Expose finesmoother pre/post smooth parameters in CPR setup by @jakobtorben in https://github.com/OPM/opm-simulators/pull/5786
  • Feature/ms wells - part 2: Solving, straightforward option by @lisajulia in https://github.com/OPM/opm-simulators/pull/5746
  • Feature/ms wells test by @lisajulia in https://github.com/OPM/opm-simulators/pull/5747
  • Alternative way of avoiding group control oscillations by @totto82 in https://github.com/OPM/opm-simulators/pull/5753
  • Ensure tracer flow for cross-flowing injector connections is included by @vkip in https://github.com/OPM/opm-simulators/pull/5789
  • Allow for the third group switch by @totto82 in https://github.com/OPM/opm-simulators/pull/5791
  • remove 16 days restriction for timestep in predicition mode by @totto82 in https://github.com/OPM/opm-simulators/pull/2970
  • Use regular OpenMP for loop, then iterate over chunks inside. by @atgeirr in https://github.com/OPM/opm-simulators/pull/5777
  • Add Hypre BoomerAMG Support by @jakobtorben in https://github.com/OPM/opm-simulators/pull/5762
  • Make OpenCL optional by @kjetilly in https://github.com/OPM/opm-simulators/pull/5793
  • Feature/ms wells fix restart file error by @lisajulia in https://github.com/OPM/opm-simulators/pull/5802
  • added: support WCYCLE by @akva2 in https://github.com/OPM/opm-simulators/pull/5792
  • Add test for distributed MSWells with two MSWells by @lisajulia in https://github.com/OPM/opm-simulators/pull/5805
  • Amgx integration by @jakobtorben in https://github.com/OPM/opm-simulators/pull/5808
  • Do not write initial FIP for CpGrid with LGRs for now by @aritorto in https://github.com/OPM/opm-simulators/pull/5813
  • Use initial pressure if ROCKOPTS item 2 is STORE by @svenn-t in https://github.com/OPM/opm-simulators/pull/5785
  • Allow query for efficiency scaling factor in off-process wells where required by @akva2 in https://github.com/OPM/opm-simulators/pull/5816
  • LevelCartesianIndexMapper constructor for AluGrid taking only a grid as an argument by @aritorto in https://github.com/OPM/opm-simulators/pull/5715
  • Allow group guide rates in case that a group is an auto choke group by @plgbrts in https://github.com/OPM/opm-simulators/pull/5754
  • Remove the mpi calls from the business logic by @lisajulia in https://github.com/OPM/opm-simulators/pull/5819
  • Move implementation of WellOperators out of BlackoilWellModel by @akva2 in https://github.com/OPM/opm-simulators/pull/5823
  • use reservoir rates not reduction rate in target calculator for VREP by @totto82 in https://github.com/OPM/opm-simulators/pull/5783
  • adjust output and parameters in gpu autotuner by @multitalentloes in https://github.com/OPM/opm-simulators/pull/5779
  • split AdaptiveTimeStepping to use an impl file by @akva2 in https://github.com/OPM/opm-simulators/pull/5834
  • changed: use standard header guard structure for _impl.hpp clangd helpers by @akva2 in https://github.com/OPM/opm-simulators/pull/5835
  • [Nit] Add EHYSTR(HYSTMOD) = 4 to list of supported values in message by @gdfldm in https://github.com/OPM/opm-simulators/pull/5837
  • Reduce size of enums to save 15 bytes per cell. by @atgeirr in https://github.com/OPM/opm-simulators/pull/5841
  • changed: move GasLift code in BlackoilWellModel to separate class by @akva2 in https://github.com/OPM/opm-simulators/pull/5832
  • add test for gpu brineco2pvt by @multitalentloes in https://github.com/OPM/opm-simulators/pull/5839
  • Fix clang complaints about incorrect constexpr usage. by @atgeirr in https://github.com/OPM/opm-simulators/pull/5844
  • Add test for inserting keyword WTMULT from a Pyaction by @lisajulia in https://github.com/OPM/opm-simulators/pull/5830
  • Add test for WLIST keyword in Pyaction and ACTIONX by @lisajulia in https://github.com/OPM/opm-simulators/pull/5836
  • Add gpudilu mixed precision by @multitalentloes in https://github.com/OPM/opm-simulators/pull/5674
  • Fix errors in documentation. by @lisajulia in https://github.com/OPM/opm-simulators/pull/5853
  • Use new linearizer for blackoil + thermal by @totto82 in https://github.com/OPM/opm-simulators/pull/5843
  • Fix RFT output for shut distributed wells by @vkip in https://github.com/OPM/opm-simulators/pull/5824
  • Add parallel versions of the PyAction tests by @lisajulia in https://github.com/OPM/opm-simulators/pull/5860
  • Add mixed precision double diagonal gpu ilu0 variants by @multitalentloes in https://github.com/OPM/opm-simulators/pull/5688
  • gas water for multisegment well by @GitPaean in https://github.com/OPM/opm-simulators/pull/5818
  • Switch default load balancer to Zoltan with vertex = all cells of a well by @blattms in https://github.com/OPM/opm-simulators/pull/5800
  • regression test for gas water and multisegment wells by @GitPaean in https://github.com/OPM/opm-simulators/pull/5868
  • BlackoilModel: move to has-a instead of is-a modelling of penalty cards by @akva2 in https://github.com/OPM/opm-simulators/pull/5871
  • Add tests for GEFAC for ACTIONX and PYACTON by @lisajulia in https://github.com/OPM/opm-simulators/pull/5846
  • Fixes related to zero guiderates from NETV by @totto82 in https://github.com/OPM/opm-simulators/pull/5822
  • Fix WCYCLE for multiple blocks by @akva2 in https://github.com/OPM/opm-simulators/pull/5877
  • Skip allocTrans when !(enableEclOutput || loadBalancerSet == 0 || partitionJacobiBlocks) by @daavid00 in https://github.com/OPM/opm-simulators/pull/5817
  • Transmissibility: add a cache for centroids and use this in update() by @akva2 in https://github.com/OPM/opm-simulators/pull/5888
  • Prevent spawning more threads if we limit OMP thread count by @michal-toth in https://github.com/OPM/opm-simulators/pull/5856
  • Feature/py action insert kw welpi wpimult alternative by @lisajulia in https://github.com/OPM/opm-simulators/pull/5892
  • added: option to only compare summary files in regression tests by @akva2 in https://github.com/OPM/opm-simulators/pull/5897
  • Compositional simulations with more cubic EOS formulations by @svenn-t in https://github.com/OPM/opm-simulators/pull/5886
  • Reservoir coupling: Implement time stepping by @hakonhagland in https://github.com/OPM/opm-simulators/pull/5620
  • Skip empty positional arguments by @vkip in https://github.com/OPM/opm-simulators/pull/5679
  • Bugfix: Upon restart, do not try to restore segment info for inactive wells by @vkip in https://github.com/OPM/opm-simulators/pull/5861
  • Implement gsatprod by @totto82 in https://github.com/OPM/opm-simulators/pull/5894
  • Add run SPE1CASE1_CARFIN.DATA by @aritorto in https://github.com/OPM/opm-simulators/pull/5903
  • fixed: use a vector in mpibuffer by @akva2 in https://github.com/OPM/opm-simulators/pull/5907
  • added more timing by @hnil in https://github.com/OPM/opm-simulators/pull/5909
  • Add multi-threading to transmissibility calculation by @akva2 in https://github.com/OPM/opm-simulators/pull/5890
  • Dont reset subtimestep from tuning/wcycle if time step is chopped due to convergence issues by @totto82 in https://github.com/OPM/opm-simulators/pull/5902
  • Allow empty leaf nodes that do not exist in GRUPTREE by @vkip in https://github.com/OPM/opm-simulators/pull/5919
  • Switch property evaluation to using ElementChunks. by @atgeirr in https://github.com/OPM/opm-simulators/pull/5912
  • Parameterize network sub-iterations and pressure update dampening by @vkip in https://github.com/OPM/opm-simulators/pull/5918
  • Improve well shutting logic by @totto82 in https://github.com/OPM/opm-simulators/pull/5900
  • hacking to register the parameter ForceDisableFluidInPlaceOutput by @GitPaean in https://github.com/OPM/opm-simulators/pull/5926
  • Expose CornerCells and OverlapLayers Load Balancing Settings by @bska in https://github.com/OPM/opm-simulators/pull/5942
  • Smart pointers for GPU memory by @kjetilly in https://github.com/OPM/opm-simulators/pull/5946
  • Added utility class to hold a GPU resource (stream, event, graph, etc). by @kjetilly in https://github.com/OPM/opm-simulators/pull/5951
  • Limit relative roughness in Haaland friction factor calculation by @vkip in https://github.com/OPM/opm-simulators/pull/5945
  • Added copy functions from GPU smart pointers by @kjetilly in https://github.com/OPM/opm-simulators/pull/5956
  • Separate keyword validation for fully supported keywords by @vkip in https://github.com/OPM/opm-simulators/pull/5866
  • Add Infrastructure for Geomechanical Analysis by @bska in https://github.com/OPM/opm-simulators/pull/5801
  • Fixes for NVCC older than 12.5.1 by @kjetilly in https://github.com/OPM/opm-simulators/pull/5958
  • Add VoigtArray and SymmTensor classes by @akva2 in https://github.com/OPM/opm-simulators/pull/5959
  • Add MechContainer by @akva2 in https://github.com/OPM/opm-simulators/pull/5960
  • Fixed: Data output should use move semantics by @akva2 in https://github.com/OPM/opm-simulators/pull/5965
  • Fix shared library linking issues by @akva2 in https://github.com/OPM/opm-simulators/pull/5963
  • clang-format now adds newline at the end of file. by @kjetilly in https://github.com/OPM/opm-simulators/pull/5970
  • Using the CriticalException in PreconditionerFactory and ISTLSolver by @kjetilly in https://github.com/OPM/opm-simulators/pull/5969
  • component indices are now int by @akva2 in https://github.com/OPM/opm-simulators/pull/5950
  • Improve gpuistl using cudaGraphs by @multitalentloes in https://github.com/OPM/opm-simulators/pull/5852
  • Add CompositionalContainer, a container for compositional data output by @akva2 in https://github.com/OPM/opm-simulators/pull/5978
  • Compositional simulator expanded to three phases by @svenn-t in https://github.com/OPM/opm-simulators/pull/5851
  • Consistent primary variables by @hnil in https://github.com/OPM/opm-simulators/pull/5952
  • Add TracerContainer, a container for tracer data output by @akva2 in https://github.com/OPM/opm-simulators/pull/5987
  • Simplify GenericOutputBlackoilModule::doAllocBuffers by @akva2 in https://github.com/OPM/opm-simulators/pull/5989
  • Support instantaneous flow rates in extended network (WEFAC and GEFAC item 3) by @vkip in https://github.com/OPM/opm-simulators/pull/5410
  • General third order time step controller by @erikhide in https://github.com/OPM/opm-simulators/pull/5974
  • Add RFTContainer, a container for RFT data output by @akva2 in https://github.com/OPM/opm-simulators/pull/5996
  • Add a container for FLOWS data output by @akva2 in https://github.com/OPM/opm-simulators/pull/5954
  • Fix to write residuals by @daavid00 in https://github.com/OPM/opm-simulators/pull/6002
  • FlowProblem(Blackoil|Comp): Return a reference to EclWriter by @akva2 in https://github.com/OPM/opm-simulators/pull/6001
  • Add RESIDUAL output to a regression test by @akva2 in https://github.com/OPM/opm-simulators/pull/6003
  • Allow empty non-group leaf nodes by @vkip in https://github.com/OPM/opm-simulators/pull/6010
  • Report Connection Level Fracturing Statistics to I/O Layer by @bska in https://github.com/OPM/opm-simulators/pull/5811
  • Fix Summary BFLOW* by @daavid00 in https://github.com/OPM/opm-simulators/pull/6013
  • Extract addLgrs, invoke it before loadBalance by @aritorto in https://github.com/OPM/opm-simulators/pull/5981
  • fix tracy support by @akva2 in https://github.com/OPM/opm-simulators/pull/6024
  • Add missing communication for parallel runs with MSWells by @lisajulia in https://github.com/OPM/opm-simulators/pull/5937
  • Added tests for error macros on GPU. by @kjetilly in https://github.com/OPM/opm-simulators/pull/5962
  • Adapt to ElementChunks now requiring partition argument. by @atgeirr in https://github.com/OPM/opm-simulators/pull/6027
  • add some profiling blocks to tracer by @akva2 in https://github.com/OPM/opm-simulators/pull/6035
  • Ensure MSUMLINS and MSUMNEWT is updated. by @atgeirr in https://github.com/OPM/opm-simulators/pull/6039
  • TracerModel: avoid setting up ILU if no solves will be performed by @akva2 in https://github.com/OPM/opm-simulators/pull/6045
  • Only check trivial_target for GRUP when checking in THP by @totto82 in https://github.com/OPM/opm-simulators/pull/6018
  • Make pre-solve network optional by @totto82 in https://github.com/OPM/opm-simulators/pull/6048
  • Tracer: add some structs for well rate output and avoid complex keys by @akva2 in https://github.com/OPM/opm-simulators/pull/6044
  • make nonlinear system possible to change by @hnil in https://github.com/OPM/opm-simulators/pull/6046
  • Fix parallel tracers by @akva2 in https://github.com/OPM/opm-simulators/pull/6052
  • Tracer: enumerate components by @akva2 in https://github.com/OPM/opm-simulators/pull/6058
  • Fix to write vtk (if enabled) for dry runs in cases without oilPhase by @daavid00 in https://github.com/OPM/opm-simulators/pull/6057
  • Improving terminal/dbg output by @daavid00 in https://github.com/OPM/opm-simulators/pull/6059
  • Fix gpmaint for region 0 by @totto82 in https://github.com/OPM/opm-simulators/pull/5916
  • modify stagnation and oscillation code for MSW by @totto82 in https://github.com/OPM/opm-simulators/pull/6020
  • Make Zoltan's Hyperedge Size Threshold Runtime Controllable by @bska in https://github.com/OPM/opm-simulators/pull/6036
  • Fix to write vtk (if enabled) for dry runs in cases with drsdt by @daavid00 in https://github.com/OPM/opm-simulators/pull/6060
  • Add a first test case for reservoir coupling by @hakonhagland in https://github.com/OPM/opm-simulators/pull/5893
  • Prevent some nan creations during output generation. by @blattms in https://github.com/OPM/opm-simulators/pull/6077
  • Prevent zero division by @michal-toth in https://github.com/OPM/opm-simulators/pull/6053
  • Set SOIL to 0 when readExplicitInitialCondition and 1-SGAS-SWAT=0 by @daavid00 in https://github.com/OPM/opm-simulators/pull/6079
  • WellModel: make a copy of events at start of time step by @akva2 in https://github.com/OPM/opm-simulators/pull/6080
  • fixed: clear out events before processing actions by @akva2 in https://github.com/OPM/opm-simulators/pull/6078
  • PERMFACT for each saturation region by @daavid00 in https://github.com/OPM/opm-simulators/pull/6074
  • Fixes for NVCC by @kjetilly in https://github.com/OPM/opm-simulators/pull/6054
  • Fix network iterations by @totto82 in https://github.com/OPM/opm-simulators/pull/6062
  • Tracer: Code deduplication by @akva2 in https://github.com/OPM/opm-simulators/pull/6083
  • Added set -e to hipify_file.sh by @kjetilly in https://github.com/OPM/opm-simulators/pull/6088
  • Add GSATPROD to regression test by @totto82 in https://github.com/OPM/opm-simulators/pull/6089
  • Add ACTIONX_GCONINJE to regression test suite. by @blattms in https://github.com/OPM/opm-simulators/pull/6087
  • PRT: Use {fmt} to format injection log by @akva2 in https://github.com/OPM/opm-simulators/pull/6090
  • PRT: Use {fmt} to format production log by @akva2 in https://github.com/OPM/opm-simulators/pull/6093
  • PRT: Use {fmt} to format cumulative log by @akva2 in https://github.com/OPM/opm-simulators/pull/6094
  • Bug fix in linear solver by @daavid00 in https://github.com/OPM/opm-simulators/pull/6091
  • PRT: Use {fmt} to format fip logs by @akva2 in https://github.com/OPM/opm-simulators/pull/6096
  • Apply simulator update once by @vkip in https://github.com/OPM/opm-simulators/pull/6070
  • Added WELL as supported to GCONPROD message for unsupported options by @blattms in https://github.com/OPM/opm-simulators/pull/6101
  • Add Regression Tests for GCONPROD(7)=WELL by @bska in https://github.com/OPM/opm-simulators/pull/6106
  • removing undefined and unused function computeWellGroupTarget() from BlackoilWellModel by @GitPaean in https://github.com/OPM/opm-simulators/pull/6102
  • Support for RTPSCHED WELLS=2 by @akva2 in https://github.com/OPM/opm-simulators/pull/6099
  • Fix a recent bug indexing in the CPRW cell weights. by @atgeirr in https://github.com/OPM/opm-simulators/pull/6109
  • Support WCONHIST/WCONINJ in ACTIONX by @blattms in https://github.com/OPM/opm-simulators/pull/6092
  • Add support for MSW PRT report by @akva2 in https://github.com/OPM/opm-simulators/pull/6110
  • Added regression tests for WCONINJH and WCONHIST in ACTIONX. by @blattms in https://github.com/OPM/opm-simulators/pull/6112
  • Make wellModelMatrixAdapter serial only by @jakobtorben in https://github.com/OPM/opm-simulators/pull/6113
  • Prepare OPM for DUNE 2.10 by @blattms in https://github.com/OPM/opm-simulators/pull/5585
  • Add support for merging well cells for NLDD partitioning by @jakobtorben in https://github.com/OPM/opm-simulators/pull/6103
  • Support for RSW in the SOLUTION section by @daavid00 in https://github.com/OPM/opm-simulators/pull/6111
  • Set thp from network in well testing by @totto82 in https://github.com/OPM/opm-simulators/pull/6116
  • Calculate original FIP by reading restart data for step 0 by @akva2 in https://github.com/OPM/opm-simulators/pull/6119
  • Compositional well by @GitPaean in https://github.com/OPM/opm-simulators/pull/6042
  • Add network+wtest test by @totto82 in https://github.com/OPM/opm-simulators/pull/6130
  • Use well rates from wellstatenupcol instead of previouswellstate in updateWellRates by @totto82 in https://github.com/OPM/opm-simulators/pull/6128
  • Actually respect NUPCOL (not NUPCOL+1) and allow network to converge with GLO by @vkip in https://github.com/OPM/opm-simulators/pull/6100
  • BUGIFIX: Only respect item 7 in GCONPROD for individual constrains, by @totto82 in https://github.com/OPM/opm-simulators/pull/6135
  • using std::optional for function initialInplace() by @GitPaean in https://github.com/OPM/opm-simulators/pull/6137
  • For convective mixing, store the saturated dissolution factor. by @atgeirr in https://github.com/OPM/opm-simulators/pull/5774
  • Fix and improve nldd timing and output reporting by @jakobtorben in https://github.com/OPM/opm-simulators/pull/6124
  • Fix compositional field output names by @akva2 in https://github.com/OPM/opm-simulators/pull/6143
  • Trigger WELSPECS Report From Simulator Side by @bska in https://github.com/OPM/opm-simulators/pull/6107
  • Updating MICP by @daavid00 in https://github.com/OPM/opm-simulators/pull/6105
  • Pre-solve network only once by @vkip in https://github.com/OPM/opm-simulators/pull/6138
  • Dont resolve well equation when computing initial guess for thp in updateWellStateWithTarget by @totto82 in https://github.com/OPM/opm-simulators/pull/6081
  • Silence various warnings. by @atgeirr in https://github.com/OPM/opm-simulators/pull/6148
  • Changes in SOURCE structure by @svenn-t in https://github.com/OPM/opm-simulators/pull/6140
  • Extending the SUMMARY keywords for CO2STORE and H2STORE by @daavid00 in https://github.com/OPM/opm-simulators/pull/6127
  • Backport of pr 6104 by @multitalentloes in https://github.com/OPM/opm-simulators/pull/6159
  • Backport of PR 6153 by @multitalentloes in https://github.com/OPM/opm-simulators/pull/6161
  • Backport of PR 6156 by @multitalentloes in https://github.com/OPM/opm-simulators/pull/6162
  • Backport of pr 6157 by @multitalentloes in https://github.com/OPM/opm-simulators/pull/6163
  • Backport of pr 6164 by @multitalentloes in https://github.com/OPM/opm-simulators/pull/6165
  • Backport of pr 6151 by @multitalentloes in https://github.com/OPM/opm-simulators/pull/6166
  • backport of pr 6194 by @multitalentloes in https://github.com/OPM/opm-simulators/pull/6201
  • Backport of pr 6184 by @multitalentloes in https://github.com/OPM/opm-simulators/pull/6202
  • Backport of pr 6182 by @multitalentloes in https://github.com/OPM/opm-simulators/pull/6203
  • backport of pr 6198 by @multitalentloes in https://github.com/OPM/opm-simulators/pull/6204
  • Backport of pr 6210 by @multitalentloes in https://github.com/OPM/opm-simulators/pull/6239

New Contributors

  • @michal-toth made their first contribution in https://github.com/OPM/opm-simulators/pull/5749

Full Changelog: https://github.com/OPM/opm-simulators/compare/release/2024.10/final...release/2025.04/final

Scientific Software - Peer-reviewed - C++
Published by multitalentloes about 1 year ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers - Interim release 2024.12

Scientific Software - Peer-reviewed - C++
Published by alfbr over 1 year ago

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

New Contributors

  • @gdfldm made their first contribution in https://github.com/OPM/opm-simulators/pull/5292
  • @dependabot made their first contribution in https://github.com/OPM/opm-simulators/pull/5457
  • @erikhide made their first contribution in https://github.com/OPM/opm-simulators/pull/4855

Full Changelog: https://github.com/OPM/opm-simulators/compare/release/2024.04/final...release/2024.10/final

Scientific Software - Peer-reviewed - C++
Published by bska over 1 year ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers - Release 2024.04

Release 2024.04

Scientific Software - Peer-reviewed - C++
Published by lisajulia almost 2 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers - Release 2023.10

Scientific Software - Peer-reviewed - C++
Published by blattms over 2 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers - Release 2023.04

Scientific Software - Peer-reviewed - C++
Published by akva2 about 3 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers - 2022.10

See https://opm-project.org/?p=1553 for information.

Scientific Software - Peer-reviewed - C++
Published by atgeirr over 3 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers - 2020.04

Scientific Software - Peer-reviewed - C++
Published by joakim-hove about 6 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers -

Scientific Software - Peer-reviewed - C++
Published by joakim-hove about 6 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers -

Scientific Software - Peer-reviewed - C++
Published by joakim-hove about 6 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers -

Scientific Software - Peer-reviewed - C++
Published by joakim-hove about 6 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers -

Scientific Software - Peer-reviewed - C++
Published by joakim-hove about 6 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers -

Scientific Software - Peer-reviewed - C++
Published by alfbr over 6 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers -

Scientific Software - Peer-reviewed - C++
Published by alfbr over 6 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers -

Scientific Software - Peer-reviewed - C++
Published by alfbr about 7 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers -

Scientific Software - Peer-reviewed - C++
Published by alfbr over 7 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers -

Scientific Software - Peer-reviewed - C++
Published by alfbr over 7 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers -

Scientific Software - Peer-reviewed - C++
Published by alfbr almost 8 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers -

Scientific Software - Peer-reviewed - C++
Published by alfbr almost 8 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers -

Scientific Software - Peer-reviewed - C++
Published by alfbr almost 9 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers -

Scientific Software - Peer-reviewed - C++
Published by alfbr almost 9 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers -

Scientific Software - Peer-reviewed - C++
Published by alfbr almost 9 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers -

Scientific Software - Peer-reviewed - C++
Published by alfbr almost 9 years ago

gpu-ISTL - Extending OPM Flow with GPU Linear Solvers -

Scientific Software - Peer-reviewed - C++
Published by alfbr about 9 years ago