Commit Graph
2605 Commits
Author SHA1 Message Date
Magne Sjaastad a8805f1b9f Use QTimeZone::utc() for compatibility with Qt < 6.5 2026-11-05 07:45:12 +01:00
Kristian Bendiksen ec59629930 #15094 Workflows: Add vertical graph layout option
Add a per-workflow Vertical Layout toggle to the workflow editor toolbar
and canvas context menu. In vertical mode ranks are stacked top to bottom,
task inputs sit on the top edge and outputs on the bottom edge, config
boxes are placed above their task and control edges run between the sides.
2026-11-04 17:26:39 +01:00
Magne Sjaastad e35279a716 #15104: Add commands and icons for production network 2026-11-04 16:50:57 +01:00
Magne Sjaastad 49ec4f1271 #15104: Add production network data source and plot 2026-11-04 16:50:57 +01:00
Magne Sjaastad 3e4c1e1e25 #15104: Add production network graph filtering and tree layout 2026-11-04 16:50:57 +01:00
Kristian Bendiksen add80526fa #14869 Workflow UI: Open nested workflows in tabs
Double-click a nested workflow task (or use Open Nested Workflow) to show
the inner workflow read-only in a tab of its own. The inner workflow is
described by the new taskmaestro_helper describe-nested command, for YAML
workflow entries and installed workflows. Workflows with workflow entries
now load.
2026-11-04 15:17:05 +01:00
Kristian Bendiksen 12bcd5b857 #15044 Workflows: Add option to collapse tasks to their title
Collapse a task with the chevron in its title, a double-click on the title, or
the context menus. A collapsed task shows its title, state and issue count, and
its connections meet in one dot on each side. Ports and config values are shown
in the tooltip. The collapsed set is stored per workflow.
2026-11-04 15:17:05 +01:00
Kristian Bendiksen b2b0e8e6f4 #14869 Workflows: Add option to hide tasks in the graph
Hidden tasks are removed from the canvas and the ports they feed are marked
with the hidden task name. Hidden tasks are shown again while they have failed
or have validation errors. The hidden set is stored per workflow.
2026-11-04 15:17:05 +01:00
Kristian Bendiksen d6143ccca3 #14869 Workflows: Add option to inline config values into task boxes
Adds a per-workflow 'Inline Config Values' toggle (canvas context menu,
on by default, stored in the project file). When enabled, the separate
config boxes are hidden and each config value is shown on the task's
input port as 'type = value'.
2026-11-04 15:17:05 +01:00
Magne Sjaastad 56074d1317 #15098: Export plot snapshots from hidden plot windows 2026-11-03 15:23:31 +01:00
Magne Sjaastad 471ecab511 #15098: Export 3D view snapshots from hidden viewers 2026-11-03 15:23:31 +01:00
Magne Sjaastad 82ade27714 Guard against missing geomech data in result definition
fieldChangedByUi dereferenced m_geomCase->geoMechData() when changing the
reference time step or enabling hydrostatic pressure normalization. The data
is null when the case is not loaded. Use the null check already used
elsewhere in the file.

Crash stack (signature 4182d58e2359):
[3] RigGeoMechCaseData::femPartResults() at RigGeoMechCaseData.cpp:87
[4] RimGeoMechResultDefinition::fieldChangedByUi(...) at RimGeoMechResultDefinition.cpp:354
2026-11-02 09:37:52 +01:00
Magne Sjaastad 2db31f237d Disconnect polygon signals when changing polygon in view
setPolygon() connected to the new polygon without disconnecting from the
previous one, so a RimPolygonInView could receive objectChanged from a polygon
it no longer references and dereference its own, possibly null, m_polygon.
Disconnect from the old polygon and only sync the name from the referenced
polygon.

Crash stack (signature 1111e3b3ceb1):
[3] RimPolygonInView::onObjectChanged(caf::SignalEmitter const*) at RimPolygonInView.cpp:441
[5] RimPolygonInView::updatePolygonFromTargets() at RimPolygonInView.cpp:259
[6] RicPolylineTargetsPickEventHandler::handle3dPickEvent(Ric3dPickEvent const&) at RicPolylineTargetsPickEventHandler.cpp:100
2026-11-02 09:37:52 +01:00
Magne Sjaastad c9cd10e836 Guard against zero or negative histogram bin count
The "Number of Bins" field accepts any integer. With 0 bins the histogram
vector is resized to zero and m_maxIndex wraps to SIZE_MAX, so addValue()
writes histogram[0] on an empty vector. Set a minimum value of 1 on the
bin count fields of the histogram data sources (also clamping values read
from project files), and treat 0 bins as a single bin in
RigHistogramCalculator.

Crash stack (signature 0a750847b697):
[3] RigHistogramCalculator::addValue(double) at RigStatisticsMath.cpp:546
[5] RimEnsembleSummaryVectorHistogramDataSource::compute(...) const at RimEnsembleSummaryVectorHistogramDataSource.cpp:255
[6] RimHistogramCurve::onLoadDataAndUpdate(bool) at RimHistogramCurve.cpp:365
[11] caf::PdmFieldUiCap<caf::PdmField<int> >::setValueFromUiEditor(QVariant const&, bool)
2026-11-02 09:37:52 +01:00
Magne Sjaastad 046a3f826b Fix out-of-range access in ensemble parameter correlation averaging
parameterCorrelations() only returns parameters with a finite case value at
the given time step, so the result vectors differ in length between time
steps. parameterCorrelationsAllTimeSteps indexed every vector with the size
of the first one and also read element [0] when no time step was evaluated.
Accumulate the correlations per parameter instead.

Crash stack (signature f2dd18176dfa):
[3] RimSummaryEnsemble::parameterCorrelationsAllTimeSteps(...) const at RimSummaryEnsemble.cpp:627
[4] RimSummaryEnsemble::correlationSortedEnsembleParameters(...) const at RimSummaryEnsemble.cpp:490
[5] RimEnsembleCurveSet::ensembleParameters(...) const at RimEnsembleCurveSet.cpp:2397
[6] RimEnsembleCurveSet::calculateValueOptions(...) at RimEnsembleCurveSet.cpp:1516
2026-11-02 09:37:52 +01:00
Magne Sjaastad a864bf0ebe Catch reader exceptions when loading summary cases in parallel
createSummaryReaderInterfaceThreadSafe runs inside an OpenMP parallel loop.
The opm-common and resdata readers can throw on corrupt or incomplete
summary files, and an exception escaping the parallel region calls
std::terminate. Catch the exception, log it and leave the case without a
reader, matching the existing path for files that fail to open.

Crash stack (signatures 7ba31ee67e6a, 678f72fb725b):
[5] manageTerminate() at RiaMainTools.cpp:249
[6] __cxxabiv1::__terminate(void (*)())
[10] _Unwind_Resume
[11] RimFileSummaryCase::createSummaryReaderInterfaceThreadSafe(RifEnsembleImportConfig, RiaThreadSafeLogger*) at RimFileSummaryCase.cpp:121
[12] RimSummaryCaseMainCollection::loadFileSummaryCaseData(...) [clone ._omp_fn.0] at RimSummaryCaseMainCollection.cpp:621
2026-11-02 09:37:52 +01:00
JJ 7579569578 Batch Scheduler support update (#15077)
* Add batch job monitoring service, to be shared between monitor view and running jobs to minimize cluster polling traffic
* Add support for monitoring job status using batch monitor service
2026-10-30 19:08:35 +01:00
Kristian Bendiksen 8baad6f878 Workflow UI: Support collect flattening
Allow list and dict outputs, including mapped task outputs, to be
collected into list inputs, and dicts to be merged into dict inputs,
matching taskmaestro's collect flattening. Label flattened members in
the graph and document the rules.
2026-10-30 16:17:03 +01:00
Kristian Bendiksen bb0acbed56 Workflow UI: Support conditional branches
Support taskmaestro conditional branches in the workflow editor:
- Read and write `when` guards and `first_of` alternatives in workflow definitions
- Validate guards, switch branch coverage and alternative types
- Draw switch tasks as diamonds, guards as control edges and skipped tasks greyed out
- Edit guards with Run When..., add alternatives when dropping on a connected input
- Report skipped tasks from the run helper
2026-10-30 16:17:03 +01:00
Magne Sjaastad 0e75179c48 #15078: Include cell I/J/K in well allocation plot data 2026-10-30 15:45:41 +01:00
Magne Sjaastad 93b85f9e52 #15078: Add I/J/K connection labels to well allocation plot
Add option to label connections by connection number, cell I/J/K, or both, and an option to show a tick label for every connection. Ticks on the connection number axis are placed at integer values only.
2026-10-30 15:45:41 +01:00
Magne Sjaastad ec9d022b50 Make summary table row ordering deterministic
Rows with equal first and last time step kept the incoming address order, which depends on string pool indices and varies between sessions. Break ties on category name.
2026-10-29 15:40:41 +01:00
Magne Sjaastad 1b2c8ca757 Guard missing view and case in box intersection cell bounding box
Avoid asserting when the box intersection has no owning 3D view or the view has no case.
2026-10-29 15:40:41 +01:00
Magne Sjaastad 67427bb559 Show flow diagnostics plots in plot window after project load
Flow plots derive from RimViewWindow, not RimPlotWindow, and were missing from RiuPlotMainWindow::viewWindows(). Applying the default dock layout on project open therefore did not re-add their dock widgets. 3D views docked in the plot window are now listed by the plot main window only, and are still activated as the active 3D view so the 3D main window toolbars (e.g. time step animation) are refreshed.
2026-10-29 15:40:26 +01:00
Magne Sjaastad d8a63a5468 Hide Curve Appearance UI behind experimental feature flag 2026-10-28 18:05:11 +01:00
Magne Sjaastad a2719ae8f5 Use depth type and unit from source plot when creating RFT correlation report 2026-10-28 18:05:11 +01:00
Magne Sjaastad b88ab7d71d Use simulated vectors instead of history vectors in correlation report plots 2026-10-28 18:05:11 +01:00
Magne Sjaastad 419ffbce64 #15061: Update well log data sources, file classes and depth track plot naming 2026-10-28 15:26:39 +01:00
Magne Sjaastad 4f05b6d92c #15061: Do not report air gap in plot name variables when zero 2026-10-28 15:26:39 +01:00
Magne Sjaastad a4dfebff58 #15061: Add summary, context menus and plot title fixes for ensemble well logs 2026-10-28 15:26:39 +01:00
Magne Sjaastad 95a960d5ff #15061: Check array sizes when computing ensemble well log index depth offsets 2026-10-28 15:26:39 +01:00
Magne Sjaastad f9553c2dbe #15061: Guard invalid K index values and fix top TVD averaging in ensemble well log statistics 2026-10-28 15:26:39 +01:00
Magne Sjaastad ca70c57d04 #15063: Histogram: Restore filter and axis scale of pasted curve
Re-run initAfterRead() after resolving references of a pasted curve, and set the axis scale of the destination plot from the binning mode.
2026-10-28 14:36:44 +01:00
Magne Sjaastad 442854cddd #15063: Histogram: Zoom all when data is filtered by 3D view visibility
Zoom all when the cell filter view is changed or when the visibility in the 3D view is updated, as the visible cells can have a very different value range than the full grid.
2026-10-28 14:36:44 +01:00
Magne Sjaastad e8846e35b2 #15066: Recreate polygon in view targets when reading project file 2026-10-28 14:20:05 +01:00
Magne Sjaastad 26dd9cbb33 #15066: Add Polygon Intersection and remove Polyline Intersection
Polygon Intersection creates an open project polygon named Polyline, attaches a polygon intersection to it and activates 3D editing of the polygon. Available from the 3D view context menu and the context menu of Intersections.
2026-10-28 14:20:05 +01:00
Magne Sjaastad a58a06c084 #15050: Make use common legend scriptable and add Python tests
Test common legend splitting across case, vector, well, group and region dimension combinations.
2026-10-28 14:07:00 +01:00
Magne Sjaastad 50a4cd9879 #14809: Hide element property file names field in GeoMech case UI 2026-10-28 08:36:12 +01:00
Magne Sjaastad 0f18b60444 #15054: Show history value line in parameter result cross plot 2026-10-27 15:26:26 +01:00
Magne Sjaastad 70e6759e01 #15054: Show history curve and time/value readout in correlation report summary plot 2026-10-27 15:26:26 +01:00
Magne Sjaastad d58212ec32 #15054: Plot ensemble history vectors from first realization only
History vectors are identical in all realizations. Plot only the first realization in the ensemble curve set, skip statistics, use a configurable line thickness, and keep the curve on top and non-selectable.
2026-10-27 14:38:59 +01:00
Magne Sjaastad 32b319eb86 #15049: Global curve appearance for summary multi plots 2026-10-27 14:13:13 +01:00
Magne Sjaastad 0e6e85e4c7 #15049: Update summary address collection and appearance calculator 2026-10-27 14:13:13 +01:00
Magne Sjaastad d1a47b8fdc #15049: Rework curve style rules and saved curve appearance 2026-10-27 14:13:13 +01:00
Magne Sjaastad 6cc691ea6f #15049: Extend color legend collection and plot curve appearance 2026-10-27 14:13:13 +01:00
Magne Sjaastad d345599f2f #14912: Define well event State AppEnum setUp next to the shared enum
RimWellEventPerf::State and RimWellEventValve::State are aliases for
RimWellEventEnums::State, but the AppEnum setUp() specialization was
declared in both class headers and defined in RimWellEventPerf.cpp.
The Linux unity build failed to link with an undefined reference to
caf::AppEnum<RimWellEventEnums::State>::setUp().

Declare the specialization in RimWellEventEnums.h and define it in the
new RimWellEventEnums.cpp, so all users see a single declaration and
there is a single definition.
2026-10-27 10:05:02 +01:00
Magne Sjaastad ddf26d61e2 #15057: Ignore unchecked curves in summary plot readout value 2026-10-27 08:11:07 +01:00
Magne Sjaastad 0d77e77188 #15047: Do not unit convert observed FMU RFT depth data 2026-10-26 13:53:52 +01:00
Magne Sjaastad 1e380d0a03 #15021: Document units of well diameter, radius and width 2026-10-24 20:30:43 +02:00
Magne Sjaastad e128e6dd3e #15021: Fix D-factor unit mismatch for field units
Use well radius and ellipse width in feet for fractures and perforations when computing the D-factor, as the field alpha expects feet.
2026-10-24 20:30:43 +02:00