Magne Sjaastad cc44d6c3be #13967 RigMainGrid: Invalidate face-normal direction cache on setFlipAxis
isFaceNormalsOutwards lazily computes whether cell face normals point outward
and caches the answer in m_isFaceNormalsOutwardsComputed. setFlipAxis was
mirroring the node coordinates without resetting that cache, so any consumer
that had triggered the lazy computation before the user toggled Flip X/Y kept
the pre-flip answer. The well-path/cell intersection in
RigEclipseWellLogExtractor::calculateIntersection then inverted the
entering/leaving flag the wrong way, causing the proper-pair filter in
populateReturnArrays to discard every intermediate cell along a perforation
interval - only the start and end cells survived through the
well-starts/ends-inside-a-cell fallback.

Reset m_isFaceNormalsOutwardsComputed when the flip state actually changes.

Add unit tests covering all four combinations of Flip X / Flip Y for both the
data-level node mirroring and the well-path/cell intersection (freshly-built
grid and interactive-toggle scenarios).
2026-05-08 10:30:17 +02:00
2024-10-04 13:25:20 +02:00
2026-03-26 11:20:41 +01:00
2024-10-31 15:39:52 +01:00
2026-01-07 16:07:09 +01:00
2013-04-19 08:58:57 +02:00
2026-03-26 11:20:41 +01:00
2026-01-07 16:07:09 +01:00

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 dev branch for contributions and pull requests
  • Note that the master branch 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.

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