Commit Graph
1873 Commits
Author SHA1 Message Date
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 4d9a723e32 #12790 Replaces transparency with opacity settings
Simplifies color handling by replacing transparency settings with opacity for curve and fill colors.

This change provides a more intuitive user experience and ensures consistent behavior across the application.

- Renames "ColorTransparency" to "ColorOpacity" for RimCurveSetAppearance.
- Introduces "CurveColorOpacity" for RimPlotCurveAppearance.
- Updates blending calculations to correctly use opacity.
- Adjusts UI slider attributes for opacity settings, including minimum, maximum and decimals.
2025-08-27 13:50:36 +02:00
jonjenssen 59f399ed54 Build fix for qt6.9 on Windows 2025-08-27 12:46:18 +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
Kristian Bendiksen 83ae9fb7ac #12569 Python: Add API for creating well paths from XYZ coordinates
Add import_fixed_trajectory_well_path() method to WellPathCollection that enables
creation of well paths from coordinate lists in Python. Implements feature request
for programmatic well path creation without file-based imports.

- Add RimFixedTrajectoryWellPath class for coordinate-based well paths
- Add GRPC interface for coordinate data transfer via key-value store
- Add comprehensive Python API with input validation and error handling
- Add example script importing well on Norne.
- Add 7 unit tests covering all functionality and edge cases

The API allows creating well paths like:
well_path = collection.import_fixed_trajectory_well_path(
    name="MyWell",
    coordinates=[[x1,y1,z1], [x2,y2,z2], ...]
)
2025-08-25 13:27:31 +02:00
Magne Sjaastad 546edadf35 Refactors font size handling using RimFontSizeField
Replaces direct PdmField usage for font sizes with the new
RimFontSizeField. This provides a consistent way to manage font
size options across different plot types.

The RimFontSizeField encapsulates the logic for generating font size
options based on the default plot font size from preferences. This
removes redundant code in various plot classes and ensures that font
size settings are synchronized with user preferences.
2025-08-25 12:43:36 +02:00
Magne Sjaastad e455011199 #12808 Improves ensemble data handling and error reporting
Enhances the robustness of ensemble data processing by:

- Displaying a tooltip when data is missing for a realization.
- Checks if an enhanced summary file exists before attempting to open it.
- Refines the creation of the realization filter to accurately represent the range of available data.
2025-08-22 06:47:07 +02:00
Magne Sjaastad 588bfbaeed Adds beta feature postfix to "Jobs" object
Ensures that the "Jobs" object name reflects its beta status by appending the appropriate postfix.
This change helps to differentiate beta features from stable ones within the application.
2025-08-22 06:47:07 +02:00
Kristian Bendiksen b0483172b1 #12718 Add diameter and roughness specification for MD intervals
Implements interval-based diameter and roughness configuration for MSW completions
while maintaining backward compatibility with existing single-value approach.

- Add RimDiameterRoughnessInterval class for individual MD intervals
- Add RimDiameterRoughnessIntervalCollection for managing interval collections
- Extend RimMswCompletionParameters with interval-specific mode support
- Support both metric and field unit systems
- Provide validation and overlap detection for intervals
2025-08-21 08:48:43 +02:00
JJ 79c2c792f4 Add cmake configuration option to disable/enable openvds support (#12805)
* Add cmake configuration option to disable/enable openvds support
2025-08-21 08:31:10 +02:00
Magne Sjaastad acb582ab07 Extracts unit system from VFP data file
Modifies the VFP table extraction process to retrieve the unit system defined in the data file.

Convert ALQ values from SI to raw values
2025-08-19 14:06:33 +02:00
Kristian Bendiksen e58a8cd8cd #12773 Python: Add API for creating valve templates
- Add RimcValveTemplateCollection GRPC command with add_template method
- Support ICD, ICV, and AICD valve types with custom parameters
- Add setter methods for orifice diameter and flow coefficient
- Include Python tests and example demonstrating usage
- API: valve_templates.add_template(completion_type='AICD', orifice_diameter=7.3, flow_coefficient=0.2)
2025-08-19 08:35:45 +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
Kristian Bendiksen 34ef2a14a3 #12609 RimWellPathAicdParameters: add field migration.
QString to std::optional<double> where applicable.
2025-08-15 18:57:35 +02:00
Kristian Bendiksen ceb6afa719 Aicd Parameters: use optional<double> in optional PDM fields. 2025-08-15 18:57:35 +02:00
Kristian Bendiksen 13f6a57782 #12609 Python: Add functions to build valves from Python 2025-08-15 18:57:35 +02:00
Magne Sjaastad 7a36599723 #12740 Preserves VFP plot selections on update
Ensures that user-selected values in VFP plots are retained when available values are refreshed, preventing unexpected resets.
2025-08-15 15:04:19 +02:00
Magne Sjaastad ba0d351a52 VFP import: Adds ECHO keyword to parser
The import of VFP data using the OPM parser is not robust when parsing a small number of keywords.
Adds the ECHO keyword to avoid parsing errors that cause data to be skipped in certain models.
2025-08-15 15:04:19 +02:00
Magne Sjaastad 2bcb25f679 Ensures summary reader addresses are created 2025-08-15 13:00:48 +02:00
Magne Sjaastad 5d22c7791d Adds ensemble name to summary case options 2025-08-15 13:00:48 +02:00
Magne Sjaastad fc846debcc #12744 Improve handling of missing/incomplete realizations 2025-08-13 19:07:52 +02:00
Magne Sjaastad c854166be6 Fix issue with single realization when using resdata (#12737)
* Moves multi reader initialization
* Log error message if not able to open file
* Make keywordCount pure virtual

The base class `RifSummaryReaderInterface` is changed to be abstract and the `keywordCount` is declared as a pure virtual method, therefore the derived classes must implement the method.

This will ensure that all readers are responsible for reporting a keyword count.

* Ensures addresses are created if required

Calls `createAddressesIfRequired` on the summary reader to ensure addresses are created before accessing keyword count.
This prevents potential issues when the addresses haven't been initialized yet.
2025-08-12 12:52:26 +02:00
Kristian Bendiksen 9ae03cc633 Check for valid ensemble fracture statistics before use 2025-08-11 15:26:10 +02:00
Kristian Bendiksen 7977ed1dc0 Histogram: Provide filtering for ensemble parameter. 2025-08-11 15:26:10 +02:00
Kristian Bendiksen 814f94f1b4 Histogram: fix missing update when removing curve. 2025-08-11 15:26:10 +02:00
Kristian Bendiksen c9fedefea7 Histogram: Fix crash when toggling histogram plot check box.
The std::unique_ptr<RiuPlotWidget> would delete the widget when
RimHistogramPlot object was recreated. This would lead to a
double-delete since the RiuPlotWidget was already deleted by Qt
through the parent-child relationship.

Fixed by using QPointer, and leaving the cleanup to Qt.
2025-08-11 15:26:10 +02:00
Kristian Bendiksen 9f6e2ba665 Histogram: remove unused right axis. 2025-08-11 15:26:10 +02:00
Kristian Bendiksen f004cda2a1 Histogram: apply axis properties, and hide irrelevant options. 2025-08-11 15:26:10 +02:00
Kristian Bendiksen 6265e18186 Histogram: Hide irrelevant appearance options. 2025-08-11 15:26:10 +02:00
Kristian Bendiksen 4bec16aa83 #12614 Histogram: improve config grouping. 2025-08-11 15:26:10 +02:00
Kristian Bendiksen 35a77b9778 #12614 Histogram: make it easier to create histograms. 2025-08-11 15:26:10 +02:00
Kristian Bendiksen f6ca88f54b Multiplot: avoid changing "show window" state when viewer is destoyed. 2025-08-11 15:04:24 +02:00
Kristian Bendiksen f793abe46d #12558 Summary Plot: Fix crash when deleting sub plots.
The std::unique_ptr<RiuPlotWidget> would delete the widget when
RimSummaryPlot object was recreated. This would lead to a
double-delete since the RiuPlotWidget was already deleted by Qt
through the parent-child relationship.

Fixed by using QPointer, and leaving the cleanup to Qt.

Fixes #12558.
2025-08-11 15:04:24 +02:00
Magne Sjaastad 377d300767 #12719 Allow import of same well multiple times
Also exposes the well path collection object through the project object, and updates examples.
2025-08-08 08:56:15 +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
Magne Sjaastad b74c711b11 #12689 Enables scripting for Non-Darcy perforation parameters 2025-08-06 08:45:58 +02:00
Magne Sjaastad 79a7e94c8b Make sure duplication of RFT plot works as expected 2025-08-01 21:57:42 +02:00
Magne Sjaastad 2fc12a35e2 Regression Tests: Fix crash for summary plot with summary x-data 2025-08-01 13:45:10 +02:00
Kristian Bendiksen ade8e1d7e6 Remove QT_CHARTS dependency. 2025-07-30 13:39:02 +02:00
Kristian Bendiksen fa3f43456e Remove GridStatisticsPlot and EnsembleFractureStatisticsPlot. 2025-07-30 13:39:02 +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 ad08969502 #12676 Add more guarding on valid data before use
Fix crash situation when computing delta between two large ensembles
2025-07-28 15:29:36 +02:00
Magne Sjaastad 7e0a5ebd9e Make sure toggling visibility works when multiple plots are selected 2025-07-27 09:04:50 +02:00
Magne Sjaastad 8fd2336ceb Ensures address creation for summary readers
Population of addresses are now an explicit function createAndSetAddresses(). Make sure this function is called when required.

Related to https://github.com/OPM/ResInsight/commit/4e94169b6316b7cc567828fdabde090061f3d762
2025-07-25 08:42:13 +02:00
Magne Sjaastad 03e0cb3deb Marks plot as initialized after creation
Ensures that the plot is marked as fully initialized after all initial setup steps are completed.
2025-07-25 08:42:13 +02:00
Magne Sjaastad fdcd157238 Hide debug logging using keyword filtering
Also, adds a hint to the "KeywordsForLogging" preference to inform users about the 'enable-all' option.
2025-07-25 08:42:13 +02:00
Magne Sjaastad 213be04700 Do not convert full range string to wildcard in file set definition
Use of wildcard requires a file search and is slower than using the range string
2025-07-24 15:18:14 +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 15ce1f75aa #12604 Add appearance settings for ensemble curve sets
Introduces customizable appearance settings for curve sets in RFT plots, including color, line style, and symbols.
2025-07-24 09:54:02 +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