Release Highlights
- Added the option to solve the energy equations sequentially after the black-oil equations.
- Support has been added for pressure and temperature dependent water viscosity for runs with brine (BRINE) and energy (THERMAL).
- Flow now supports runs with brine (BRINE) and energy (THERMAL).
- Added support for double precision WORK arrays for compressed property arrays (for example SOGCR).
- If necessary, the gas PVT tables PVTG and PVDG are modified internally to ensure that negative inverse formation volume factors will never be extrapolated.
- Implemented endpoint scaling for gas-water systems.
- Killough's hysteresis wetting phase modification (EHYSTR keyword item 13) is now supported.
- Added support for RSCONST keyword to define a constant solution gas-oil ratio for all dead oil PVT tables.
- Added support for EQUIL keyword item 9 (EQLOPT3) greater than zero.
- Added support for well energy injection/production rate and total summary vectors: WTPRHEA, WTPTHEA, WTIRHEA and WTITHEA.
- Support has been added for the gas lift injection total summary vectors: FGLIT, GGLIT, and WGLIT.
- Extended summary (ESMRY) files are now output by default. The command line option --enable-esmry is now set to true by default.
- Added support for region oil recovery efficiency summary vector ROE.
- Production and gas lift supply rates from satellite groups (GSATPROD) are now accumulated in summary output.
- Added support for inter-block flows of oil, water, and gas in the negative i, j, and k directions (BFLO[GOW][IJK]-).
- Added support for summary output of inter-block oil, water, and gas velocities in the positive/negative i, j, and k directions (BVEL[GOW][IJK][-]).
- All current well lists are now reported to the Print (PRT) file when the WELSPECS mnemonic is specified on the RPTSCHED keyword.
- Support for using the WDFAC and BRANPROP keywords in an ACTIONX block has been successfully tested.
- The grid independent well keywords WELTRAJ and COMPTRAJ now partially support multi-segment wells.
- Added support for using well completion quantities in ACTIONX Boolean conditions.
- Added partial support for the TUNINGDP keyword.
- Added support for VFPPROD tables with only one data record (single-line lift curves).
- The default value for the NUPCOL keyword has been reduced to from 12 to 3.
- Drift compensation is now applied to mass losses in the energy equations when using the temperature model (TEMP).
What's Changed
- bump version to 2026.04-pre by @akva2 in #931
- Janitoring: add missing parameter to doxy by @akva2 in #933
- Correct warning for inactive parent cell blocks by @aritorto in #938
- Correct partition types for intersections and points are correct. by @blattms in #937
- Fix shared-face handling across different refined level grids by @aritorto in #940
- Change .clang-format ColumnLimit to 100 characters by @hakonhagland in #943
- Use test target file instead of hard-coded name by @SoilRos in #946
- GPU support SparseTable for assembly by @multitalentloes in #929
- Restrict data::Solution from leaf to level grids by @aritorto in #945
- Skip the merge if no cells were added. by @michal-toth in #950
- fixed: avoid capturing structured bindings by @akva2 in #952
- Use CpGrid level zero methods instead of UgGridHelper by @aritorto in #953
- [bugfix] Use currentData().back() in CpGrid::size() by @aritorto in #954
- [bugfix] Nested LGRs by @aritorto in #956
- separate cloning from building in jenkins pipeline by @akva2 in #958
- add static analysis by @akva2 in #960
- Assign average output values for parent cells by @aritorto in #955
- [bugfix] CpGrid::logicalCartesianSize() returns level zero grid logCartSize by @aritorto in #959
- allow overriding base of opm repositories in jenkins build scripts by @akva2 in #962
- add support for absolute revisions by @akva2 in #963
- Fix warnings for builds with -DWITH_NDEBUG=1 by @daavid00 in #965
- Skip if restart key is OPMEXTRA by @aritorto in #964
- remove unused variable by @akva2 in #966
- remove C99 package by @akva2 in #967
- bump minimum cmake version to 3.23 by @akva2 in #968
- Add Entity/EntityRep ID comparison tests by @SoilRos in #949
- [LGR] Map level Cart idx to level compressed idx by @aritorto in #969
- Make entity marking dune conformant by @SoilRos in #947
- rename hook to new project specific name by @akva2 in #970
- use target Boost::unit_test_framework by @akva2 in #971
- Use hooks by @akva2 in #972
- CMakeLists_files.cmake is now processed in OpmLibMain by @akva2 in #973
- explicitly link to opm-common by @akva2 in #974
- policies are now set by OpmInit by @akva2 in #975
- add missing doxy parameter by @akva2 in #976
- replace std::transform with std::ranges::transform where appropriate by @akva2 in #978
- replace std::sort with std::ranges::sort where appropriate by @akva2 in #979
- replace std::for_each with std::ranges::for_each where appropriate by @akva2 in #980
- replace std::copy with std::ranges::copy where appropriate by @akva2 in #983
- Fix test_polyhedralgrid build failure with Dune 2.10 by @hakonhagland in #982
- replace std::fill with std::fill_n where appropriate by @akva2 in #984
- replace std::count_if with std::ranges::count_if where appropriate by @akva2 in #985
- replace std::any_of with std::ranges::any_of where appropriate by @akva2 in #986
- replace std::find with std::ranges::find where appropriate by @akva2 in #987
- replace std::find_if with std::ranges::find_if where appropriate by @akva2 in #988
- replace std::min_element with std::ranges::min_element where appropriate by @akva2 in #989
- replace std::max_element with std::ranges::max_element where appropriate by @akva2 in #990
- replace std::all_of with std::ranges::all_of where appropriate by @akva2 in #991
- replace std::is_sorted with std::ranges::is_sorted where appropriate by @akva2 in #992
- replace std::reverse with std::ranges::reverse where appropriate by @akva2 in #993
- replace std::set_difference with std::ranges::set_difference where appropriate by @akva2 in #994
- Split the id interface into two functions by @SoilRos in #977
- Drop support for boost < 1.54 by @akva2 in #997
- enable fortran language and setup FCMacros.h through FortranCInterface by @akva2 in #999
- prereqs is now included by OpmLibMain by @akva2 in #1000
- add option USE_OPM_COMMON by @akva2 in #998
- no need to probe for this any longer by @akva2 in #1001
- Some config variable cleanup by @akva2 in #1002
- use target mode for all dependencies by @akva2 in #1003
- Fix ISTL handling for dune 2.9 by @akva2 in #1004
- Prefer Std::Numbers::PI by @bska in #1006
- Required Dune-Geometry For OPM-Grid by @bska in #1009
- Update globalCell checks for CpGrid with LGRs by @aritorto in #1007
- compile definition for mpi is now handled by generic build system by @akva2 in #1011
- explicitly check for dune-uggrid by @akva2 in #1010
- Use defines from target and update prereqs to check for links by @akva2 in #1012
- [LGR] Aquifer cells/connections refinement is not supported or ignored for CpGrid by @aritorto in #1008
- fix build with -DUSE_OPM_COMMON=OFF by @akva2 in #1016
- fixed: missing .* in absolute revision jenkins re by @akva2 in #1017
- Backport PR1019: Remove warnings ranlinb by @michal-toth in #1026
- Backport PR1024 --imbalance-tol instead of --imbalance-tolerance by @michal-toth in #1028
Full Changelog: release/2025.10/final...release/2026.04/final