mirror of
https://github.com/OPM/ResInsight.git
synced 2026-09-03 20:53:13 -05:00
03236ee737a477bfab4ae0faab54b5c99f8df020
Replace the 1.0 grammar with a version 2.0 designed to be easier to parse and easier to write. Variables are now typed: DATE, DURATION (whole days) and WELL alias declarations replace the untyped SET, and using a variable of the wrong type produces an error citing both the use and declaration site. Well blocks open with an explicit WELL keyword (alias or double-quoted literal name), quoting is double quotes throughout, and date arithmetic accepts signed chains of integers and DURATION variables such as @START + RAMP - 2. ORIONEVENTS 1.x headers are rejected with a migration message. FILTER and PERFID are no longer parse errors; any KEY=VALUE attribute parses and the applier warns and ignores the not-yet-supported keys (FILTER, PERFID, DSHIFT) while still applying the rest of the event. The parser now recovers per line and reports every error in one pass via OrionParseError.errors, unknown variables, event types and keywords get difflib-based did-you-mean hints, and a stdlib-only validator CLI runs as python3 -m rips.orion_events <file>. The eager orion_events import in rips/__init__.py is replaced by a PEP 562 lazy import so the -m entry point does not trigger runpy's double-import warning. Update the shipped sample file and example script to the 2.0 syntax and extend the test suite from 27 to 55 tests covering typed declarations, offset arithmetic, alias resolution, multi-error diagnostics and the CLI.
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
374 MiB
Languages
C++
88.7%
ECL
4.9%
TypeScript
3%
Python
1.5%
CMake
0.6%
Other
1.1%