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
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
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)
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
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
* 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
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.