Commit Graph
560 Commits
Author SHA1 Message Date
JJ 393917e6f3 Histogram drag/drop and paste improvements (#12851)
* Add drag'n'drop support for ensemble summary vectors and ensembles into histogram plots

* Make sure histogram plot is shown and all update signals are connected when loading a project.

* Support ensemble parameter drag'n'drop from data sources into histogram plots. 

* Show ensemble parameters in data sources tree.

* Add copy/paste of histogram curves

* Re-use all existing parameters in a plot when dragging a new ensemble into it
2025-08-29 15:12:32 +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 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
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 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 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 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 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 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 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
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 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 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
Magne Sjaastad f9f9b6b07b Refactor logging of elapsed time 2025-07-23 15:23:08 +02:00
Magne Sjaastad 3727a12634 Add reordering and drag/drop for summary ensembles 2025-07-23 10:34:27 +02:00
Magne Sjaastad 8e12479242 Updates time range default values
Ensures that default time range values are updated when they are initially set.
2025-07-23 10:34:27 +02:00
Magne Sjaastad 294b7cfade Disables export to project file for ensemble description 2025-07-23 10:34:27 +02:00
Magne Sjaastad ad365f06f7 Ensure consistent return type syntax 2025-07-23 10:34:27 +02:00
magnesj 86d60672ab Fixes by clang-format 2025-07-22 14:35:59 +02:00
Magne Sjaastad ef74e781e9 Handles error result addresses for statistics curves
Changes in the summary system has introduced a bug causing two identical results to be displayed, the correct statistical vector and the error. If error is asked for, return no values.
2025-07-22 14:07:06 +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 4240a199a9 Do not trigger updated of connected plots in onLoadDataAndUpdate
In some cases, this update will happen before data is loaded for an RFT plot, and clears all curves from the plot.
2025-07-21 16:46:54 +02:00
Magne Sjaastad 54fdf026f4 Addresses race condition in object creation
Ensures thread-safe initialization of PDM objects when created in parallel.

Avoids a potential race condition during the first instantiation of a PDM object in a multi-threaded environment. This is achieved by creating a dummy object in the main thread to trigger the necessary initialization before parallel creation begins.

Adds a unit test to verify the fix.
2025-07-20 15:44:36 +02:00
Magne Sjaastad 60c5045c76 Refactors address handling in summary collections
Updates address management within summary collections to utilize `RimSummaryAddress` objects directly, enabling streamlined data access and manipulation.

This change optimizes the code by wrapping file reader addresses in `RimSummaryAddress` objects.
It also improves data handling by using parallel processing to speed up address creation.
2025-07-20 08:29:09 +02:00
Magne Sjaastad bbffd05bc2 Disables summary address building for ensemble realizations
This is a major performance gain for large ensembles
2025-07-18 08:47:01 +02:00
Magne Sjaastad e28ab15859 Refactors building of addresses and introduce keyword count 2025-07-18 08:47:01 +02:00
Magne Sjaastad efc8735a76 Modernizes summary reader management
Migrates to using `std::unique_ptr` for managing summary readers.

Removes the dependency on `cvf::Collection` and `cvfObject`.
2025-07-16 16:18:09 +02:00
Magne Sjaastad cd43d17e53 Renames RifSummaryReaderMultipleFiles
Renames RifSummaryReaderMultipleFiles to RifSummaryReaderAggregator
to better reflect its purpose of aggregating summary data from multiple files. Also avoid confusion with RifMultipleSummaryReaders
2025-07-16 16:18:09 +02:00
Magne Sjaastad 0d0c8f5505 #12631 Refactors RFT readers to use unique_ptr 2025-07-16 13:10:47 +02:00
Kristian Bendiksen ea0fb1bdd8 #12559 Fix crash when creating new summary cross plot curve.
Fixes #12559.
2025-07-04 18:54: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 9f0ce0d498 Fixes to make gcc14 compile 2025-06-05 08:59:28 +02:00
Magne Sjaastad 5ba4256e8b #12535 Avoid use of caf::PdmPointer in async delete of objects
Remove the use of caf::PdmPointer in RifCalculatedSummaryCurveReader as these objects are only accessed and used only during the lifetime of the owning object.

Move caching of RimProject::current()->calculationCollection() to the constructor instead of the calling site.
2025-05-30 08:41:14 +02:00
Magne Sjaastad 118ecf941a Performance improvements ensemble curves
* Do not create ensemble in initAfterRead
* Check if filter is active before update
* Do not recompute statistics on every loadData
* Removes unnecessary resampling
* MSVC: Add support for dynamic deoptimalization
* Make sure RFT plots are initialized based on curves in project file
* Make sure the progress dialog is always on top
* Add more progress info when loading project file
* Make sure names in RFT plots are updated
2025-05-28 15:10:43 +02:00
Kristian Bendiksen b9ac1bc0c5 Python: Avoid "Rim" prefix for python objects. 2025-05-20 20:39:07 +02:00
Magne Sjaastad 37041ad0a6 clang-19-tidy and clang-19-format fixes 2025-05-19 14:31:30 +02:00
Magne Sjaastad 957adc3c4c Adjustments for ensemble file sets
* Add support for reload of ensemble file set
* Fix Replace for ensemble file sets
* Workaround for update of connected plots
* Use summary icon for ensemble data sources
2025-05-19 12:51:52 +02:00
Magne Sjaastad dc4cd33c6e #12495 Refactors ensemble statistics handling
Removes the dedicated `SUMMARY_ENSEMBLE_STATISTICS` category and instead uses a `statisticsType` field within `RifEclipseSummaryAddress` to represent ensemble statistics.

This change simplifies the code and avoids potential confusion by representing statistics as attributes of existing summary types, rather than a separate category. It also improves code robustness.
2025-05-16 07:53:46 +02:00
Magne Sjaastad 84f9ad0dcd First prototype on ensemble file set summary ensembles 2025-05-15 18:16:27 +02:00