mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-30 17:10:19 -05:00
f1218e527f18b40c8ce0df2ef786201bf4f3358a
RigMainGrid::findIntersectingCells is const and lazily builds the mutable m_cellSearchTree without synchronization, yet it is called from many multi-threaded (OpenMP) query paths. When two threads race the isNull check, both build a new tree and the cvf::ref reassignment deletes the first tree while it is still being built, leading to a use-after-free and a segfault deep in AABBTree::buildTree (BoundingBox::addValid reading a dangling leaf box). Serialize building of the cell search tree with a mutex, both in computeCachedData (which nulls and rebuilds the tree) and in the lazy build in findIntersectingCells. The query also keeps a local reference to the tree so it stays alive if another thread rebuilds m_cellSearchTree during the read-only intersection query.
#14101 Rename RimFaultDistanceResult/Collection classes and files to RimFaultDistance/RimFaultDistanceCollection
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
GPL-3.0
367 MiB
0 Stars
4 Watchers
0 Forks
Languages
C++
88.9%
ECL
4.6%
TypeScript
2.9%
Python
1.8%
CMake
0.6%
Other
1%