Commit Graph
655 Commits
Author SHA1 Message Date
Magne Sjaastad 472d7fa296 Add readGridDimensions 2026-02-13 14:35:52 +01:00
JJ e1cc5a8186 Sector model export: Handle removing keyword blocks (#13607)
* Add support for removing block keywords
2026-02-12 18:07:26 +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
Kristian Bendiksen a4dad97024 #13425 Add time-dependent well events and schedule data generation
Implement timeline-based event system for managing temporal changes in
well completions, perforations, valves, and production controls.

Features:
- Event timeline container with date-based querying
- Six event types: PERF, VALVE, TUBING, WSTATE, WTYPE, WCONTROL
- Schedule keyword generation (DATES, COMPDAT, WELSEGS, WCONPROD, WCONINJE)
- Multi-well schedule generation support
- Python GRPC API for event management
- YAML configuration file support
- Comprehensive test suite

Implementation:
- New directory: ApplicationLibCode/ProjectDataModel/WellEvents/
- Event classes inherit from RimWellEvent base class
- RimWellEventTimeline integrated into RimWellPath
- RicScheduleDataGenerator for multi-well schedule export
- Python API: event_timeline(), add_perf_event(), add_valve_event(), etc.
- Tests verify all event types and YAML config parsing

#13425 Add date tracking to valves and diameter/roughness intervals

Add creation date fields to RimWellPathValve and RimDiameterRoughnessInterval
to support filtering objects by date during completion data export.

- Add m_useCustomStartDate and m_startDate fields
- Add enableCustomStartDate(), setCustomStartDate(), isActiveOnDate() methods
- Set creation dates when applying valve and tubing events in RimWellEventTimeline

#13425 Add date-based filtering for schedule data export

Add optional export date parameter to MSW data collection functions to filter
valves and perforations based on their creation dates during schedule export.

- Add exportDate parameter to collectWsegvalvData, collectWsegAicdData,
  collectWsegSicdData, and collectCompsegData functions
- Filter valves by checking isActiveOnDate() on the associated RimWellPathValve
- Add RimPerforationInterval reference to RicMswPerforation for date filtering
- Pass export date from RicScheduleDataGenerator through the extraction chain

This ensures segment numbers reflect the full model while only including
objects active on the export date in output keywords.

Add test to prove compsegs changes over time.

#13425 Fix mypy type checking errors in well_events.py

- Add type annotations to all function parameters
- Fix generic type hints (dict -> Dict[str, Any])
- Import Any type for proper type safety
- Add type: ignore for method reassignment
- All 31 tests pass

#13425 Add schedule-level keyword events for non-well-specific keywords

Add a new event type called "Keyword Event" for schedule-level Eclipse
keywords (RPTRST, GRUPTREE, RPTSCHED, etc.) that are NOT tied to a
specific well path. This complements the existing RimWellEventKeyword
which operates at the well level.

- Add RimKeywordEvent class inheriting from RimWellEvent with null wellPath
- Add SCHEDULE_KEYWORD enum value to EventType
- Add addKeywordEvent() method to RimWellEventTimeline
- Add AddKeywordEvent Python API method to RimcWellEventTimeline
- Update RicScheduleDataGenerator to output global keywords after well sections
- Add Python wrapper add_keyword_event() with type inference
- Add tests and examples for RPTRST, GRUPTREE keywords
2026-02-12 08:15:22 +01:00
JJ 49147019a7 Python: Return names of imported properties (#13576)
* Python: Return names of imported properties
2026-02-06 19:34:34 +01:00
Magne Sjaastad e41b1be924 Refactor RifEclipseSummaryAddress to use string pool indices
Replaced direct string members with indices into RiaStringPool for vector, well, group, and LGR names. Updated all constructors, accessors, and logic to use the string pool for storage and retrieval. This change reduces memory usage and improves performance for repeated string values.

Fixes by clang-format
2026-02-05 13:49:00 +01:00
Kristian Bendiksen 71eb461f13 #13528 Add .w extension support for RMSWell files
Files with .w extension are now interpreted as RMSWell format instead of
falling back to ASCII parsing. Added file dialog filter and Python test.
2026-02-04 18:07:10 +01:00
Magne Sjaastad bda3522bd4 Improve error handling in createFilteredTimeStepInfos()
Add detailed logging and vector size checks when reading time step info from dynamic results. Now resize reportNumbersOnFile if needed, log errors on size mismatches, and always return an initialized vector. This increases robustness and aids debugging.
2026-02-03 20:14:12 +01:00
Magne Sjaastad ca5465a660 Handles API changes for Arrow Parquet file reading
Adapts the code to handle different API versions of the Arrow library for reading Parquet files.
It uses preprocessor directives to select the correct API based on the `ARROW_VERSION_MAJOR`.
This ensures compatibility with both older and newer versions of the Arrow library.
2026-01-31 17:25:26 +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 d4a64b4033 #13402 Fixes parsing of well names with colons
Improves the parsing logic for well names in Eclipse
summary addresses, allowing well names to contain colons.

Previously, the parsing would incorrectly split well names
at colons.

Adds a unit test to verify correct parsing of well names with
colons.
2026-01-19 16:08:59 +01:00
JJ 5bb431ef33 Improve handling of data keywords in deck files. (#13423)
* Handle data keywords, and use data flag to check if a result with a given name should be added or not to the output file.
2026-01-14 12:06:59 +01:00
jonjenssen 3821434022 Support removing user specified keywords from output sector model. 2026-01-12 08:13:43 +01:00
Magne SjaastadandClaude Sonnet 4.5 1737217815 Fixes parquet API compatibility with vcpkg 2025.12.12
Updates parquet::arrow::OpenFile calls to use new API that returns
arrow::Result instead of taking an output parameter. Also updates
error message retrieval to use status().ToString() method.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 17:34:57 +01:00
Magne Sjaastad 96eebdf8ef Enhances crash reporting for Application Insights
Refactors crash reporting to include structured stack trace data formatted as JSON for better integration with Application Insights.
2025-12-22 16:41:29 +01:00
Kristian Bendiksen 8f9b416563 #12876 Include RKB distance when importing RMSwell.
Fixes #12876.
2025-12-15 13:56:41 +01:00
Magne Sjaastad 102a9feb32 #13269 Read VFP data without unit conversion
- read VFP data using readers with no unit conversion
- remove existing unit conversion
- make sure correct units are displayed in UI for both Metric and Field
2025-12-08 15:58:05 +01:00
Magne Sjaastad 40078cf8a8 Add VFP table importers without unit conversion
The opm-common importers does unit conversion to SI. Create custom importers with no unit conversion.
2025-12-08 15:58:05 +01:00
Kristian Bendiksen 37ee50cc9e #13281 Improve unit system handling for Eclipse files
- Add shared utility functions in RifEclipseOutputFileTools:
  - unitValueToEnum(): Convert int unit value to optional enum
  - determineUnitSystem(): Apply unit preference hierarchy and log warnings
- Implement correct unit preference hierarchy: egrid > init > unrst
  (previously was unrst > init > egrid)
- Add validation and warning when different unit systems are detected
  across files
- Enhance grid unit parsing with debug logging to explicitly document
  support for "m" as abbreviation for "METRES"
2025-12-05 14:18:45 +01:00
Magne Sjaastad c00da5e8e1 #13275 Import available phases from INIT and UNRST
This change centralizes the logic for determining available phases from
various file formats (ECL, OPM) and data structures (INTEHEAD keyword)
into a single, well-defined function.

The new `RiaOpmParserTools::phasesFromInteheadValue` function now handles the
conversion from an integer phase indicator to a set of `PhaseType` enums.
This function is used in both the ECL and OPM readers.

Updates the `RifEclipseUnifiedRestartFileAccess` and `RifReaderEclipseOutput`
to use `RifEclipseOutputFileTools::findAvailablePhases` to get the available phases
2025-12-04 14:51:07 +01:00
Kristian Bendiksen 6d1a4eb35c egrid import: Fix restart header parse for opm-common reader.
Step numbers does not always start at 0.
2025-12-01 14:20:49 +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 0b74a4accc Removes addOneBasedCellIndex function 2025-11-17 19:45:14 +01:00
Kristian Bendiksen 3a8d521bc2 Sector Export: fix bug comparing caf::VecIjk1 with caf::VecIjk0. 2025-11-17 13:04:13 +01:00
Kristian Bendiksen 2bba6afe10 Sector Export: dump with "INLINE" to workaround strange inserts. 2025-11-15 11:22:44 +01:00
Kristian Bendiksen 9f597c63f9 Sector Export: handle missing OPERNUM.
Also use keyword when inserting in deck.
2025-11-15 11:22:44 +01:00
jonjenssen eb08ceeedc Fix overwriting wrong keyword in some cases 2025-11-14 23:19:41 +01:00
Kristian Bendiksen 38c691d9a4 Refactor: Update usage of caf::VecIjk. 2025-11-14 14:44:21 +01:00
Kristian Bendiksen b1646d9a1f #12950 Generate BCCON/BCPROP for simulation input. 2025-11-12 08:39:20 +01:00
Kristian Bendiksen 4291ebd91c Refactor: use PROPS name from OPM common. 2025-11-12 08:39:20 +01:00
JJ 39c2282904 Handle active cells in files with thermal data (rockv) (#13159)
* Handle active cells in files with thermal data from intersect
2025-11-12 07:13:24 +01:00
Magne Sjaastad 5e7c3dd1f1 #13095 Avoid error message trying to read data not present in file 2025-11-10 13:19:47 +01:00
Magne Sjaastad be7a01d0cf #13147 Simplifies summary import options
Removes ensemble summary import mode as separate cases import is not supported.

Simplifies the UI by removing the ensemble import option, and updates the logic to handle summary import mode correctly by only supporting skip or unified imports. If separated cases is required for a single summary case, this can be activated by using the import dialog.

Adds logic to initialize after read to ensure that if SummaryImportMode is SEPARATE_CASES, it changes to NOT_IMPORT.
2025-11-10 13:07:21 +01:00
jonjenssen a5d4e358ae Clean up keyword generators 2025-11-07 14:46:35 +01:00
JJ 6286a34297 Wellplanning: use updated MSW table data api (#13142)
* Update to use new table variable names aligned with opm common naming.
2025-11-07 10:05:53 +01:00
Magne Sjaastad de6a2a7aa8 #13137 Make sure calculated vectors appears in tree view
When populating the addresses to be displayed in the tree view, the native file readers must be populated first. The calculated addresses depend on addresses available in native readers.
2025-11-06 11:40:03 +01:00
Magne Sjaastad a693aa6d09 #13062 Make search for restart header file more robust
Refactors restart file name retrieval to use preferences for reader mode.

Simplifies logic by removing separate OPM-specific retrieval methods, and
instead uses a unified method that dynamically selects the appropriate
reader based on user preferences.

Adds fallback mechanism to read restart file paths from SMSPEC files when
the RESTART keyword is missing in ESMRY files generated by ResInsight.

Corrects path handling for restart files by adjusting paths relative to the
header file.
2025-11-05 06:38:37 +01:00
Kristian Bendiksen 92f2b887ad RifOpmFlowDeckFile: fix problem when replacing keyword in EDIT section. 2025-11-03 09:56:19 +01:00
Kristian Bendiksen 1cc1073af0 Remove MAPAXES keyword (for now). 2025-11-03 09:56:19 +01:00
Kristian Bendiksen 241cc34ed4 Find last created opernum. 2025-11-03 09:56:19 +01:00
Kristian Bendiksen 788e054734 Export sector model: Set opernum in regdims. 2025-11-03 09:56:19 +01:00
Kristian Bendiksen 864c56866d Sector Export: fix well properties in deck file. 2025-11-03 09:56:19 +01:00
Kristian Bendiksen 2f3c0480fc Thermal Fracture Import: block fracture without time steps. 2025-10-31 15:52:23 +01:00
Kristian Bendiksen 107a4dfe95 Thermal Fracture Import: handle more date time formats. 2025-10-31 15:52:23 +01:00
Magne Sjaastad f384b5ef38 Adds helper functions to table formatter 2025-10-31 08:11:19 +01:00
JJ 948d6d82a6 Well planning: prepare for improved MSW handling (#13096)
* Refactor MSW data handling in opm flow job
2025-10-30 11:57:22 +01:00
jonjenssen bc48a11524 Fix warning with qt 6.10 2025-10-27 05:48:23 +01:00
Magne Sjaastad c75b2a1c6d Revert "Avoid small allocation on every read of data from resdata"
This reverts commit ea06cdc291.
2025-10-26 13:37:48 +01:00
Kristian Bendiksen 4e736a8cc0 Refactor: move opm-flow deck keyword generation to factory. 2025-10-24 19:33:35 +02:00
Kristian Bendiksen 2a82ee4670 Simulation Input Export: handle faults. 2025-10-24 19:33:35 +02:00