Commit Graph
550 Commits
Author SHA1 Message Date
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
Magne Sjaastad 5126face72 Rename to summaryEnsembles() 2025-05-12 13:04:10 +02:00
Magne 724d9a1864 Janitor fixes detected by clang-19 2025-05-09 15:54:28 +02:00
Magne Sjaastad 7714d727fc #12470 Use value range slider instead of independent min and max value sliders
Make sure minimum value is always less than max and max value is always larger than min.
2025-05-08 12:47:06 +02:00
Magne Sjaastad 9b613ba4f0 Create a menu for each ensemble in the plot
Create a QVariant using caf::PdmPointer, and send this variant to the feature. The feature converts the QVariant to an ensemble curve set.

Make sure the right-click menu in the summary plot shows the Create from filtered cases independent to the selection in project tree.
2025-05-08 07:27:42 +02:00
Magne Sjaastad a93d717e1c #12455 Date format string and precision
Use date format string from preferences when date is displayed. Use default number of decimals.
2025-05-08 07:27:42 +02:00
Magne Sjaastad ad83985e62 #12457 Move management of time axis annotations
Use RimTimeAxisAnnotationUpdater for management of annotation objects.
2025-05-08 07:27:42 +02:00
Magne Sjaastad 975bd32bac Show time selection in curve filter object 2025-05-08 07:27:42 +02:00
Magne Sjaastad 4617fb8015 Make sure the time fields are added only once 2025-05-08 07:27:42 +02:00
Magne Sjaastad b6b1bf053e Show selected realizations using X-cross symbol 2025-04-11 15:38:52 +02:00
Magne Sjaastad 1a89d59ebc Sets default for filtered cases to true
Changes the default value for "BasedOnFilteredCases" to true.
2025-04-07 09:25:46 +02:00