Commit Graph
59 Commits
Author SHA1 Message Date
Kristian Bendiksen 3d8912ba6c #14794 Cell filter: Use original parent IJK for IJK range filters on nested hybrid grids
For nested hybrid grids, IJK range filters (I/J/K slices and IJK filters)
now refer exclusively to the original (coarse) grid IJK. Nested-grid local
IJK values are no longer offered, and every cell, including cells in all
refinement levels, is mapped to the original IJK of its top-most parent.

- Add RigNestedHybridGridLayout describing how original cells are embedded
  in the flat grid, shared by the LGR reconstruction and the IJK mapping
- RigMainGrid: store the layout and compute the original IJK of any cell on
  demand by following the parent cell chain, without per-cell storage
- Range filter UI: slider limits, clamping, defaults and active cell range
  use the original grid dimensions; grid selection is hidden
- Evaluate range filters on all grids using the original IJK in the 3D view,
  combined filters and data filters
- 3D view context menu slices use the original IJK of the picked cell
- Add unit tests for the layout, the IJK mapping against OLDIJK, and slice
  filtering across refinement levels
2026-10-12 15:12:48 +02:00
Magne Sjaastad c6664a3361 #14797 Add command to compute contour map peaks
Available from the contour map context menu for Eclipse, GeoMech and ensemble statistics contour maps.
2026-09-30 16:26:04 +02:00
Magne Sjaastad ccdde6596d #13807 Add 3D viewer background context menu with Link View, Update Bounding Box, Zoom All and default camera position 2026-09-28 18:35:28 +02:00
Magne Sjaastad 56e98ba1c4 #14476 ApplicationLibCode: Replace CVF_ASSERT with CAF_ASSERT
Migrate all assert macros in ApplicationLibCode to CAF_ASSERT and remove every
use of cvfAssert.h.

CVF_ASSERT is replaced one to one. CVF_TIGHT_ASSERT is also replaced by
CAF_ASSERT, which is semantically exact: CVF_ENABLE_TIGHT_ASSERTS is 1 only
under _DEBUG, and that is what CAF_ASSERT now does. The two CVF_FAIL_MSG sites
become CAF_ASSERT( false && "message" ), preserving the message with the idiom
already used elsewhere in the code base.

Counts before and after: CVF_ASSERT 1044 to 0, CVF_TIGHT_ASSERT 66 to 0,
CVF_FAIL_MSG 2 to 0, cvfAssert.h references 154 to 0.

Include handling: files that included cvfAssert.h directly now include
cafAssert.h instead, includes left dead by the migration are removed, and files
that were relying on cvfAssert.h transitively get an explicit cafAssert.h. Files
that reach cafAssert.h through another caf header are left unchanged; a missing
include here is a compile error, not a silently disabled assert.

ResultStatisticsCache links only LibCore and therefore had no path to
cafAssert.h. Add the cafPdmCore directory as a private include path rather than
linking the library, since cafAssert.h is header only.

Note that this stops these asserts from firing in Release and RelWithDebInfo,
where CVF_ASSERT was previously active.
2026-08-07 15:05:57 +02:00
Kristian Bendiksen 280763f4c0 #14203 Add cumulative curve option to Grid Statistics plot
A new "Show Cumulative Curve" checkbox on the grid statistics data source adds a cumulative curve on the right axis, in addition to the regular histogram curve. The cumulative curve shares the data source of its non-cumulative counterpart and follows all changes to it. The cumulative sum works with all frequency types and both graph types.

Remove the legacy Grid Statistics dialog (RicGridStatisticsDialog) and its context menu command, which provided the previous cumulative display.
2026-07-27 12:37:59 +02:00
Kristian Bendiksen 5dc3374733 #14226 intersection along ijk axis
* #14226 Add intersection along i/j/k axis

Add a new persistent intersection type that follows the grid pillars at a
fixed i, j or k index. Unlike the axis-aligned intersection box, the surface
is built from the grid cell faces and therefore steps along faults and curved
pillars, which is useful for structural restoration analysis.

The user selects the axis, the fixed index, the two perpendicular index
ranges and which cell face (front/back pillar) to use. The geometry generator
emits the chosen cell face of every cell in the index plane directly from the
native pillar corners, so cell result colors map exactly.

The feature is available from the Intersections context menu for Eclipse
views and supports 3D-view picking and cell result readout.
2026-07-27 11:21:05 +02:00
Magne Sjaastad 033c2e06b0 #14262 Fix missing grid statistics context menu entries
The grid statistics plot and show commands were only added to the context menu when the cursor was inside the overlay info box, so right-clicking on the grid geometry no longer offered them. Always add the create and show commands, and keep only the copy-to-clipboard command gated by the info box position.
2026-06-22 12:13:53 +02:00
Magne Sjaastad 7f24637fa7 Show grid statistics context menu items only when clicking inside overlay info box 2026-06-11 16:29:04 +02:00
Magne Sjaastad 22f9053401 #14193 Guard additional null sub-accessor derefs in pick handling
findCellAndGridIndex and ijkFromCellIndex shared the same latent
null-pointer pattern as the context menu crash: the outer case/view was
null-checked, but a sub-accessor that can also return nullptr was
dereferenced without a guard. These are reachable from the same pick and
context-menu flow when a case is still loading, in a comparison view, or
being torn down.

- findCellAndGridIndex: guard mainGrid() and geoMechData()
- ijkFromCellIndex: guard eclipseCaseData() (matching isRadialGrid) and
  femParts()
2026-06-10 08:46:39 +02:00
Magne Sjaastad 50c9d3f446 #14193 Fix crash in context menu when Eclipse view has no main grid
RiuViewerCommands::displayContextMenu called
eclipseView->mainGrid()->findFaultFromCellIndexAndCellFace() without
checking the result of mainGrid(). When the view's case or case data is
not available, mainGrid() returns nullptr, and the call dereferenced the
null pointer inside findFaultFromCellIndexAndCellFace (caught in the
stack trace as cvf::ref<RigFaultsPrCellAccumulator>::isNull).

Guard the call with a null check on mainGrid(), matching the existing
pattern used elsewhere in this file.
2026-06-10 08:46:39 +02:00
Kristian Bendiksen 663142be71 Sector export: Exclude refinement region wireframe from mouse picking
Skip pick items with no cvf source info in both pick paths
(displayContextMenu and findFirstItems). Without this, the refinement
region wireframe — which has no source info — became the topmost hit,
causing the picking handler to bail out and leaving Result Info empty
instead of falling through to the underlying cell.
2026-04-29 13:14:49 +02:00
Magne Sjaastad b7b2a73721 Add context menu actions to hide/show all geometry for well visibility
Two new actions added to the well path context menu:
- "Hide All Geometry (Show Wells)": hides grid cells, faults, and intersections,
  then forces simulation wells and well paths visible.
- "Show All Geometry": restores grid cells, faults, and intersections visibility.

Added RimIntersectionCollection::setActive() for direct state control.
2026-03-16 16:14:08 +01:00
Magne Sjaastad e8bab38b49 Refactor MSW segment model to support more detailed fields
Refactored RimMswSegment to store join segment, length, depth, and next segment length
2026-02-18 09:22:14 +01:00
Magne Sjaastad 058918a85e Improve UI labels for grid slices in radial and Cartesian modes
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.
2026-02-03 20:14:12 +01:00
Magne Sjaastad cb9f3eb07a Add visualization and picking for MSW segments in well path
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.
2026-01-20 14:13:22 +01:00
JJ 6689000d85 New Sector Model Export user interface (#13247)
* 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
2025-11-28 16:43:51 +01:00
Magne Sjaastad 6bc25c387d #13065 Improves result info handling
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.
2025-10-23 16:14:12 +02:00
Magne Sjaastad 62188fa9f2 Improve naming of cell related result names
Use radial/theta when required for GUI
Hide DX/DY from the list of available results
2025-10-08 16:03:56 +02:00
Kristian Bendiksen 11d85583dd Histogram: Use new plot for "Create Grid Statistics in 3d view". 2025-07-04 16:57:41 +02:00
Magne Sjaastad 28d3050433 #11871 Remove simulation well fractures and completion export 2025-02-03 18:19:03 +01:00
jonjenssen 10afd3a7cd Reorganize contourmap files in project 2025-02-03 15:06:29 +01:00
Magne Sjaastad a184af264b Add features to create polygons from visible contour map geometry 2025-01-19 16:19:55 +01:00
jonjenssen c13ce39b5e Enable polygons in contourmaps (#12073)
* Enable polygons in ensemble statistics views and allow adding polygons in contour maps
2025-01-16 16:53:05 +01:00
jonjenssen 88118ee4e1 Privatize grid cell array 2024-10-29 18:17:31 +01:00
Magne Sjaastad 89bd3a8c90 #11357 Reorganize menu in 3D view
Simplify menu text for range filter
Reorganize to improve readability
Simplify cell filter menu in Project Tree
2024-09-16 09:53:23 +02:00
Magne Sjaastad 2724f80e8e #11516 Disable selection of cell result from intersection view
Selection of the cell result in the 3D view causes changes in active view and is very confusing for the user. Use "Activate Result in Project Tree" from right-click menu in the intersection view.
2024-06-19 07:45:51 +02:00
Magne Sjaastad 818c5c0f9c Add polygon file readers and make sure UI items are in sync
* Add polygon reader for POL file format
* Add CSV import
* Add helper function to create tag with color and text
* Show polygon color as tag, allow color edit by clicking on tag
* Support optional header in csv file
* Add Reload on polygon file
* Show warning icon if no polygons
* Improve logging text
* Do not show file polygon in view if no polygons are imported
* Use appendMenuItems
* Set default polygon color to orange
* Enter edit state when creating a new polygon
* Fix missing UI text in menu builder
2024-03-01 14:59:14 +01:00
Kristian Bendiksen d2d1929f18 #10587 Improve filtering of comparable views.
Filter views based on the content of the source view. The option to
unsuccessfully compare 2D intersection views with 3D views is now removed.
2023-11-17 12:47:47 +01:00
jonjenssen 32326bfa9b Add fault reactivation modeling 2023-09-06 13:51:59 +02:00
jonjenssen 2172199999 Add seismic 3d view (#10472)
* Show seismic, surfaces, annotations and wellpaths in new view not requiring a grid loaded first.
2023-08-07 16:35:59 +02:00
Magne Sjaastad 06b5c9afbf Adjustments for release
* Add notification of parent object when multiple objects are updated

* Make sure unchecked curves are removed from track

* Use object names instead of "Sub Items" when possible

* Set default simulation well visualization to top of reservoir

* Show plot window after plot is created

* Allow setting plot rendering flags

* Add more plots for update when clicking in 3D view

* Seismic Difference: Fix typo for poly line data extraction

* Version RC_5
2023-06-16 09:27:35 +02:00
Magne Sjaastad 76102a8396 Maintenance issues
* Improve toggling of checked state of sub items
Toggling state is only supported for objects in an array. For example, this will ensure that faults are toggled without altering the fault result object.

* Use gray instead of black for icons

* #9719 Use delete instead of deleteLater to avoid visual artifacts
Artifacts are seen in the Property Editor related to obsolete group boxes. This seems to be related to deleteLater().

* Improve text in menu when toggling sub items

* #10011 Make sure all grid cases are visible in RFT data source

* #10354 Show more info when hovering on curves in summary plot

* #10355 Copy model text info in 3D view to clipboard

* Make sure cell filter option is propagated to new field
Make sure the previous value of  m_showFaultsOutsideFilters_obsolete is propagated into m_applyCellFilters

* Fix wrong spelling when using of stylesheet color
2023-06-06 15:45:54 +02:00
Magne Sjaastad 2776012bce #7134 Create modelled well path from well path
From an existing well path, find some coordinates along the geometry and create a new modelled well path based on these coordinates.
2023-05-23 12:13:53 +02:00
Jørgen Herje 2247dced58 Update naming and imports
- Correct naming
- Update includes
2023-05-22 15:42:24 +02:00
Magne Sjaastad 0c90f67dcc Change API for PdmObjectHandle and PdmFieldHandle
* Refactor interface to PdmObjectHandle and PdmFieldHandle
Return objects instead of passing in structures as parameters

* Add nodiscard to several functions
* Remove redundant this->
* Rename to ptrReferencedObjectsByType
2023-05-12 21:41:34 +02:00
jonjenssen 0e7cf49b17 OpenVDS seismic access (#10145)
Add OpenVDS support for reading seismic data from VDS files
2023-04-21 16:38:04 +02:00
jonjenssen 1299af401b Add seismic result info in 3D view (#10032)
Add seismic result info in 3D view and selection in tree
2023-03-29 14:08:45 +02:00
Magne Sjaastad f8c5cf389f clang-format: Set column width to 140
* Set column width to 140
* Use c++20
* Remove redundant virtual
2023-02-26 10:48:40 +01:00
Magne Sjaastad 82968ca1a9 Support linking of 2D intersection views
* Major refactor from RimGridView to Rim3dView
* Move view linker/controller functions to Rim3dView
* Add bitmask to define the content of a 3D view
* Link views based on matching content
* Enable bit mask operators at global scope
* Make it possible to use 2d intersection views as comparison views
* Fix crash when a view used as comparison view is deleted
* Move unlinking to Rim3dView

* Add options to snapshot only 3D views/plots as part of regression testing
* WBS plot: Improve default name, hide axis for some tracks
2022-11-24 10:46:54 +01:00
Jon Jenssen 10d5246644 Remove obsolete fault reactivation assessment feature 2022-11-18 16:13:26 +01:00
Magne Sjaastad d4086ee371 Allow linking of contour map views
* Place copy of contour map in correct collection
* Allow linking of contour maps
* Improve handling of contour views and 3D views
* Guard nullptr
* Guard assert seen on Linux
* Zoom all on contour map when unlinked to reset zoom
If a contour map is linked to a 3D view, the view can get distorted. Call ZoomAll to reset to sensible defaults.

* Remove default rainbow legend
2022-11-04 15:48:25 +01:00
Magne Sjaastad 418c4df7b3 Add Export Property to right-click menu in 3D view 2022-08-22 04:51:46 -07:00
jonjenssen 535d87c9c4 Tiny refactor 2022-08-16 12:43:53 +02:00
jonjenssen 0e45a90e1f Link selection in 3D view with plots (#9195)
* Allow well selections in 3D view to update well selection in summary plots and well log plots
2022-08-15 20:27:49 +02:00
Kristian Bendiksen 625b927cb6 Thermal Fracture: Add visualization of results 2022-07-06 18:18:11 +02:00
jonjenssen 66fd79175c Project Tree updates (#8490)
Split project tree into multiple dockable tree views for plots, keeping one for 3d views.
2022-01-28 13:19:52 +01:00
jonjenssen 43f298fa97 Merge pull request #8376 from OPM/fault_visibilityupdates
Faults: Add Visibiliy mode for overlapping area
2021-12-17 15:39:22 +01:00
jonjenssen b169900c41 GeoMech Intersection updates: support multiple parts (#8160)
* Rearrange intersection classes, split single file into one-per-class

* Support multi-part geomech case intersections
2021-10-15 16:57:18 +02:00
jonjenssen a5b80c649b Merge pull request #7960 from OPM/geomech_WIA4
GeoMech: Well Integrity Analysis
2021-09-09 17:34:27 +02:00
Magne Sjaastad 54dee08798 #7831 Janitor: Do not create QtChart features if compiled without QtChart 2021-06-30 14:50:28 +02:00