* Refactor well log track settings into modular classes
Major refactoring of RimWellLogTrack to delegate property axis, formation, region annotation, and well path attribute settings to dedicated settings classes. Introduces RimWellLogPropertyAxisSettings, RimWellLogFormationSettings, RimWellLogRegionAnnotationSettings, and RimWellLogWellPathAttributeSettings, each encapsulating related fields, UI logic, and option handling. Old fields are retained for migration and backward compatibility. Updates enums and signatures for consistency.
Enhance slice feature constructors and UI logic to support context-aware labeling for both Cartesian and radial grids. Axis and slice labels now clearly indicate both physical and index names (e.g., "Radial (I)", "Theta (J)"). Context menus and filter UIs display the appropriate labels based on grid type, improving clarity and usability.
Introduce MSW_SEGMENT to WellPathComponentType enum, assign DARK_CYAN color, update sorting order, and add plotting logic with column features and rectangular marker for visualization.
Introduce support for rendering MSW (Multi-Stage Well) segments in well path visualizations, including alternating color cylinders and boundary markers. Integrate MSW segment display into both regular and flattened geometry builders. Add picking support in the viewer: when an MSW segment is selected, display its properties (segment number, branch, MD range, diameter) and select it in the UI. Also, increase perforation visualization radius for improved clarity.
Removes conditional compilation for OpenTelemetry, ensuring it is always included.
Reinitializes OpenTelemetry based on user preferences, ensuring that changes to telemetry settings are applied immediately.
Configures cloud services, including OpenTelemetry, after the logger is initialized, ensuring that telemetry data is properly captured and transmitted.
Retrieves system username for telemetry tracking.
Replaces the usage of `QIntValidator` with the `setRange` function available in the PDM framework for limiting integer input in UI fields.
This approach provides a more direct and maintainable way to specify value ranges for UI elements.
This change simplifies the code and reduces dependencies.
Adds a new action to the test menu that allows users to manually
trigger the sending of test telemetry data (logging and stack trace)
to the OpenTelemetry endpoint.
This is useful for verifying that the OpenTelemetry integration is
working correctly and for testing different telemetry scenarios.
Extends the relative permeability plot to support PCGW curves, which are relevant in gas/water systems.
This involves:
- Adding PCGW curve styling to the plot's QSS themes.
- Modifying the plot panel to handle PCGW curves, including
dynamically updating checkbox labels based on the available phases
to reflect the correct PC* name (PCOG or PCGW).
Fix iterator invalidation issue in RiuPlotWidget::clearOverlayFrames() that caused segmentation faults when accessing QPointer objects during collection modification. The method now safely collects matching frames first, then removes them in a separate loop with proper null pointer checks.
* Add sector model export wizard
* GUI cleanup
* Use job name as deck name for simulation runs
* Remove new things from old export GUI
* Use radio-buttons for enum dropdowns
* 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.
* Add job settings, with default settings in preferences.
* Move opm flow settings to separate preferences tab
* Add warning/error detection add display count next to progress
* Adjust size of preference window
Use improved opm-common reader with less throws.
Add reload selected cases button
Add timer for auto-reload of cases
Add include in auto update option for cases and ensembles
Do not enable auto reload option for cases in an ensemble
Updates the relative permeability plot's X-axis title to use shorter, more standard labels ("SWAT" and "SGAS") instead of the longer "Water" and "Gas" versions. This improves readability and consistency with common saturation representations.
Enhances the relative permeability plot by:
- Adding support for SATNUM and IMBNUM result display in cell reference information.
- Disabling the imbibition curve selection by default and enabling it dynamically based on the IMBNUM value.
- Removing the `satnum` argument from `calculateRelPermCurves` as it's no longer needed.
Adds styling for imbibition relative permeability curves to the plot, differentiating them visually from drainage curves.
Adds UI elements (checkboxes) to control the visibility of drainage and imbibition curve sets. Also introduces a tracker that displays curve values near the cursor position.
Simplifies the implementation of the tracker text provider by using a `std::function` instead of a dedicated interface.
This change improves code maintainability and reduces complexity.
* Deletes the copy of the code in ThirdPary folder
* Replace code with opm-flowdiagnostics-applications as submodule
* Refactors ECL data handling for flow diagnostics
Updates flow diagnostics to utilize ECL init data consistently.
This change streamlines the passing and usage of initialization
data within the flow diagnostics routines, enhancing code
clarity and maintainability. Removes redundant passing of grid
data, simplifying function signatures.
Adds a null check for the eclResDef pointer before accessing its members.
This prevents a potential crash if eclResDef is null.
Additionally, the unnecessary assertions are removed.
Improves result info handling by ensuring the result
definition is valid before accessing it, preventing
potential crashes.
Uses `if (auto)` to check for null result definitions,
and displays a user-friendly message when no result
definition is available.
* Add view job log command.
* Add stop job command.
* Do not block ui while job is running.
* Show progress while job is running
* Make sure user gets notified of running jobs when exiting ResInsight or closing current project.
When working with a summary ensemble in a Debug build on Windows, a crash happened in RiuQwtPlotWidget::resetPlotCurveHighlighting(). When iterating over list of plot items, one pointer to item pointed to 0xddddddd, a clear indication that the underlying list had been updated during the loop and the iterator invalidated.
The change ensures that modifications to the item list during iteration do not cause unexpected behavior, particularly in scenarios involving grid lines and curve highlighting.
This is achieved by making a copy of the item list before iteration when modifications may occur. For cases where no add/remove will be performed during the iteration, a comment is added to clarify that it is safe to access the reference to the list.
2025-10-06 12:48:32.779] [rotating_logger] [error] Stack trace:
[0] manageSegFailure(int) at :0
[1] at :0
[2] __dynamic_cast at :0
[3] RimSummaryMultiPlot::updateReadOutLines(double, double) at :0
[4] CoordinatePicker::trackerText(QPoint const&) const at :0
[5] QwtPicker::trackerRect(QFont const&) const at :0
[6] QwtPicker::updateDisplay() at :0
[7] QwtPicker::begin() at :0
[8] QwtPicker::transition(QEvent const*) at :0
[9] QwtPicker::eventFilter(QObject*, QEvent*) at :0
[10] QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) at :0
[11] QApplicationPrivate::notify_helper(QObject*, QEvent*) at :0
[12] RiaGuiApplication::notify(QObject*, QEvent*) at :0
[13] QCoreApplication::notifyInternal2(QObject*, QEvent*) at :0
[14] at :0
[15] QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) at :0
[16] at :0
[17] at :0
[18] QApplicationPrivate::notify_helper(QObject*, QEvent*) at :0
[19] RiaGuiApplication::notify(QObject*, QEvent*) at :0
[20] QCoreApplication::notifyInternal2(QObject*, QEvent*) at :0
[21] QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) at :0
[22] QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) at :0
[23] at :0
[24] g_main_context_dispatch at :0
[25] g_main_context_iterate.isra.20 at :0
[26] g_main_context_iteration at :0
[27] QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) at :0
[28] QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) at :0
[29] QCoreApplication::exec() at :0
Replaces custom linear interpolation logic with
`std::upper_bound` for improved efficiency.
Refactors the permeability plot panel to utilize the improved
interpolation tool.
* Add radial display mode to preferences
* Adds isRadial to grid
* Improve mesh lines for radial cells
For temporary radial LGRs, show mesh outline based on the aggregated geometry of all LGRs of the parent cell clicked on.
* Improve warning message
* Modify cell selection in pick event handler
If the angular cell count is low, especially 1, the geometry representation of a cell requires refinement in angular(J) direction. Show this geometry as a cylinder segment when holding CTRL and clicking on the radial geometry.