mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-24 22:27:55 -05:00
fcaf62dae5b4b01798f56d1cde910ddd23a1e3f8
Crash signature 1a259402c999. RivTernaryTextureCoordsCreator calls cellResultColors->eclipseCase()->eclipseCaseData() unchecked in both constructors, and then eclipseCase->gridCellToResultWellIndex(). eclipseCase() is a PdmPointer and is null once the case is gone. Read the case data only when the case exists, and create the pipe-in-cell evaluator only when the case data and well collection exist. Call stack: [3] RimEclipseCase::eclipseCaseData() at ResInsight/ApplicationLibCode/ProjectDataModel/RimEclipseCase.cpp:196 [4] RivTernaryTextureCoordsCreator::RivTernaryTextureCoordsCreator(RimEclipseResultDefinition const*, RimTernaryLegendConfig*, RimSimWellInViewCollection*, unsigned long, unsigned long, cvf::StructGridQuadToCellFaceMapper const*) at ResInsight/ApplicationLibCode/ModelVisualization/RivTernaryTextureCoordsCreator.cpp:55 [5] RivGridPartMgr::updateCellResultColor(unsigned long, RimEclipseCellColors*) at ResInsight/ApplicationLibCode/ModelVisualization/RivGridPartMgr.cpp:295 [6] RivReservoirPartMgr::updateCellResultColor(unsigned long, RimEclipseCellColors*) at ResInsight/ApplicationLibCode/ModelVisualization/RivReservoirPartMgr.cpp:129 [7] RimEclipseView::updateVisibleCellColors() at ResInsight/ApplicationLibCode/ProjectDataModel/RimEclipseView.cpp:1119 [8] RimEclipseView::onUpdateDisplayModelForCurrentTimeStep() at ResInsight/ApplicationLibCode/ProjectDataModel/RimEclipseView.cpp:951 [9] Rim3dView::updateDisplayModelForCurrentTimeStepAndRedraw() at ResInsight/ApplicationLibCode/ProjectDataModel/Rim3dView.cpp:673 [10] RiuViewer::setCurrentFrame(int) at ResInsight/ApplicationLibCode/UserInterface/RiuViewer.cpp:1042 [11] RimViewLinker::updateTimeStep(Rim3dView*, int) at ResInsight/ApplicationLibCode/ProjectDataModel/RimViewLinker.cpp:119 [12] RiuViewer::slotSetCurrentFrame(int) at ResInsight/ApplicationLibCode/UserInterface/RiuViewer.cpp:365 [14] caf::FrameAnimationControl::changeFrame(int) at ResInsight/cmakebuild/Fwk/AppFwk/cafAnimControl/cafAnimControl_autogen/EWIEGA46WW/moc_cafFrameAnimationControl.cpp:321 [24] RiaGuiApplication::notify(QObject*, QEvent*) at ResInsight/ApplicationLibCode/Application/RiaGuiApplication.cpp:1828 [30] RiaGuiApplication::notify(QObject*, QEvent*) at ResInsight/ApplicationLibCode/Application/RiaGuiApplication.cpp:1828 [41] main at ResInsight/ApplicationExeCode/RiaMain.cpp:267 [42] __libc_start_main at :0
ResInsight
ResInsight is an open source, cross-platform 3D visualization and post-processing tool for reservoir models and simulations.
Key Features
- 3D Visualization: Grid properties, faults, LGRs, intersections, contour maps and cell filters, using multi-core CPUs for responsive operation
- Ensembles: Grid and summary ensembles with statistics, contour maps and correlation analysis
- Plotting: Summary, well log, RFT, PLT, well allocation, flow characteristics, cross plots and histograms
- Wells and Completions: Well paths, perforations, fishbones, valves and fractures, with export of completion data (COMPDAT, WELSEGS, COMPSEGS)
- Geomechanics: Abaqus results with derived stress and strain quantities
- Seismic: Seismic volumes displayed together with grids and wells
- Model Export: Sector models and grid properties in simulator input format, surfaces as IRAP and TSurf
- Python API: The
ripspackage drives ResInsight and exchanges data through gRPC - GNU Octave: Result manipulation and computations with two-way data exchange
- Cloud Data: Well paths and well logs from OSDU, and grid properties from Sumo
Supported Input Formats
- Grids and results: Eclipse/OPM Flow binary output (
*.GRID,*.EGRIDwith*.INIT,*.UNRST,*.XNNN), Eclipse input (*.GRDECL), ROFF (*.roff,*.roffasc) - Summary data: Eclipse/OPM Flow summary (
*.SMSPEC,*.ESMRY), observed data (*.RSM,*.txt,*.csv), Reveal and StimPlan summary (*.csv) - Well paths:
*.dev,*.asc,*.ascii,*.rmswell,*.w,*.json - Well logs: LAS (
*.las), CSV - Completions: Perforation intervals (
*.ev), valve templates, StimPlan and thermal fracture templates (*.xml,*.csv) - Surfaces: IRAP (
*.irap,*.gri), GOCAD TSurf (*.ts), VTK (*.vtu,*.pvd), point sets (*.ptl,*.xyz,*.dat) - Geomechanics: Abaqus (
*.odb,*.inp), VTK (*.pvd) - Seismic: ZGY (
*.zgy), OpenVDS (*.vds), SEG-Y (*.sgy,*.segy) - Other: Formation names (
*.lyr), polygons (*.pol,*.csv,*.dat), VFP tables (*.vfp,*.ecl), well measurements, pressure-depth data
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
- macOS (Apple Silicon and Intel)
Documentation
Development
Source Code
git clone https://github.com/OPM/ResInsight.git
Minimum Requirements
- gcc 13
- clang 19
- AppleClang 17 (Xcode 16)
- CMake 3.26
- 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! See CONTRIBUTING.md for the issue policy and pull request guidelines.
- Use the
devbranch for contributions and pull requests - Releases are defined by tags
- 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
375 MiB
0 Stars
4 Watchers
0 Forks
Languages
C++
88.8%
ECL
4.7%
TypeScript
2.9%
Python
1.8%
CMake
0.6%
Other
1%