Commit Graph
33 Commits
Author SHA1 Message Date
Magne Sjaastad 0db64b400b Catch roff parse errors when checking for grid data 2026-09-28 09:18:41 +02:00
Jørgen Herje c49f298a7d [ri-cloud-api]: Add grid data from sumo using api (#14653)
Add grid data from Sumo using ri-cloud-api

Load Eclipse grid data (roff) from Sumo as RimReservoirGridEnsemble, one case per realization, with async fetch of grid properties per timestep.

- New: RiaSumoGrid (transport), RifReaderSumoGridProperty (lazy property reader), RimReservoirGridEnsembleSumo, RimRoffCaseSumo, and a "Create Reservoir Grid Ensemble" command.
- Shared grid: IJK dimensions compared before download; one RigMainGrid is reused across the ensemble when they match, each realization still parses its own ACTNUM before releasing geometry.
- Rename folders: Summary/Sumo -> Summary/Cloud, RimSumoDataSource -> Cloud/ (PDM keywords unchanged, old project files still load).
- UI: cloud data sources also shown in the 3D window's Data Sources dock.
- Fix: realizations no longer lost on project reload; realizations missing data are now reported instead of silently skipped.
2026-09-10 10:33:58 +02:00
Magne Sjaastad a7684a14d6 #14596 Use #pragma omp parallel for when building corner point grids
The loops were annotated with #pragma omp for, which is a work-sharing construct that does nothing outside an enclosing parallel region. Replace it with #pragma omp parallel for so the cell loops actually run in parallel.
2026-08-25 08:22:29 +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 d78d7cf430 #14192 Update color legend in place on roff property re-import
Reuse RimColorLegendCollection::updateColorLegend in the two roff import
sites that previously deleted and recreated the legend bound to a result,
so views referencing the legend keep their binding on re-import.

Extract the rock color matching from createColorLegendMatchDefaultRockColors
into matchDefaultRockColors so the facies branch can pass matched colors to
updateColorLegend. Remove the now-unused
RimColorLegendCollection::createColorLegend.
2026-06-10 18:02:07 +02:00
Kristian Bendiksen 054dbdb255 Move oil volume result to experimental features and demote ROFF logs to debug
Gate the derived oil volume cell result behind the new 'oil-volume-result'
experimental feature instead of RiaApplication::enableDevelopmentFeatures().

In the ROFF file reader, drop the enableDevelopmentFeatures() gates around the
grid dimension, timing and array diagnostics and log them at debug level instead,
so the output is available without RESINSIGHT_DEVEL but stays quiet in normal
runs.
2026-06-01 16:41:00 +02:00
Kristian Bendiksen 5ffcb69acc #13126 RiaLogging: Use std::string_view instead of QString for logging 2026-05-08 10:11:09 +02:00
Magne Sjaastad 97ed7121ed #13863 Roff: Load grid zonation (subgrids) as SUBGRIDS input property
Read the ROFF "subgrids.nLayers" array and expand it into a 1-based per-cell integer property (SUBGRIDS) so ROFF zonation becomes a regular grid property. If a companion "subgrids.names" array is present, zone names are surfaced as category code-names via the existing color-legend flow.
2026-04-28 19:18:12 +02:00
Magne Sjaastad cf62f07224 #13806 Python: Add color legend scripting API
Expose RimColorLegendCollection and RimColorLegend to Python via
CAF_PDM_OBJECT_METHOD entries that let callers create a legend, append
category items with a hex-string color, bind a legend to a (case,
resultName) pair and delete that binding.

Scriptable fields on RimColorLegend and RimColorLegendItem make the
created objects inspectable from Python.

The (case, resultName) binding interface in RimColorLegendCollection,
RimRegularLegendConfig and RimEclipseCellColors now takes a const RimCase*
instead of a case id, matching the caller patterns and avoiding ambiguity
when multiple cases share an id domain.
2026-04-20 18:55:36 +02:00
Kristian Bendiksen a0dbbf6cb1 Remove deprecated size_t overloads from RigActiveCellInfo
Migrate all callers to use type-safe ReservoirCellIndex and
ActiveCellIndex wrappers, then remove the deprecated isActive(size_t),
cellResultIndex(size_t), and setCellResultIndex(size_t, size_t) methods.
2026-03-31 12:32:05 +02:00
Kristian Bendiksen 5133ae620b Refactor: simplify API for configuring cell counts in IJK.
The old API was based on "grid points", but it was always used to
specify number of cells in each direction.
2025-09-18 11:46:57 +02:00
Magne Sjaastad 4135a743fe Release preparations
* 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
2025-08-27 14:22:11 +02:00
jonjenssen 88118ee4e1 Privatize grid cell array 2024-10-29 18:17:31 +01:00
Magne Sjaastad 21843820e6 Update clang-tidy.yml
* Make sure clang-tidy action use .clang-tidy config file
Use add-paths to instruct create-pull-request to a sub folder to avoid diff from Qt and vcpkg

* Use empty() in macro to avoid clang-tidy warning
* Add NOLINT to CAF_ASSERT
* Add NOLINT to cvfAssert
2023-10-03 09:04:08 +02:00
Kristian Bendiksen 851cb69f8b #10331 Roff property import: Add support for BYTE data type
Fixes #10331.
2023-06-02 10:31:36 +02:00
Magne Sjaastad b7420ebc70 Use rock type colors when "Facies" is imported 2023-05-26 11:26:22 +02:00
Magne Sjaastad 5ee764af48 Refactor result definition 2023-05-11 08:37:58 +02:00
Magne Sjaastad f70d2c4949 Add result type and create and use custom legend if possible
* Update submodule
* Use postfix functions and add custom color legend

* Add type to RigEclipseResultAddress
Read types from ROFF and create default legend based on type or custom created legend.

* Use caseId to connect legend configuration to result in a case
2023-05-09 11:41:56 +02:00
Jørgen Herje 67264da0a8 Roff: support import of N grid files and 1 grid file with N property files
* Add utility to check is roff file contains grid data

* Import of multiple grid files or 1 grid file with N property files

* Fix build errors for using RifRoffFileTools from Commands
- Move template implementation to cpp-file
- Add roffcpp to link libraries in CMake for Commands

* Improve/fix import of single grid file with N property files

* Fix missing add of roff case Id
2023-04-19 15:52:57 +02:00
Magne Sjaastad 952e766c2f Update clang-format.yml (#10068)
* Update to clang-format-15
Removed two custom .clang-format files in subfolders of AppFwk

* Fixes by clang-format
2023-04-13 07:05:53 +02:00
Kristian Bendiksen 8a2d9ec83e #9887 Roff: fix freeze due combining omp and progress info. 2023-03-02 07:29:48 +01: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
Kristian Bendiksen bfbe557c2d Roff: log less to message window. 2023-01-11 11:26:17 +01:00
Kristian Bendiksen 903dd34929 Roff: replace -999 values for inactive cells. 2023-01-11 11:26:17 +01:00
Kristian Bendiksen 1d4140e854 #9601 Roff: templatize method for converting to reservoir index order. 2023-01-11 10:10:51 +01:00
Kristian Bendiksen 7a79930ea6 Roff: add roff namespace. 2023-01-11 07:22:18 +01:00
Kristian Bendiksen 7d3fbf1234 #9616 Roff: fix incorrect cell mapping leading to incorrect faults. 2023-01-09 15:38:48 +01:00
Magne Sjaastad 4b70572a04 Fix some type conversion issues 2022-12-22 19:24:14 +01:00
Kristian Bendiksen fc4294a6ad Roff: allow roff files in input property import 2022-12-22 19:24:14 +01:00
Kristian Bendiksen 264ad01e9e Roff: improve property handling: handle more data types and map ACTNUM. 2022-12-22 19:24:14 +01:00
Kristian Bendiksen ca5064e7da Roff: import properties from Roff grid files. 2022-12-22 19:24:14 +01:00
Kristian Bendiksen 492f2dc4f6 Roff: fix incorrect k direction for active data. 2022-12-22 19:24:14 +01:00
Kristian BendiksenandMagne Sjaastad 8b51160ac4 Roff support with submodule
* Roff: Add initial roff support (with roffcpp as submodule).
* Roff: Create viewer when importing roff files.
* Roff: add timing for roff import.
* Roff: precompute active cell indexes.
* Roff: parallelize using OpenMP.
* Roff: Handle exceptions when importing.
* Roff: improvements from review.
* Invert ordering

Co-authored-by: Magne Sjaastad <magne.sjaastad@ceetronsolutions.com>
2022-12-19 15:28:26 +01:00