Commit Graph
123 Commits
Author SHA1 Message Date
Magne Sjaastad 812b605a31 #12919 Updates curve hash to include X axis type
Updates the curve hash calculation to include the X axis type.
This ensures that curves are properly recreated when the X axis type changes, preventing potential display issues.
2026-02-23 19:17:55 +01:00
Kristian Bendiksen 7cc1853302 #13609 Extract default curve appearance as static constexpr members
Replace local variables and magic numbers with static constexpr
defaults. Reset curves to default appearance when switching back
from custom to default mode.
2026-02-23 12:18:09 +01:00
Kristian Bendiksen 69ba3c2418 #13609 Fix ensemble cross-plot curve appearance not responding to changes
Apply custom appearance settings (line style, symbol, symbol size) to
existing realization curves when the data hash is unchanged. Previously
these settings were only applied during curve creation.
2026-02-23 12:18:09 +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
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 9851afc621 #2070 AppFwk : Disable default IO for proxy fields
Proxy fields usually reads and transforms data from other sources, usually other Pdm fields. This commit disables IO for proxy fields in the constructor. If XML serialization is required, this must be set on the proxy field, like this

field.xmlCapability()->setIOWritable(true)
field.xmlCapability()->setIOReadable(true)
2026-01-19 16:10:14 +01:00
Magne Sjaastad 2d4df3abf4 #13392 Summary Plot: Wrong values for "Time From Simulation Start"
The ensemble curve values are cached for performance reasons. Include the time settings in the hash function used to control the cache. This will make sure that the curve values are recreated when the time setting changes.
2026-01-15 12:15:35 +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 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 65e61767f4 Fix typo and restore filter for tree view after update 2025-10-09 11:14:45 +02:00
Magne Sjaastad 5998efabb6 #12954 Update all ensemble curves on x address change
Include the x address when computing hash for the data source for ensemble curves.,
2025-09-30 14:13:15 +02:00
Magne Sjaastad 32cdddf7cb Release RC_2
* Enables custom color selection for statistics curves
* Bump to RC_2
2025-08-29 19:13:03 +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 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 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 2fc12a35e2 Regression Tests: Fix crash for summary plot with summary x-data 2025-08-01 13:45:10 +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 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 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 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
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 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 4617fb8015 Make sure the time fields are added only once 2025-05-08 07:27:42 +02:00
Magne Sjaastad ba7b0c62db Make sure the complete summary address is present in column heading
When using Show Plot Data, make sure the complete address text including well name, region ID, etd is used.
2025-04-02 22:16:11 +02:00
Magne Sjaastad cac7eac056 Always display legends for ensemble curves 2025-04-02 22:16:11 +02:00
Magne Sjaastad 70e37e8f5d #12283 Add filter based on summary value at timestep
* Show collapsed range as a single line
* Improves plot annotation label placement
* Adds option to show/hide axis properties
* Adjusts plot info label alignment
* Adds filter by summary value functionality
* Enables ensemble creation from filtered cases
2025-04-01 14:51:13 +02:00
Magne Sjaastad 3715667e30 #12327 Small adjustments
* Remove unused volume sum
* Hide more log messages by default
* Allow stepping on top level plot
* Fix update of main plot title
2025-03-31 19:24:04 +02:00
Magne Sjaastad ddf08cb271 Fix crash caused by disabled serialization of ensemble curves
Fix crash caused by disabled copy of ensemble curves

In 7b269c43d4, the serialization of curve objects for ensemble curves was disabled. This caused the copy operation to produce a new ensemble curve set with empty curve vector.

The setSummaryCaseY operation is not required anymore and therefore removed.
2025-03-27 09:12:15 +01:00
Magne Sjaastad 7b269c43d4 Ensemble curve issues
* #12298 Make it possible to edit curve from a realization in an ensemble
* #12299 Fix highlight of single realization curves
* Disable serialization of ensemble curve set curves
* Ensemble Curves: Make sure replot is called only once during reattach
* Performance: Use a small set of header file names to compute name
2025-03-26 13:18:24 +01:00
Magne Sjaastad af164423fb #12259 Make sure legend is updated when ensembles are reordered 2025-03-14 16:09:30 +01:00
Magne Sjaastad 0604eea74b #12157 Always show vector name when underscore is present 2025-02-13 15:12:24 +01:00
Magne Sjaastad 9b6e441386 Make it possible to exclude partial delta curves
Make sure statistics curves are recomputed on flag change

When toggling "Discard Missing or Incomplete Realizations", make sure the statistics is recomputed and the ensemble plots updated.
2024-11-18 07:45:20 +01:00
Magne Sjaastad 7550b8702c Rename delta ensemble and case
Rename to RimDeltaSummaryCase and inherit RifSummaryReaderInterface
Rename to RimDeltaSummaryEnsemble

Remove obsolete RifDerivedEnsembleReader
2024-11-13 15:18:10 +01:00
Magne Sjaastad 11a3c66a0b Make sure the vector name is visible for delta ensemble curves 2024-11-13 15:18:10 +01:00
Magne Sjaastad 67e6df28b5 #11857 Make sure the summary curve type is updated
Always compute curve type Rate or Accumulated based on address if Auto curve type is set.
2024-11-06 07:16:07 +01:00
Magne Sjaastad 581b268928 Use hash of input do control if calculation is required
Add hash functions
Add serial number to SummaryReaderInterface
Add hash for RimSummaryCase

Use hash based on input parameters to control caching of data in RimEnsembleStatisticsCase::calculate  and RimEnsembleCurveSet::appendOptionItemsForSummaryAddresses
2024-10-23 12:38:22 +02:00
Magne Sjaastad df091336e0 Move summary tools into separate folder 2024-10-22 07:28:43 +02:00
magnesj fc2106edb0 Fixes by clang-tidy 2024-09-02 15:26:44 +02:00
Kristian Bendiksen e9c46c5cec Rename RimSummaryCaseCollection to RimSummaryEnsemble. 2024-07-30 08:55:12 +02:00
Magne Sjaastad a0ebb6e496 Add copyObject to PdmObjectHandle
New syntax to copy an object

    auto curveCopy = curve->copyObject<RimSummaryCurve>();

Previous deprecated syntax

    RimColorLegend* customLegend = dynamic_cast<RimColorLegend*>(
            standardLegend->xmlCapability()->copyByXmlSerialization( caf::PdmDefaultObjectFactory::instance() ) );
2024-06-14 17:18:28 +02:00
Magne Sjaastad 2e456a6f9b Add font size to text content frame 2024-03-21 07:11:21 +01:00
Magne Sjaastad 28d281e1d6 Use polygon as data source for intersection
- Use polygon as data source for intersection
- Add padlock icon
- Show padlock icon on read only polygons
- Add Fwk function appendMenuItems() to make it possible to define context menu content in a PdmObject
- Context menu "Create Polygon Intersection"
- Updates to make visualization consistent with object and object collection enabled state
2024-02-25 09:21:48 +01:00
Magne Sjaastad 6fe997b3c9 Add and use caf::PdmUiPushButtonEditor::configureEditorLabelHidden 2024-02-23 08:47:52 +01:00
Magne Sjaastad ce513be638 Remove all use of .uiCapability()->setUiTreeHidden( true ); 2024-02-05 10:15:36 +01:00
Magne Sjaastad ec53c7704d Improve legend display of ensemble curves
Remove symbol and increase curve thickness
2023-11-27 13:14:16 +01:00
Magne Sjaastad 678a368361 Refactor LayoutOptions to improve readability
* Make it possible to use designated initializer list
- remove default constructor
- move static member to outer scope

* Add helper function to add field on same row
2023-11-10 14:48:56 +01:00