Commit Graph
719 Commits
Author SHA1 Message Date
Magne Sjaastad 8e4000590c Add RiaSummaryAddressCollectionTools utility module
Refactor summary address collection logic into a new utility module, RiaSummaryAddressCollectionTools, with functions for object identification, curve definition generation, duplicate filtering, and address-to-case/ensemble mapping. Update RimSummaryPlot to use these utilities, improving modularity and maintainability. Add comprehensive
unit tests for the new module.

Adds test for mock summary case
2026-02-18 14:27:36 +01:00
Magne Sjaastad d52f595c41 Refactor: Rename RiaStatisticsTools to RigStatisticsTools
Replaced all references to RiaStatisticsTools with RigStatisticsTools across the codebase, including header includes, static method calls, and test files. Updated CMake configuration to remove RiaStatisticsTools and add RigStatisticsTools. Renamed and updated related unit tests. No changes to logic or algorithms; this is a namespace and organizational refactor for consistency. Also added ApplicationLibCode include directories as PRIVATE to relevant targets.
2026-02-18 09:22:39 +01:00
Magne Sjaastad 9aa5a3d222 Move number formatting setting to CAF to enable use in UI editors
* Move RiaNumberFormat to cafPdmUiNumberFormat in caf framework
* Add unit test
2026-02-16 11:32:04 +01:00
Magne Sjaastad 6cdcc4493a #13615 Read cloud config files, do not store in preferences
Adds config file path to cloud service prefs.

This change makes the configuration file used to set the preferences accessible within the application. The fields are now set to read-only and IO disabled by default.
2026-02-13 14:53:33 +01:00
Magne Sjaastad aa3372efce Add support for Reservoir Grid Ensembles
Introduce RimReservoirGridEnsemble and RimReservoirGridEnsembleBase to manage ensembles of grid-only Eclipse cases. Enable detection of identical grids for shared operations and statistics. Integrate grid ensembles into project structure, UI, and menu system. Refactor statistics and view handling to support both case groups and grid ensembles via a common interface. Add deferred grid loading, robust case referencing, and migration for well data source fields. New features and menu items allow creation and management of grid ensembles from file sets, enabling new workflows for grid-only ensemble analysis.
2026-02-13 14:35:52 +01:00
Magne Sjaastad a2b3445692 Add support for custom percentiles in ensemble statistics
Introduced custom percentile handling for ensemble statistics:
- Added "CUSTOM" statistics type and percentile field to RifEclipseSummaryAddress
- Refactored RimEnsembleStatisticsCase to store and compute arbitrary percentiles
- RimEnsembleStatistics now parses custom percentiles from UI input
- RimEnsembleCurveSet and related interfaces updated to handle custom percentile curves and labels
- Hashing and statistics calculations now include custom percentiles for cache validity
2026-02-12 14:25:48 +01:00
Magne Sjaastad 93bd0b9c9d Refactor well log track settings into modular classes
* Refactor well log track settings into modular classes

Major refactoring of RimWellLogTrack to delegate property axis, formation, region annotation, and well path attribute settings to dedicated settings classes. Introduces RimWellLogPropertyAxisSettings, RimWellLogFormationSettings, RimWellLogRegionAnnotationSettings, and RimWellLogWellPathAttributeSettings, each encapsulating related fields, UI logic, and option handling. Old fields are retained for migration and backward compatibility. Updates enums and signatures for consistency.
2026-02-09 15:33:18 +01:00
Magne Sjaastad cff1ab08c4 Add thread-safe RiaStringPool utility and unit tests
Introduce RiaStringPool for efficient shared string storage and retrieval by index, with thread-safe access using shared mutex. Pre-allocate empty string at index 0. Add comprehensive unit tests covering core functionality, concurrency, edge cases, and realistic usage.
2026-02-05 13:49:00 +01:00
Magne Sjaastad f1f25ca760 #13510 Add exclusion support to range selection parsing
Range selection functions now support exclusion tokens (e.g., "!4", "!5-7") for omitting values or ranges. UI placeholder texts and documentation updated to reflect new syntax. Comprehensive tests added for exclusion cases, including edge scenarios. Open-ended exclusion ranges are safely ignored in min/max variant. This enhances flexibility and precision for value selection.
2026-02-04 18:07:28 +01:00
Magne Sjaastad 88524ac13f Add network summary keywords and refactor keyword import
Added keywords_network.json with network-related summary keywords.
Updated resource file to include the new JSON. Refactored keyword
import logic to accept multiple files, enabling loading of all
summary keyword sets (Eclipse, 6x, and network). This enhances
extensibility and supports network property summaries.
2026-02-03 17:14:45 +01:00
Magne Sjaastad 76417b78f5 Allow SSL protocol override via RESINSIGHT_SSL_PROTOCOL
Add support for configuring the default SSL/TLS protocol used by Qt's network stack through the RESINSIGHT_SSL_PROTOCOL environment variable. This provides a workaround for OpenSSL 3.x crashes on RHEL8 by allowing users to force TLS 1.2 or another protocol. Logs a warning if an invalid value is provided. Supported values include TlsV1_0, TlsV1_1, TlsV1_2, TlsV1_3, AnyProtocol, SecureProtocols, and their "OrLater" variants.
2026-01-30 13:42:58 +01:00
Magne Sjaastad d9c26c2c6d Improve cleanup and signal disconnection on teardown
Add explicit disconnection of signals and abort pending network replies in destructors and shutdown methods to prevent unwanted callbacks and threading issues during object destruction or shutdown. This enhances robustness and safety, especially in asynchronous and multi-threaded contexts.
2026-01-29 11:16:22 +01:00
JJ 94c3059fd8 Add support for SICD valves (#13496)
* Add SICD parameters
* Add wsegsicd valves to completion export
* Add python method to read template info from valve
* Update tests
2026-01-29 11:16:05 +01:00
Magne Sjaastad 30793beef2 Add --loglevel argument for command line log level control
Introduce support for setting the application's log level via a new --loglevel command line argument.
Log level is parsed early in initialization and can be set to DISABLED, ERROR, WARNING, INFO, or DEBUG (case-insensitive).
The RILogLevel enum now includes a DISABLED value.
Logger initialization in both console and GUI applications now respects the command line log level if provided, otherwise defaults to preference-based settings.

Fixes by clang-format
2026-01-23 13:31:58 +01:00
Magne Sjaastad c98777e9bb Lower log level for config and service init messages
Changed logging from info to debug for config imports, CAF logging, socket server, and gRPC server startup. OpenTelemetry initialization now only runs if enabled, with results logged at debug level.
2026-01-22 12:49:34 +01:00
JJ 3e06a61ed5 Popup window placement improvements (#13464)
* Improve parent settings for message boxes and progress info
2026-01-21 19:11:41 +01:00
Magne Sjaastad ae8cc0ecad Add MSW_SEGMENT well path component type and support
Introduce MSW_SEGMENT to WellPathComponentType enum, assign DARK_CYAN color, update sorting order, and add plotting logic with column features and rectangular marker for visualization.
2026-01-20 14:13:22 +01:00
magnesj 4966a179cb Fixes by clang-format 2026-01-20 13:44:06 +01:00
Magne Sjaastad 71a90a8cb9 Enhances telemetry data with user info
Adds username hashing for privacy-preserving telemetry and includes full username for crash reports to aid debugging.
Also incorporates OS information into crash reports for better diagnostics.
2026-01-20 13:44:06 +01:00
Magne Sjaastad cfd634e206 Updates PDM UI label positioning
Updates the way UI label positions are set for PDM fields.
2026-01-08 21:44:58 +01:00
Magne 1e0ddc2b03 Fixes crash reporting for empty lines that might happen if limited debug info is available. 2026-01-05 13:26:54 +01:00
magnesj 937d9e0050 Fixes by clang-tidy 2025-12-23 08:19:11 +01:00
Magne Sjaastad 96eebdf8ef Enhances crash reporting for Application Insights
Refactors crash reporting to include structured stack trace data formatted as JSON for better integration with Application Insights.
2025-12-22 16:41:29 +01:00
Magne Sjaastad d3bc3c554e Adds telemetry for application startup 2025-12-22 16:41:29 +01:00
Magne Sjaastad 7f0ef8dbc4 Simplifies OpenTelemetry integration
Removes conditional compilation for OpenTelemetry, ensuring it is always included.

Reinitializes OpenTelemetry based on user preferences, ensuring that changes to telemetry settings are applied immediately.

Configures cloud services, including OpenTelemetry, after the logger is initialized, ensuring that telemetry data is properly captured and transmitted.

Retrieves system username for telemetry tracking.
2025-12-22 16:41:29 +01:00
Magne Sjaastad 60081466a7 Improves stack trace readability.
Modifies the stack trace reporting to only include the path relative to the ResInsight root folder, enhancing readability and reducing verbosity in crash reports.
2025-12-18 08:40:30 +01:00
Magne Sjaastad 4274c9079d Enables OpenTelemetry integration
Initializes OpenTelemetry after the application configuration
is loaded, allowing for telemetry data collection.

Reports application crashes to OpenTelemetry when enabled,
providing stack trace information for debugging.
2025-12-18 08:40:30 +01:00
Magne Sjaastad a754b44e64 Loads OpenTelemetry configuration from file
Adds support for loading OpenTelemetry configuration from a JSON file.

Generalizes configuration file loading to handle OSDU, SUMO and OpenTelemetry configurations using a common function.

Improves JSON value parsing to support strings, doubles, and booleans.
2025-12-18 08:40:30 +01:00
Magne Sjaastad 6c11e53f21 Adds OpenTelemetry integration
Adds support for OpenTelemetry to enable telemetry and crash reporting.

This change introduces:
- New RiaPreferencesOpenTelemetry class for managing OpenTelemetry configuration.
- RiaOpenTelemetryManager class for handling the OpenTelemetry lifecycle,
  event processing, and error handling.
- Configuration options in preferences to enable, disable, and configure
  OpenTelemetry.
- Asynchronous event reporting.
- Crash reporting capabilities.
- Health monitoring features.
2025-12-18 08:40:30 +01:00
Magne Sjaastad 7be96739c5 Enables loading preferences in regression tests
Allows loading of global and test-specific preferences during regression tests.
2025-12-14 07:45:18 +01:00
Magne Sjaastad 54e8b59ccf #13283 OSDU: Add ExistenceKind support and improve well import wizard
- Add ExistenceKind field to OsduWellboreTrajectory struct
- Extract ExistenceKind from OSDU trajectory JSON data
- Add ExistenceKind field to WellInfo structure
- Display ExistenceKind in RimOsduWellPath UI under OSDU group
- Add Enter key support for field search in import wizard
- Show trajectory count in well import summary page
2025-12-10 14:49:30 +01:00
jonjenssen 2eb9b0db51 Use better naming in UI 2025-12-10 11:44:26 +01:00
Magne Sjaastad 6e1ba530c4 Adds RiaPhaseTools for phase system analysis
Adds a new utility class, RiaPhaseTools, which provides functionalities to analyze phase systems in reservoir simulations.

This class includes methods for checking the presence of individual phases (oil, gas, water), identifying different phase systems (three-phase, two-phase, single-phase), and retrieving a system description for display in the UI. It also includes utility functions to retrieve the preferred name for PCOG curves based on the detected phase system.
2025-12-09 12:41:35 +01:00
JJ 6689000d85 New Sector Model Export user interface (#13247)
* Add sector model export wizard
* GUI cleanup
* Use job name as deck name for simulation runs
* Remove new things from old export GUI
* Use radio-buttons for enum dropdowns
2025-11-28 16:43:51 +01:00
Kristian Bendiksen b54a335270 #13026 OSDU: Get wellbores by field ID instead of wells
Changed the API call order to first retrieve wellbores by field ID,
then extract well information from the wellbore data.WellID field.

Previously:
- Get wells by field ID
- For each well, get wellbores by well ID

Now:
- Get wellbores by field ID (wellbores contain data.WellID)
- Wells are identified from the wellbores' wellID field

Updated RiuWellImportWizard to use the new flow.
2025-11-21 14:07:01 +01:00
Magne Sjaastad 0f20fd4e92 Reduce memory usage and improve performance for summary reload
* Select top level summary cases and ensembles for reload
Simplifies the summary case reloading process by removing the unnecessary `createAddressObjects` parameter and instead using the `showTreeNodes` flag to determine when to create address objects.

This change optimizes the loading process, especially for ensembles, by avoiding the creation of addresses for all cases, which improves performance. It also moves the responsibility of building tree nodes into a dedicated function `buildTreeNodesIfRequired` which is only called when needed.

* Remove obsolete parallel loop
* Use zoomAll
* Add updateConnectedEditors to make sure the tree nodes are updated correctly
2025-11-19 14:30:13 +01:00
Magne Sjaastad 544e9eedd9 Improve spell checker using codespell
* Configures automated spell checking with codespell
Adds GitHub workflows and configuration files for automated spell checking using `codespell`.

This includes:
- A workflow for checking pull requests and preventing new typos
- A workflow for automatically fixing typos in the main codebase
- Configuration files for `codespell` to ignore specific terms and file types
- Documentation on how to use and configure the spell checking workflows.

* Corrects minor spelling and grammar errors.
2025-11-19 10:25:32 +01:00
JJ 7c8aadcd60 Update OPM Flow Job Preferences (#13172)
* Add job settings, with default settings in preferences.
* Move opm flow settings to separate preferences tab
* Add warning/error detection add display count next to progress
* Adjust size of preference window
2025-11-14 12:56:23 +01:00
JJ 39c2282904 Handle active cells in files with thermal data (rockv) (#13159)
* Handle active cells in files with thermal data from intersect
2025-11-12 07:13:24 +01:00
Magne Sjaastad be7a01d0cf #13147 Simplifies summary import options
Removes ensemble summary import mode as separate cases import is not supported.

Simplifies the UI by removing the ensemble import option, and updates the logic to handle summary import mode correctly by only supporting skip or unified imports. If separated cases is required for a single summary case, this can be activated by using the import dialog.

Adds logic to initialize after read to ensure that if SummaryImportMode is SEPARATE_CASES, it changes to NOT_IMPORT.
2025-11-10 13:07:21 +01:00
Magne Sjaastad 47e79454b4 #13130 Plot curves are not displayed for default summary plot 2025-11-05 13:57:20 +01:00
Magne Sjaastad 186992ebb6 Improves relative permeability plot display
Enhances the relative permeability plot by:

- Adding support for SATNUM and IMBNUM result display in cell reference information.
- Disabling the imbibition curve selection by default and enabling it dynamically based on the IMBNUM value.
- Removing the `satnum` argument from `calculateRelPermCurves` as it's no longer needed.
2025-11-03 16:07:40 +01:00
Magne Sjaastad fd5bdc96d2 Enables experimental MSW export to new folder
Adds a feature keyword to enable an experimental MSW export
to a separate folder, facilitating testing of a new data
extraction approach.
2025-11-03 13:40:46 +01:00
JJ 1eaf50b6b9 Support running jobs without blocking GUI (#13040)
* Add view job log command.
* Add stop job command.
* Do not block ui while job is running.
* Show progress while job is running
* Make sure user gets notified of running jobs when exiting ResInsight or closing current project.
2025-10-18 02:42:11 +02:00
Magne Sjaastad 00a58a1fd9 Introduces common readout settings for summary multi plots
Introduces common readout settings for summary multi plots, allowing users to apply a single readout configuration across multiple plots instead of configuring each individually.
2025-10-16 14:09:15 +02:00
Magne Sjaastad 0b7a4b12f1 #13019 Remove assert from RiaSummaryTools::summaryCaseMainCollection() 2025-10-14 14:47:58 +02:00
Magne Sjaastad 62188fa9f2 Improve naming of cell related result names
Use radial/theta when required for GUI
Hide DX/DY from the list of available results
2025-10-08 16:03:56 +02:00
Magne Sjaastad e98bc867e4 #12927 Add optional time threshold before creating ESMRY
When checking timestamp for ESMRY vs SMSPEC, allow ESMRY to be written before SMSPEC within a given limit in time difference.
2025-10-07 12:18:03 +02:00
Magne Sjaastad a73999323a Move defines into separate file 2025-10-03 08:37:24 +02:00
Magne Sjaastad 336e4b65fd Consolidate linear interpolation algorithms
Replaces custom linear interpolation logic with
`std::upper_bound` for improved efficiency.

Refactors the permeability plot panel to utilize the improved
interpolation tool.
2025-10-03 08:37:24 +02:00