Magne Sjaastad 63eaa1266d Address review feedback on crash-fix batch
- Camera::fitView/computeFitViewEyePosition: derive one corrected, non-parallel up vector and use it consistently for right, upNorm, planeTop and the final setFromLookAt(), instead of only repairing the right vector. Previously the degenerate (parallel dir/up) case still produced a singular view matrix because up itself was never corrected. Added a regression test exercising fitView() end-to-end (not just computeFitViewEyePosition()) that checks the resulting direction/up/right form a valid orthonormal basis.
- RimViewController::updateCameraLink/updateTimeStepLink: guard against ownerViewLinker()->masterView() being null (RimViewLinker::setMasterView(nullptr) is a supported state), not only against a null view linker.
- RicHistogramPlotTools: use RiaGuiApplication::isRunning() before calling RiaGuiApplication::instance(), since instance() itself asserts when there is no running GUI application.
- RimDockWindowController::updateViewerWidget: create the view widget before the dock widget, so a failed view-widget creation does not leave a dock widget allocated without a dock manager (which deleteDockWidget() cannot clean up).
- RimStimPlanModelCalculator::calculateFormation: avoid continue via a small lambda, and reject double values outside the range of int before the static_cast to avoid undefined behavior.
2026-10-05 19:56:10 +02:00
2024-10-04 13:25:20 +02:00
2024-10-31 15:39:52 +01:00
2013-04-19 08:58:57 +02:00

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 rips package 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, *.EGRID with *.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 dev branch 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.

Languages
C++ 88.8%
ECL 4.7%
TypeScript 2.9%
Python 1.8%
CMake 0.6%
Other 1%