Adds a file path selection field to the preferences
to allow users to specify a template file for
ensemble curve properties. Changes the ensemble curve
creation logic to utilize this template, logging a warning
and falling back to defaults if loading fails.
* 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
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.
* 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
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], ...]
)
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.
- 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.
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.
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.
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
* Add support for getting the perforation length of a well from Python
* Fix issue with sub grid pointers in LGR grids when using active cell opm reader
- 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)
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
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.
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.
* 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.
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.
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.