Magne Sjaastad d8dc1c051f Fix crash in Camera::computeFitViewEyePosition with zero view direction
Zoom All could pass a zero view direction (eye equal to view reference
point). The up vector then also became zero, giving a plane with a zero
normal and an assert in Plane::distanceToOrigin. Fall back to the Y axis
when the direction is zero or undefined. Follow-up to the parallel
dir/up fix in #14849.

Call stack:
[5] cvf::AssertHandlerConsole::handleAssert(char const*, int, char const*, char const*) at cvfAssert.cpp:125
[6] cvf::Plane::distanceToOrigin() const at cvfPlane.cpp:313
[7] cvf::Camera::computeFitViewEyePosition(cvf::BoundingBox const&, cvf::Vector3<double> const&, cvf::Vector3<double> const&, double, double, double) at cvfCamera.cpp:361
[8] caf::Viewer::zoomAll() at cafViewer.cpp:992
[9] caf::CmdFeature::actionTriggered(bool) at cafCmdFeature.cpp:176
2026-10-19 19:58:37 +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%