mirror of
https://github.com/OPM/ResInsight.git
synced 2026-09-03 20:53:13 -05:00
318659e1303491584640012bfa3f0eb3992536dd
* Recompute well cell arrays when the grids change computeWellCellsPrGrid() returned early whenever the arrays had been computed once, so the size check below it was unreachable and a stale array was kept when the grids changed. The too-short array triggered an assert in RivReservoirViewPartMgr::computeNativeVisibility. Return early only when the cached arrays still match the current set of grids. * Guard against missing GUI application when applying style sheet RiaGuiApplication::instance() does a dynamic_cast and returns null outside a GUI context. The assert guarding this is compiled out in release, so the null pointer was dereferenced. * Guard against missing case in flow characteristics plot field change The case field can be set to nothing from the UI. RimEclipseResultCase::defaultFlowDiagSolution() and reservoirViews() were then called on a null pointer. * Guard against missing case and out of range time steps when updating flow characteristics plot onLoadDataAndUpdate() dereferenced the case without checking, although the same function handles a missing case further down. The time step indices come from the flow diagnostics solution, and were used to index arrays sized by the number of case time steps without a range check.
ResInsight
ResInsight is an open source, cross-platform 3D visualization and post-processing tool for reservoir models and simulations.
Key Features
- Specialized Visualizations: Tailored for efficient interpretation of reservoir simulation data with visualizations of properties, faults, and wells
- Performance-Oriented: Exploits multi-core CPUs and GPUs for highly responsive operation
- Statistical Analysis: Handles large numbers of realizations with built-in statistical calculations
- Python Integration: Enables powerful result manipulation and computations with two-way data exchange
- GNU Octave Integration: Enables powerful result manipulation and computations with two-way data exchange
- Extensible Framework: Supports additional data sources and visualization methods (solvers, seismic data, CSEM, geomechanics)
- Eclipse Integration: Supports export to Eclipse input formats for simulation cycles and parameter studies
Supported Input Formats
- Eclipse binary output (*.GRID, *.EGRID files with corresponding *.INIT, *.XNNN, and *.UNRST files)
- Selected Eclipse input file sections
- Grid information with cell property data sets
Technology Stack
ResInsight utilizes:
- Equinor/resdata and OPM/opm-common libraries for Eclipse result file access
- Qt for the application framework
- Qwt for plotting functionality
- vcpkg for dependency management
Platform Support
ResInsight is cross-platform with automated testing on:
- Red Hat Enterprise Linux (RHEL)
- Ubuntu
- Windows 11
Documentation
Development
Source Code
git clone git://github.com/OPM/ResInsight.git
Minimum Requirements
- gcc 13
- clang 19
- CMake 3.15
- MSVC 2022 17.4
These requirements are defined by used features in c++23 like std::stacktrace and std::expected.
Dependencies
Most dependencies are managed using vcpkg as defined in vcpkg.json
Contributing
Contributions are welcome! Please:
- Use the
devbranch for contributions and pull requests - Note that the
masterbranch is kept stable and updated only for releases - See Spell Checking Guide for information on automated spell checking
Building
See the Build Instructions for detailed setup information.
License
ResInsight is co-developed by Equinor ASA, Ceetron Solutions AS, and Ceetron AS. The software is copyrighted by Ceetron and Equinor and licensed under GPL 3+. See the COPYING file for details.
Description
3D viewer and post processing of reservoir models
c-plus-pluscross-platformeclipsegeomechanicsoctaveopenglpythonreservoir-modelingseismicvisualization
Readme
374 MiB
Languages
C++
88.7%
ECL
4.9%
TypeScript
3%
Python
1.5%
CMake
0.6%
Other
1.1%