Move the COMPDAT/COMPLUMP export and combine helpers, including completionNumberForCell, out of RicWellPathExportCompletionDataFeatureImpl. Remove an unreachable HUGE_VAL branch, fix the combined D-factor divisor and a zero-transmissibility division, and drop unused includes.
On Windows, use the Qt folder dialog and show the 10 most recently selected folders in the Look in dropdown. The native Windows folder dialog does not support a folder history. Linux behavior is unchanged.
Look up POR and the tensor components with find(), and POR only for S.
Reading E on a model without node pressure no longer made S and the
derived results available. Use per-element node offsets instead of
assuming eight nodes per element, clear the element nodes when the parts
are read again, require the complete stress tensor for derived results,
and document the Biot coefficient of 1.
List only the S_VTK/E_VTK components that have data, and require the
complete tensor for the derived S/E results. Guard against too few
values in the tensor rows. Add tests for strain and partial data.
Read the VTK point data, not only "disp" (now found by name, not
position). "pressure" becomes the nodal pore pressure POR, other scalar
point arrays keep their name. OPM Flow writes them with
--vtk-write-geo-mech-nodal, recovered from its cell values.
Stress and strain are cell values in the simulator, so S and E at
element-nodal (and integration-point) position give every element corner
its cell's value. S is effective stress, tension positive, while OPM
writes total stress, compression positive: S = POR * I - stress at each
corner, so ST = -S + POR returns the simulator's stress exactly.
With S present, populateDerivedResultNames() returns true, so SE, ST,
principal stresses, SFI, DSM, FOS, NE etc. are available.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Avoid null dereference of eclipseCase()/eclipseCaseData()/mainGrid() when building the IJK intersection context menu entries.
Call stack:
RimEclipseCase::eclipseCaseData() at RimEclipseCase.cpp:197
RiuViewerCommands::displayContextMenu(QMouseEvent*) at RiuViewerCommands.cpp:443
Skip appending plots for wells, groups and networks already present in the multi plot. Reattach curves in project tree order only when the attached order differs.
TVDMSL was always written with unit M and the comment "True vertical
depth in meters", also for a FIELD case whose values are in feet.
Write it with the depth unit of the curve, as DEPTH and TVDRKB already
are.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
OPM Flow writes each symmetric tensor as three cell arrays
"stress[0]", "stress[1]", "stress[2]", the rows (Si1, Si2, Si3). The
reader took "stress[0]" as (S11, S22, S33) and "stress[1]" as
(S12, S13, S23), so S22, S33 and S13 held the wrong components and
"stress[2]" was ignored. Read the upper triangle from the three rows.
Coordinates are imported with z negated; S13/S23 and E13/E23 now
change sign with it, as U3 already does.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Build, copy and edit taskmaestro workflows in ResInsight and save them as
standard workflow.yaml + input.yaml.
- Python helper: catalog, load, save and export-registered subcommands,
and run --registered for installed workflows
- C++ definition model with pure edit operations, port type checks,
config field derivation, static validation and undo/redo
- Installed folder listing registered workflows (read-only, runnable,
can be duplicated)
- Graph editor dock with task palette, drag-to-connect, context menus,
automatic layout and debounced live validation
- New/Duplicate/Save/Save As/Rescan commands; unsaved edits run from a
temporary folder and prompt before being discarded
- Update the design document and the user README
Move EDITNNC, AQU* and COMPDAT/COMPSEGS processing into RigSimulationInput{Nnc,Aquifer,Connection}Tools, and move their tests into matching test files.
Move unit system assignment for new well paths into RimWellPathCollection::assignUnitSystem, used by addWellPath and onChildAdded so Python-created well paths get the case unit system. Ignore unloaded and unknown-unit cases in RimProject::commonUnitSystemForAllCases.
Pasted and multiple-lateral well paths are copies that already carry unit specific settings, so skip unit assignment for them. Note: RimProject::commonUnitSystemForAllCases now ignores unloaded and unknown-unit cases and returns UNKNOWN only for mixed units, which affects its other callers.
Adds a "Plot 1-SGAS" checkbox to the relative permeability plot panel.
When enabled (only available for two-phase gas-water systems), gas
curves (KRG, KROG, PCOG/PCGW) are plotted against (1 - SGAS) instead
of SGAS, aligning the gas saturation axis with the water saturation
axis, matching normal relperm/capillary pressure plotting practice.
Share the saturation transform between plotting and Show Plot Data export via a new applyOneMinusSgasTransform() helper, so the exported ascii data matches the rendered curves when the Plot 1-SGAS option is enabled.
Add m_includeZeroValues option to RimEnsembleStatistics (default on, preserving existing behavior). When disabled, exact zero values (e.g. from shut-in wells/groups) are excluded from the mean, P10/P50/P90 and custom percentile calculations in RimEnsembleStatisticsCase::calculate(). This is useful for derived vectors such as WCT, GOR and PI, where zeros caused by a shut well/group should not skew the statistical curves.
Exact equality (not an epsilon) is used, since shut-in values are reported as exact 0.0 by the simulator and non-accumulated vectors use STEP_RIGHT interpolation, which does not introduce floating-point noise.
Add a GUI feature for restoring previous versions of a project file from
its backup database, replacing the need for the external standalone tool.
- RiaProjectBackupTools: add extractVersionsToFolder() to read all stored
revisions from a project's .rspdb backup database and write each one to
a timestamped .rsp file in a destination folder.
- RicRestoreProjectVersionsUi: dialog for selecting the project file and
export folder, defaulting to the currently open project. Adds a Recent
Project Files dropdown (backed by RiuRecentFileActionProvider) that
quickly populates the project file and export folder fields.
- RicRestoreProjectVersionsFeature: new command feature wired into the
File menu as 'Restore Previous Project Versions...', using the
OpenFolder icon and placed after a separator below Save Project / Save
Project As.
- RiuRecentFileActionProvider: add recentProjectFiles() to expose the
list of recently used project files.
- Added '...' suffix to Save Project As, consistent with other
dialog-launching actions.
Add preferences for HPC/Batch scheduler
Add Slurm and LSF support
Add batch job monitor
Support launcher specific user settings
Use internal timer to refresh job state
Add some more options to batch monitor
Improve naming
Add tests for job lists
Change WSL handling for processes.
When several perforation intervals cut the same cell, the completion number
was taken from the first contribution, which depended on the order events
were applied. Unrelated event changes (e.g. group tree members) could then
change COMPLUMP numbers on boundary cells.
Pick the number with the largest summed MD overlap in the cell, with ties
going to the lowest number. Also use stable_sort for same-date events so
they keep file order.
Only END_IJK denotes a cell range, DIRECTION alone is a single cell and the MD
interval is split. A defaulted start MD is zero. Without an end MD the record is
copied to each sub-cell so all refined COMPDAT connections are attached to a segment.
Lateral refinement reduces the Peaceman pressure equivalent radius r0 of the
completed center sub-cell. Explicit CF is scaled by
(ln(r0_old/rw)+S)/(ln(r0_new/rw)+S), and an explicit PR item is updated to r0_new.
r0_old is taken from PR, or computed from the original cell size and permeability.
COMPDAT and COMPSEGS cells were mapped to the center refined sub-cell only,
so with K refinement only every other refined layer was completed, and the
original connection factor was copied unchanged.
Along the connection penetration direction (COMPDAT DIR) all sub-cells are
now completed, with explicit CF and KH scaled by the sub-cell length
fraction. COMPSEGS records are split the same way with the MD interval
divided between the sub-cells. Perpendicular directions still use the
center sub-cell.
Import zone colors from an FMU stratigraphy.json file located next to the
formation files, and import formation zones from a yaml file.
- Add RifFormationNamesFileParser and move the layer zone table, yaml and
stratigraphy.json parsers there from RifFormationNamesReader.
- Return std::expected from convertStringToColor.
- Prefer zonation_ecl_map yaml when several yaml files are present, and ignore
other yaml files.
- Document the FMU location of the formation files.
- Add unit tests and test data for fmu, malformed and missing-color inputs.
Issues: #13889, #13888
Completions could interleave mainbore and lateral connections, since the
final sort ordered by well name, completion type and measured depth, and
each lateral has its own independent MD scale. Connections for a well's
mainbore should all come before connections for its side steps.
Added RicScheduleDataGenerator::sortCompletionsMainBoreFirst(), which
groups completions by owning well path (via
RigCompletionData::sourcePdmObject()) and emits them in the traversal
order of RimWellPath::allWellPathLaterals(), mainbore first. Sibling
laterals are ordered by tie-in measured depth, as allWellPathLaterals()
itself is not deterministic. The sort is applied in
completionDataForWellPaths() so schedule export, COMPDAT/COMPLUMP export
and the gRPC/Python query all get the same ordering.