Commit Graph
316 Commits
Author SHA1 Message Date
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 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
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
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
Magne Sjaastad 47e79454b4 #13130 Plot curves are not displayed for default summary plot 2025-11-05 13:57:20 +01:00
Magne Sjaastad 0b7a4b12f1 #13019 Remove assert from RiaSummaryTools::summaryCaseMainCollection() 2025-10-14 14:47:58 +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
JJ 727ba200ba Opm Flow Job DATES updates (#12952)
* Split dates keywords with multiple records into single record keywords
Add support for setting environment when running opm flow

* Date handling improvements

* Clean up date and position handling a bit

* Add support for setting a stop date for the simulation

* Use Opm::ParserKeywords keywordName for all keywords

* Re-enable msw support (mark as experimental)

* Bump version to dev-03
2025-09-29 16:57:21 +02:00
Magne Sjaastad b07e49258e Improve radial grid import
* Remove unused includes
* Use designated initializers struct members
* Add warning for active cell opm grid reader
* Moves radial grid import to file readers
* Adapts cell range filter labels for radial grids
2025-09-26 10:26:43 +02:00
magnesj a70a094caf Fixes by clang-tidy 2025-09-12 05:45:56 +02:00
Magne Sjaastad 7246f0596b Add logging bridge between caf and ResInsight 2025-09-11 13:43:52 +02:00
Magne Sjaastad 48ae7b2f04 Adds angle conversion utilities
Implements type-safe angle (degrees and radians) representation classes.

Provides utilities for converting between Cartesian and cylindrical
coordinate systems.

Includes a unit test suite for validation.
2025-09-10 08:23:09 +02:00
Magne Sjaastad b8566b7761 #12873 Make sure addresses are created on single summary case reload 2025-09-02 15:48:12 +02:00
Magne Sjaastad 35d1279b1d Prepare 2025.09.0-RC_1
* Migrates obsolete color field to main color
* Sets filter mode for older project files
* Adds surfio license information
* Removes log to file preference
* Refines short name generation.
2025-08-28 20:14:53 +02:00
Magne Sjaastad 4135a743fe Release preparations
* Adds a bounds check on the node index to prevent accessing invalid memory locations.
This prevents potential crashes caused by out-of-bounds access when retrieving summary variable values.
* Updates warning message for incomplete deltas
* Plot based on a single realization from a file set ensemble is not restored correctly on project load
* Populate result addresses if no addresses are present
* Adds CNV_ (convergence) result name
* Avoid include of RiaResultNames.h in header file
2025-08-27 14:22:11 +02:00
Magne Sjaastad b8fc3df6f5 Adjustments for release
* Make sure RFT curve settings are restored correctly, use three numbers to identify project version string to compare with.
* Increases dialog window sizes for summary template operations
* Move improved summary import setting to Summary tab
* #12838 Use discrete linear as default legend for CNV_* result names
* Bump version to 2025.04.4-dev.10
2025-08-25 20:11:04 +02:00
Magne Sjaastad 8dff7b46c9 Improves robustness for curve merging operations
- Ensures a more robust size multiplier calculation by validating the weighted mean and preventing division by zero.
- Addresses a potential division by zero during curve interpolation when the X values are very close, ensuring a more robust and accurate result.
2025-08-22 06:47:07 +02:00
Magne Sjaastad 0d738013c4 #12768 Make sure name of delta-summary-cases is stored correctly 2025-08-19 13:55:35 +02:00
Magne Sjaastad 09309f3051 Guards against null summary reader
Addresses potential null pointer dereferences by adding checks for null summary readers before accessing their data.

This change prevents crashes and improves the robustness of summary data processing, particularly when dealing with incomplete or corrupted summary data.

The checks are added in the following locations:
- RiaSummaryPlotTemplateTools
- RiaSummaryStringTools
- RicPlotProductionRateFeature
- RicSummaryPlotFeatureImpl
- RimAnalysisPlot
- RimSummaryCalculation
- RimEnsembleCurveFilter
- RimEnsembleCurveSet
- RimSummaryEnsemble
- RimSummaryMultiPlot
- RimSummaryRegressionAnalysisCurve
- RimSummaryEnsembleSumo
2025-08-16 15:20:55 +02:00
Magne Sjaastad fc85f3adee Guards against null summary reader
Prevents potential crash when accessing the summary reader, ensuring that `createAddressesIfRequired` is only called when the reader is valid.
2025-08-16 15:20:44 +02:00
Magne Sjaastad 5d22c7791d Adds ensemble name to summary case options 2025-08-15 13:00:48 +02:00
Magne Sjaastad 41870a2c6d Enables setting thread count via command line
Allows users to set the maximum number of threads used for parallel processing via a command-line argument. The thread count can also be set via preferences. Command line takes precedence.
2025-08-13 13:00:49 +02:00
Magne Sjaastad a59c8d0a3f #12722 Fix grouping of files and detection of realization number
* Detect single ensemble for Everest file grouping
* Enhance realization number extraction to support underscore separator
2025-08-08 09:57:25 +02:00
Kristian Bendiksen 90d1555de3 Python: add api for getting values back from key-value store. 2025-08-08 08:58:31 +02:00
Magne Sjaastad b0a86de653 Avoid overwrite of axis object for newer project file versions
Add project file version check to the usage of m_plotAxis_OBSOLETE in RimSummaryCurve::initAfterRead()
2025-08-07 13:45:08 +02:00
Kristian Bendiksen ade8e1d7e6 Remove QT_CHARTS dependency. 2025-07-30 13:39:02 +02:00
Magne Sjaastad e5d43c74ed Triggers plot redraw after project load
Ensures that plot windows are properly updated after a project is loaded during regression tests.

Required after the ensemble curve changes in 2f9971cb30
2025-07-30 08:34:13 +02:00
Magne Sjaastad 2f9971cb30 Enhances ensemble curve handling and performance
* Removes obsolete code
* Return first non-empty return value from reader
* Simplifies water cut curve visibility check
* Defers the page update until after all plots have been added.
* Add settings to control number of threads
* Refactors ensemble curve handling and visibility

Improves the efficiency of ensemble curve set management by separating realization and statistics curves into distinct collections. This allows for more targeted operations, such as selectively showing/hiding realization curves without affecting statistics.
Also defers data loading of curves until they are actually displayed, optimizing performance.
The visibility updates are modified to optionally skip updating the parent plot, providing more control over replotting behavior and preventing unnecessary updates.
2025-07-30 07:16:29 +02:00
Magne Sjaastad ff3773c85d Logging: Add accumulated timing for sub tasks when loading project 2025-07-28 15:29:01 +02:00
Magne Sjaastad de35c760c0 #12663 Add file search tools and updates ensemble import
Introduces a new set of tools for searching files and directories recursively.

Update the ensemble import functionality to use the new file search tools.

Mark the old file system search function as obsolete.
2025-07-24 15:18:14 +02:00
Magne Sjaastad b4e99e9a3a Improves summary import for ensemble workflows
- Introducing a configuration system to automatically detect file patterns for restart and parameter files across ensemble realizations.
- Adding UI elements to control improved summary import settings.
- Modifying summary file reader to use the determined file patterns.
2025-07-23 15:58:56 +02:00
Magne Sjaastad f9f9b6b07b Refactor logging of elapsed time 2025-07-23 15:23:08 +02:00
Magne Sjaastad 4e94169b63 Ensures addresses are created for single summary cases
Addresses are now explicitly created for summary cases upon loading or importing.

Remove a potentially costly rebuild if when no calculations are present.
2025-07-21 16:46:54 +02:00
Magne Sjaastad 66ccc1201e Add flag to control creation of summary addresses 2025-07-18 08:47:01 +02:00
Magne Sjaastad 2305a73908 Improves string trimming and parsing
Refactors string trimming functions for improved performance by using a lookup table for whitespace characters.

Also adds a function to split a string into two tokens at the first whitespace.
2025-07-17 13:52:35 +02:00
Magne Sjaastad b99a213ae7 Add resampling method to RiaCurveMerger
Delete unused parameter
2025-06-16 10:37:34 +02:00
JJ bda598dd37 Run Opm Flow jobs from ResInsight (#12580) 2025-06-11 15:43:53 +02:00
Magne Sjaastad 88e0aad8cf Several adjustments user interface and project file
* Avoid writing error message if observed data for a well is not present
* Add missing log text during replace summary ensemble
* Make sure plot window is visible after importing summary ensemble
* Add observed FMU folder to path section
* Move worker functions to RiaProjectFileTools
* Reset numbering of path IDs when saving project.
* Remove warning when fault name is longer than 8 characters
2025-06-03 14:29:44 +02:00
Magne Sjaastad 27556f36ae Make sure std::equal is executed on valid range of vectors
Previous solution did not check for equal length of these vectors, causing out of bounds compare. Detected by debug build using MSVC
2025-06-02 15:29:46 +02:00
Magne Sjaastad afe2434b63 Always write log files to the home folder #12540
- Always log to file using default values. Log to home_folder/.resinsight/logs.  Files are rotated, 5MB per file and maximum of 3 files.
- Add checkbox to system preferences to control file logging
2025-06-02 13:01:55 +02:00