mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-26 07:00:17 -05:00
92da6633bb5a47fe16ac03ef585a220d100b4d4b
Introduce a shared base for tree-shaped folder containers that hold a list of leaf items together with a list of subcontainers of the same kind. Replaces the per-class plumbing (subcollections field, top-folder flag, add/remove/find sub-collection, factory) that is duplicated across RimSurfaceCollection, RimPolygonCollection and similar candidates. - caf::PdmNestedCollectionBase: non-templated PdmObject base exposing collection-name, add-new-subcollection, leaf-check and topmost-folder marking for generic command features and script methods. - caf::PdmNestedCollection<SelfT, ItemT>: CRTP template that owns the typed m_subCollections field and inherits the m_items array from PdmObjectCollection<ItemT>. Provides allItems(), find-sub-collection, and a typed factory hook. - RimNestedMirrorCollectionInView: view-side analogue for in-view collections that mirror a nested source collection, with orphan-sweep + find-or-create + reorder sync. Design rationale (templated vs non-templated, break-even on derived class count) lives in docs/pdm-nested-collection-design.md. No callers migrated in this commit.
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
364 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%